Use capybara-webmock to avoid external requests
The images from OpenStreetMap take a while to load, sometimes even causing Net::ReadTimeout errors if the internet connection is slow. It's happened a lot recently on Travis builds. Using capybara-webmock we guarantee the test suite doesn't fail due to network issues.
This commit is contained in:
1
Gemfile
1
Gemfile
@@ -82,6 +82,7 @@ end
|
|||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
gem "capybara", "~> 2.17.0"
|
gem "capybara", "~> 2.17.0"
|
||||||
|
gem "capybara-webmock", "~> 0.5.3"
|
||||||
gem "coveralls", "~> 0.8.22", require: false
|
gem "coveralls", "~> 0.8.22", require: false
|
||||||
gem "database_cleaner", "~> 1.7.0"
|
gem "database_cleaner", "~> 1.7.0"
|
||||||
gem "email_spec", "~> 2.1.0"
|
gem "email_spec", "~> 2.1.0"
|
||||||
|
|||||||
@@ -123,6 +123,11 @@ GEM
|
|||||||
rack (>= 1.0.0)
|
rack (>= 1.0.0)
|
||||||
rack-test (>= 0.5.4)
|
rack-test (>= 0.5.4)
|
||||||
xpath (>= 2.0, < 4.0)
|
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)
|
childprocess (0.9.0)
|
||||||
ffi (~> 1.0, >= 1.0.11)
|
ffi (~> 1.0, >= 1.0.11)
|
||||||
chronic (0.10.2)
|
chronic (0.10.2)
|
||||||
@@ -389,6 +394,8 @@ GEM
|
|||||||
rack (>= 0.4)
|
rack (>= 0.4)
|
||||||
rack-attack (5.0.1)
|
rack-attack (5.0.1)
|
||||||
rack
|
rack
|
||||||
|
rack-proxy (0.6.5)
|
||||||
|
rack
|
||||||
rack-test (0.6.3)
|
rack-test (0.6.3)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
rails (5.0.7.2)
|
rails (5.0.7.2)
|
||||||
@@ -584,6 +591,7 @@ DEPENDENCIES
|
|||||||
capistrano-rails (~> 1.4.0)
|
capistrano-rails (~> 1.4.0)
|
||||||
capistrano3-delayed-job (~> 1.7.3)
|
capistrano3-delayed-job (~> 1.7.3)
|
||||||
capybara (~> 2.17.0)
|
capybara (~> 2.17.0)
|
||||||
|
capybara-webmock (~> 0.5.3)
|
||||||
ckeditor (~> 4.2.3)
|
ckeditor (~> 4.2.3)
|
||||||
cocoon (~> 1.2.9)
|
cocoon (~> 1.2.9)
|
||||||
coffee-rails (~> 4.2.2)
|
coffee-rails (~> 4.2.2)
|
||||||
|
|||||||
@@ -33,7 +33,9 @@ end
|
|||||||
|
|
||||||
Capybara.register_driver :headless_chrome do |app|
|
Capybara.register_driver :headless_chrome do |app|
|
||||||
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
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(
|
Capybara::Selenium::Driver.new(
|
||||||
|
|||||||
@@ -65,6 +65,14 @@ RSpec.configure do |config|
|
|||||||
end
|
end
|
||||||
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
|
config.after(:each, :page_driver) do
|
||||||
page.driver.reset!
|
page.driver.reset!
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user