diff --git a/README.md b/README.md index a2a2b6e..a90905d 100644 --- a/README.md +++ b/README.md @@ -105,9 +105,7 @@ If you're using Cucumber, add this too: end It is advised to run your tests with `js: true` (RSpec) or `@javascript` -(Cucumber), so that the requests correctly go through `FakeBraintree`. You might -want to take a look at -[capybara-webkit](https://github.com/thoughtbot/capybara-webkit). +(Cucumber), so that the requests correctly go through `FakeBraintree`. ## Don't set the Braintree environment diff --git a/Rakefile b/Rakefile index aafbe76..e4ad0d7 100644 --- a/Rakefile +++ b/Rakefile @@ -3,7 +3,6 @@ require 'bundler/gem_tasks' require 'rspec/core/rake_task' require 'net/http' require 'capybara' -require 'capybara-webkit' require 'yaml' RSpec::Core::RakeTask.new(:spec) @@ -28,7 +27,7 @@ task :update_dropin do puts 'Determining drop-in version from client code' uri = URI('https://js.braintreegateway.com/v2/braintree.js') js_client = Net::HTTP.get(uri) - session = Capybara::Session.new(:webkit, ->{}) + session = Capybara::Session.new(:chrome_headless, ->{}) session.execute_script(js_client) client_version = session.evaluate_script('braintree.VERSION') dropin_version = session.evaluate_script('braintree.dropin.VERSION') diff --git a/fake_braintree.gemspec b/fake_braintree.gemspec index ead1d48..ab020d0 100644 --- a/fake_braintree.gemspec +++ b/fake_braintree.gemspec @@ -22,8 +22,10 @@ Gem::Specification.new do |s| s.add_dependency 'capybara', '>= 2.2.0' s.add_dependency 'sinatra' + s.add_development_dependency 'puma' s.add_development_dependency 'rake' - s.add_development_dependency 'rspec', '~> 3.2' + s.add_development_dependency 'rspec' + s.add_development_dependency 'selenium-webdriver' s.add_development_dependency 'timecop', '~> 0.6' - s.add_development_dependency 'capybara-webkit' + s.add_development_dependency 'webdrivers' end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d8219be..43d0408 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,7 +4,6 @@ require 'fake_braintree' require 'timecop' require 'dummy/checkout_app' -require 'capybara-webkit' FakeBraintree.activate! @@ -13,7 +12,6 @@ TEST_CC_NUMBER = %w(4111 1111 1111 1111).join Capybara.app = CheckoutApp -Capybara.javascript_driver = :webkit RSpec.configure do |config| config.mock_with :rspec do |mocks| diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb new file mode 100644 index 0000000..3909907 --- /dev/null +++ b/spec/support/capybara.rb @@ -0,0 +1,13 @@ +require 'webdrivers' +Webdrivers::Chromedriver.update + +Capybara.register_driver :chrome_headless do |app| + Capybara::Selenium::Driver.load_selenium + + browser_options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts| + opts.args << '--headless' + end + Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options) +end + +Capybara.javascript_driver = :chrome_headless