Skip to content

Commit

Permalink
Fix file download tests in docker
Browse files Browse the repository at this point in the history
  • Loading branch information
librod89 committed Aug 14, 2021
1 parent 0f3ffa5 commit 60cff02
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
4 changes: 0 additions & 4 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@ jobs:
uses: docker/setup-buildx-action@v1
- name: Build
run: docker-compose build
- name: bundle install
run: docker-compose run web bundle install
- name: db:reset
run: docker-compose run web rails db:reset
- name: docker UP
run: docker-compose up -d
- name: Test
Expand Down
2 changes: 2 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ services:
driver: none
ports:
- "5900:5900"
volumes:
- ./tmp/downloads:/home/seluser/Downloads

volumes:
db_data:
18 changes: 13 additions & 5 deletions spec/support/capybara.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,26 @@
Capybara.register_driver :selenium_chrome_in_container do |app|
Capybara::Selenium::Driver.new app,
browser: :remote,
url: "http://selenium_chrome:4444",
url: "http://selenium_chrome:4444/wd/hub",
capabilities: [:chrome]
end

# used in docker
Capybara.register_driver :selenium_chrome_headless_in_container do |app|
browser_options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts|
opts.args << "--headless"
opts.args << "--disable-gpu"
opts.args << "--disable-site-isolation-trials"
opts.args << "--window-size=1280,900"
end
browser_options.add_preference(:download, prompt_for_download: false, default_directory: DownloadHelpers::PATH.to_s)

browser_options.add_preference(:browser, set_download_behavior: {behavior: "allow"})

Capybara::Selenium::Driver.new app,
browser: :remote,
url: "http://selenium_chrome:4444/wd/hub",
capabilities: [Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => %w[headless disable-gpu window-size=1280,900]}
)]
options: browser_options
end

# used without docker
Expand All @@ -44,7 +52,7 @@
config.include DownloadHelpers
clear_downloads
if ENV["DOCKER"]
driven_by :selenium_chrome_headless_in_container
driven_by :selenium_chrome_in_container
Capybara.server_host = "0.0.0.0"
Capybara.server_port = 4000
Capybara.app_host = "http://web:4000"
Expand Down

0 comments on commit 60cff02

Please sign in to comment.