Change inheritance structure to match the one from Rails 5 more

In the future, ApplicationSystemTestCase should inherit from
ActionDispatch::SystemTestCase and JavaScriptApplicationSystemTestCase
could possibly be removed if the `driven_by` method works as it is
promised in Rails documentation:

http://api.rubyonrails.org/v5.2/classes/ActionDispatch/SystemTestCase.html

Consider introducing another class between
ActionDispatch::IntegrationTest and other items inheriting from it, as
the general Rails practice seems to have `ApplicationIntegrationTest`,
as we do have `ApplicationRecord` and `ApplicationController`.
This commit is contained in:
Maciej Szlosarczyk 2018-07-10 17:10:26 +03:00
parent 0fa30591a8
commit 3acd605b90
No known key found for this signature in database
GPG key ID: 41D62D42D3B0D765
3 changed files with 45 additions and 39 deletions

View file

@ -0,0 +1,42 @@
require 'test_helper'
require 'database_cleaner'
require 'selenium/webdriver'
class ApplicationSystemTestCase < ActionDispatch::IntegrationTest; end
class JavaScriptApplicationSystemTestCase < ApplicationSystemTestCase
self.use_transactional_fixtures = false
DatabaseCleaner.strategy = :truncation
Capybara.register_driver(:chrome) do |_app|
options = ::Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--window-size=1400,1400')
Capybara::Selenium::Driver.new(Rails.application, browser: :chrome, options: options)
end
Capybara.register_server(:silent_puma) do |app, port, _host|
require 'rack/handler/puma'
Rack::Handler::Puma.run(app, Port: port, Threads: '0:2', Silent: true)
end
def setup
DatabaseCleaner.start
super
Capybara.current_driver = :chrome
Capybara.server = :silent_puma
end
def teardown
super
DatabaseCleaner.clean
end
end