diff --git a/Gemfile b/Gemfile index 79990e62817..b3c510745e6 100644 --- a/Gemfile +++ b/Gemfile @@ -82,6 +82,7 @@ end group :test do gem "capybara", "~> 2.17.0" + gem "capybara-webmock", "~> 0.5.3" gem "coveralls", "~> 0.8.22", require: false gem "database_cleaner", "~> 1.7.0" gem "email_spec", "~> 2.1.0" diff --git a/Gemfile.lock b/Gemfile.lock index 940d578c44a..a93c7fd646d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -123,6 +123,11 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (>= 2.0, < 4.0) + capybara-webmock (0.5.3) + capybara (>= 2.4, < 4) + rack (>= 1.4) + rack-proxy (>= 0.6.0) + selenium-webdriver (~> 3.0) childprocess (0.9.0) ffi (~> 1.0, >= 1.0.11) chronic (0.10.2) @@ -389,6 +394,8 @@ GEM rack (>= 0.4) rack-attack (5.0.1) rack + rack-proxy (0.6.5) + rack rack-test (0.6.3) rack (>= 1.0) rails (5.0.7.2) @@ -584,6 +591,7 @@ DEPENDENCIES capistrano-rails (~> 1.4.0) capistrano3-delayed-job (~> 1.7.3) capybara (~> 2.17.0) + capybara-webmock (~> 0.5.3) ckeditor (~> 4.2.3) cocoon (~> 1.2.9) coffee-rails (~> 4.2.2) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 4be75fc2b20..65e70366d48 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -33,7 +33,9 @@ Capybara.register_driver :headless_chrome do |app| capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( - chromeOptions: { args: %w(headless no-sandbox window-size=1200,600) } + chromeOptions: { + args: %W[headless no-sandbox window-size=1200,600 proxy-server=127.0.0.1:#{Capybara::Webmock.port_number}] + } ) Capybara::Selenium::Driver.new( diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index dccfd4d3dce..a85ff40d40c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -65,6 +65,14 @@ end end + config.before(:each, type: :feature) do + Capybara::Webmock.start + end + + config.after(:suite) do + Capybara::Webmock.stop + end + config.after(:each, :page_driver) do page.driver.reset! end