There seems to be an issue with capybara or chromedriver which results in `fill_in` sometimes appending to an input rather than overwriting [1], causing some tests to fail under certain circumstances. Clearing fields before filling them in solves the issue. Note we're now getting warnings on all tests using the rack driver. I haven't found a way to avoid the `clear: :backspace` option in non-JavaScript tests, so to avoid the annoying warnings we should reduce the number of tests using the rack driver even more. [1] See issue 2419 in https://github.com/teamcapybara/capybara/issues
54 lines
1.3 KiB
Ruby
54 lines
1.3 KiB
Ruby
ENV["RAILS_ENV"] ||= "test"
|
|
if ENV["COVERALLS_REPO_TOKEN"]
|
|
require "coveralls"
|
|
Coveralls.wear!("rails")
|
|
end
|
|
require File.expand_path("../../config/environment", __FILE__)
|
|
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
|
|
|
require "rspec/rails"
|
|
require "spec_helper"
|
|
require "capybara/rails"
|
|
require "capybara/rspec"
|
|
require "selenium/webdriver"
|
|
require "view_component/test_helpers"
|
|
|
|
RSpec.configure do |config|
|
|
config.include ViewComponent::TestHelpers, type: :component
|
|
end
|
|
|
|
Rails.application.load_tasks if Rake::Task.tasks.empty?
|
|
|
|
include Warden::Test::Helpers
|
|
Warden.test_mode!
|
|
|
|
ActiveRecord::Migration.maintain_test_schema!
|
|
|
|
RSpec.configure do |config|
|
|
config.infer_spec_type_from_file_location!
|
|
config.after do
|
|
Warden.test_reset!
|
|
end
|
|
end
|
|
|
|
Capybara.register_driver :headless_chrome do |app|
|
|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
|
"goog:chromeOptions" => {
|
|
args: %W[headless no-sandbox window-size=1200,800 proxy-server=#{Capybara.app_host}:#{Capybara::Webmock.port_number}]
|
|
}
|
|
)
|
|
|
|
Capybara::Selenium::Driver.new(
|
|
app,
|
|
browser: :chrome,
|
|
desired_capabilities: capabilities
|
|
)
|
|
end
|
|
|
|
Capybara.exact = true
|
|
Capybara.enable_aria_label = true
|
|
Capybara.default_set_options = { clear: :backspace }
|
|
Capybara.disable_animation = true
|
|
|
|
OmniAuth.config.test_mode = true
|