From b97e44f8a42cf9ba9e7d2d7bf0b29b66bfbd9e13 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Thu, 23 Apr 2020 18:53:27 +0100 Subject: [PATCH] tests: poltergeist -> cuprite --- rails_email_preview.gemspec | 2 +- spec/features/take_screenshots_spec.rb | 2 +- spec/screenshots | 2 +- spec/spec_helper.rb | 33 ++++++++++++++++++-------- spec/support/save_screenshots.rb | 2 +- 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/rails_email_preview.gemspec b/rails_email_preview.gemspec index 6b5e226..a8a8a54 100644 --- a/rails_email_preview.gemspec +++ b/rails_email_preview.gemspec @@ -24,9 +24,9 @@ Gem::Specification.new do |s| s.add_development_dependency 'i18n-tasks', '>= 0.9.25' s.add_development_dependency 'capybara', '>= 3.8.2' + s.add_development_dependency 'cuprite', '>= 0.10' s.add_development_dependency 'rspec-rails', '>= 3.8.0' s.add_development_dependency 'puma', '>= 3.12.0' - s.add_development_dependency 'poltergeist' s.version = RailsEmailPreview::VERSION end diff --git a/spec/features/take_screenshots_spec.rb b/spec/features/take_screenshots_spec.rb index dfd6d3d..968766a 100644 --- a/spec/features/take_screenshots_spec.rb +++ b/spec/features/take_screenshots_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' unless ENV['TRAVIS'] - describe 'Take screenshots', type: :feature, driver: :poltergeist do + describe 'Take screenshots', type: :feature, js: true do it 'list page' do visit rails_email_preview.rep_root_path screenshot! 'list' diff --git a/spec/screenshots b/spec/screenshots index b98ce05..7c1d36b 160000 --- a/spec/screenshots +++ b/spec/screenshots @@ -1 +1 @@ -Subproject commit b98ce05d2db775927cce16dfcbd1d3f4d3553256 +Subproject commit 7c1d36b42599d880d84df208070b89754e665b8e diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 99b61a0..f4e5fe2 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -10,23 +10,36 @@ require 'rspec/rails' require 'capybara/rails' require 'capybara/rspec' -require 'capybara/poltergeist' require 'fileutils' Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } -poltergeist_opts = { - timeout: 160, +require 'capybara/cuprite' + +browser_path = ENV['CHROMIUM_BIN'] || %w[ + /usr/bin/chromium-browser + /snap/bin/chromium + /Applications/Chromium.app/Contents/MacOS/Chromium + /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome +].find { |path| File.executable?(path) } + +Capybara.register_driver :cuprite do |app| + options = { window_size: [800, 800] -} -Capybara.register_driver(:poltergeist) { |app| Capybara::Poltergeist::Driver.new(app, poltergeist_opts) } + } + options[:browser_path] = browser_path if browser_path + Capybara::Cuprite::Driver.new(app, options) +end + +Capybara.javascript_driver = ENV['CAPYBARA_JS_DRIVER']&.to_sym || :cuprite +Capybara.asset_host = ENV['CAPYBARA_ASSET_HOST'] if ENV['CAPYBARA_ASSET_HOST'] +Capybara.configure do |config| + config.run_server = true + config.server_port = 7000 + config.default_max_wait_time = 10 +end RSpec.configure do |config| - Capybara.configure do |capy| - capy.javascript_driver = :poltergeist - capy.run_server = true - capy.server_port = 7000 - end config.include SaveScreenshots config.include WithLayout diff --git a/spec/support/save_screenshots.rb b/spec/support/save_screenshots.rb index b8747aa..20ee0c9 100644 --- a/spec/support/save_screenshots.rb +++ b/spec/support/save_screenshots.rb @@ -1,7 +1,7 @@ require 'fileutils' module SaveScreenshots def screenshot!(name) - return unless [:selenium, :webkit, :poltergeist].include?(Capybara.current_driver) + return unless [:selenium, :webkit, :cuprite].include?(Capybara.current_driver) dir = File.expand_path('../screenshots', File.dirname(__FILE__)) name = "#{name}.png" unless name =~ /\.png$/ FileUtils.mkpath(dir) unless File.directory?(dir)