Skip to content

Commit

Permalink
Fixes #36978 - Add possibility to use remote webdriver
Browse files Browse the repository at this point in the history
  • Loading branch information
dosas committed Dec 13, 2023
1 parent b793575 commit 9529ef0
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 9 deletions.
38 changes: 30 additions & 8 deletions test/integration_test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,40 @@
end

Selenium::WebDriver::Chrome::Service.driver_path = ENV['TESTDRIVER_PATH'] || Foreman::Util.which('chromedriver', Rails.root.join('node_modules', '.bin'))

options = Selenium::WebDriver::Chrome::Options.new
options.args << '--disable-gpu'
options.args << '--no-sandbox'
options.args << '--window-size=1024,768'
options.args << '--headless' unless ENV['DEBUG_JS_TEST'] == '1'

selenium_remote_host = ENV.fetch('SELENIUM_REMOTE_HOST', nil)
selenium_remote_port = ENV.fetch('SELENIUM_REMOTE_PORT', 4444)

Capybara.register_driver :selenium_chrome do |app|
options = Selenium::WebDriver::Chrome::Options.new
options.args << '--disable-gpu'
options.args << '--no-sandbox'
options.args << '--window-size=1024,768'
options.args << '--headless' unless ENV['DEBUG_JS_TEST'] == '1'
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
if selenium_remote_host
Capybara::Selenium::Driver.new(
app,
browser: :remote,
url: "http://#{selenium_remote_host}:#{selenium_remote_port}/wd/hub",
options: options)
else
Capybara::Selenium::Driver.new(
app,
browser: :chrome,
options: options)
end
end

Capybara.configure do |config|
config.javascript_driver = ENV["JS_TEST_DRIVER"]&.to_sym || :selenium_chrome
config.default_max_wait_time = 20
config.javascript_driver = ENV["JS_TEST_DRIVER"]&.to_sym || :selenium_chrome
config.default_max_wait_time = 20
config.enable_aria_label = true
if selenium_remote_host
config.server_host = Socket.ip_address_list
.find(&:ipv4_private?)
.ip_address
end
end

class ActionDispatch::IntegrationTest
Expand Down
6 changes: 5 additions & 1 deletion test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@
FactoryBot.use_parent_strategy = false

# Do not allow network connections and external processes
WebMock.disable_net_connect!(allow_localhost: true)
if ENV.fetch('SELENIUM_REMOTE_HOST', nil)
WebMock.allow_net_connect!
else
WebMock.disable_net_connect!(allow_localhost: true)
end

# Configure shoulda
Shoulda::Matchers.configure do |config|
Expand Down

0 comments on commit 9529ef0

Please sign in to comment.