2016-12-08 03:45:34 +00:00
|
|
|
require 'capybara-screenshot/spinach'
|
2015-04-25 18:20:15 +00:00
|
|
|
|
2015-04-25 18:22:21 +00:00
|
|
|
# Give CI some extra time
|
2017-03-31 07:55:46 +00:00
|
|
|
timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 60 : 30
|
2015-04-25 18:22:21 +00:00
|
|
|
|
2017-06-17 05:07:14 +00:00
|
|
|
Capybara.javascript_driver = :chrome
|
|
|
|
Capybara.register_driver :chrome do |app|
|
2017-11-01 16:03:06 +00:00
|
|
|
extra_args = []
|
|
|
|
extra_args << 'headless' unless ENV['CHROME_HEADLESS'] =~ /^(false|no|0)$/i
|
|
|
|
|
2017-06-17 05:07:14 +00:00
|
|
|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
2017-08-13 05:34:01 +00:00
|
|
|
chromeOptions: {
|
2017-11-01 16:03:06 +00:00
|
|
|
'args' => %w[no-sandbox disable-gpu --window-size=1240,1400] + extra_args
|
2017-06-17 05:07:14 +00:00
|
|
|
}
|
2016-11-28 08:50:08 +00:00
|
|
|
)
|
2017-06-17 05:07:14 +00:00
|
|
|
|
|
|
|
Capybara::Selenium::Driver
|
|
|
|
.new(app, browser: :chrome, desired_capabilities: capabilities)
|
2015-04-25 18:20:15 +00:00
|
|
|
end
|
|
|
|
|
2016-03-15 18:03:17 +00:00
|
|
|
Capybara.default_max_wait_time = timeout
|
2015-04-25 18:20:15 +00:00
|
|
|
Capybara.ignore_hidden_elements = false
|
|
|
|
|
2016-12-08 03:45:34 +00:00
|
|
|
# Keep only the screenshots generated from the last failing test suite
|
|
|
|
Capybara::Screenshot.prune_strategy = :keep_last_run
|
2017-06-17 05:35:46 +00:00
|
|
|
# From https://github.com/mattheworiordan/capybara-screenshot/issues/84#issuecomment-41219326
|
|
|
|
Capybara::Screenshot.register_driver(:chrome) do |driver, path|
|
|
|
|
driver.browser.save_screenshot(path)
|
|
|
|
end
|
2016-01-29 01:45:03 +00:00
|
|
|
|
|
|
|
Spinach.hooks.before_run do
|
2017-03-30 14:30:05 +00:00
|
|
|
TestEnv.eager_load_driver_server
|
2016-01-29 01:45:03 +00:00
|
|
|
end
|