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