internetee-registry/test/application_system_test_case.rb
Maciej Szlosarczyk 3acd605b90
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`.
2018-07-10 17:10:26 +03:00

42 lines
1 KiB
Ruby

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