diff --git a/CHANGELOG.md b/CHANGELOG.md index 9918020f..fd5f0420 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Added -- Adopted [Webdrivers](https://github.com/titusfortner/webdrivers) to keep Selenium WebDrivers - updated +- Adopted [Apparition](https://github.com/twalpole/apparition) as the deafult JS driver for Capybara - Fix window size to 1920x1080px in feature specs ### Changed diff --git a/lib/solidus_extension_dev_tools/rake_tasks.rb b/lib/solidus_extension_dev_tools/rake_tasks.rb index ed666dca..17b51300 100644 --- a/lib/solidus_extension_dev_tools/rake_tasks.rb +++ b/lib/solidus_extension_dev_tools/rake_tasks.rb @@ -28,15 +28,25 @@ def install_test_app_task require 'rake/clean' ::CLOBBER.include test_app_path - ENV['DUMMY_PATH'] = test_app_path + ENV['DUMMY_PATH'] = test_app_path.to_s ENV['LIB_NAME'] = gemspec.name require 'spree/testing_support/extension_rake' + + namespace :extension do + directory ENV['DUMMY_PATH'] do + Rake::Task['extension:test_app'] + + # We need to go back to the gem root since extension:test_app changes + # the working directory to be the dummy app. + cd root + end + end end def install_rspec_task namespace :extension do require 'rspec/core/rake_task' - ::RSpec::Core::RakeTask.new(:specs, [] => :test_app) do |t| + ::RSpec::Core::RakeTask.new(:specs, [] => FileList[ENV['DUMMY_PATH']]) do |t| # Ref: https://circleci.com/docs/2.0/configuration-reference#store_test_results # Ref: https://github.com/solidusio/circleci-orbs-extensions#test-results-rspec if ENV['TEST_RESULTS_PATH'] diff --git a/lib/solidus_extension_dev_tools/rspec/coverage.rb b/lib/solidus_extension_dev_tools/rspec/coverage.rb index 0e4d0a33..9026c8a2 100644 --- a/lib/solidus_extension_dev_tools/rspec/coverage.rb +++ b/lib/solidus_extension_dev_tools/rspec/coverage.rb @@ -4,7 +4,7 @@ # # Include it AT THE TOP of your spec/spec_helper.rb: # -# require 'solidus_extension_dev_tools/extension/coverage' +# require 'solidus_extension_dev_tools/rspec/coverage' # # Note that things may not work properly if you don't include this at the very top! # diff --git a/lib/solidus_extension_dev_tools/rspec/feature_helper.rb b/lib/solidus_extension_dev_tools/rspec/feature_helper.rb index 2ed82f2d..f1384225 100644 --- a/lib/solidus_extension_dev_tools/rspec/feature_helper.rb +++ b/lib/solidus_extension_dev_tools/rspec/feature_helper.rb @@ -4,27 +4,20 @@ # # Can be required from an extension's spec/feature_helper.rb # -# require 'solidus_extension_dev_tools/extension/feature_helper' +# require 'solidus_extension_dev_tools/rspec/feature_helper' # require 'solidus_extension_dev_tools/rspec/rails_helper' require 'capybara-screenshot/rspec' -require 'webdrivers' -require 'selenium/webdriver' +require 'capybara/apparition' -Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :selenium_chrome_headless).to_sym +Capybara.javascript_driver = (ENV['CAPYBARA_DRIVER'] || :apparition).to_sym Capybara.default_max_wait_time = 10 -Capybara.server = :webrick -Capybara.register_driver :selenium_chrome_headless do |app| - Capybara::Selenium::Driver.load_selenium - browser_options = ::Selenium::WebDriver::Chrome::Options.new.tap do |opts| - opts.args << '--headless' - opts.args << '--disable-gpu' if Gem.win_platform? - opts.args << '--disable-site-isolation-trials' - opts.args << '--window-size=1920,1080' - end - Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options) +Capybara.server = :puma, { Silent: true } # A fix for rspec/rspec-rails#1897 + +Capybara.register_driver :apparition do |app| + Capybara::Apparition::Driver.new(app, window_size: [1920, 1080]) end require 'spree/testing_support/capybara_ext' diff --git a/lib/solidus_extension_dev_tools/rspec/rails_helper.rb b/lib/solidus_extension_dev_tools/rspec/rails_helper.rb index c035d606..1f716070 100644 --- a/lib/solidus_extension_dev_tools/rspec/rails_helper.rb +++ b/lib/solidus_extension_dev_tools/rspec/rails_helper.rb @@ -4,7 +4,7 @@ # # Can be required from an extension's spec/rails_helper.rb # -# require 'solidus_extension_dev_tools/extension/rails_helper' +# require 'solidus_extension_dev_tools/rspec/rails_helper' # require 'solidus_extension_dev_tools/rspec/spec_helper' diff --git a/lib/solidus_extension_dev_tools/rspec/spec_helper.rb b/lib/solidus_extension_dev_tools/rspec/spec_helper.rb index 63058ec8..e783b1dc 100644 --- a/lib/solidus_extension_dev_tools/rspec/spec_helper.rb +++ b/lib/solidus_extension_dev_tools/rspec/spec_helper.rb @@ -4,7 +4,7 @@ # # Can be required from an extension's spec/spec_helper.rb # -# require 'solidus_extension_dev_tools/extension/spec_helper' +# require 'solidus_extension_dev_tools/rspec/spec_helper' # RSpec.configure do |config| diff --git a/solidus_extension_dev_tools.gemspec b/solidus_extension_dev_tools.gemspec index 8ca2eae9..abd83a51 100644 --- a/solidus_extension_dev_tools.gemspec +++ b/solidus_extension_dev_tools.gemspec @@ -26,6 +26,7 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] + spec.add_dependency 'apparition', '~> 0.4' spec.add_dependency 'capybara', '~> 3.29' spec.add_dependency 'capybara-screenshot', '~> 1.0' spec.add_dependency 'codecov', '~> 0.1.16' @@ -34,16 +35,15 @@ Gem::Specification.new do |spec| spec.add_dependency 'ffaker', '~> 2.13' spec.add_dependency 'gem-release', '~> 2.1' spec.add_dependency 'github_changelog_generator', '~> 1.15' + spec.add_dependency 'puma', '~> 4.3' spec.add_dependency 'rspec-rails', '~> 4.0.0.beta3' spec.add_dependency 'rspec_junit_formatter' spec.add_dependency 'rubocop', '~> 0.76.0' spec.add_dependency 'rubocop-performance', '~> 1.5' spec.add_dependency 'rubocop-rails', '~> 2.3' spec.add_dependency 'rubocop-rspec', '~> 1.36' - spec.add_dependency 'selenium-webdriver', '~> 3.142' spec.add_dependency 'solidus_core', ['>= 2.0', '< 3'] spec.add_dependency 'solidus_support', '~> 0.3.3' - spec.add_dependency 'webdrivers', '~> 4.1' spec.add_development_dependency 'bundler' spec.add_development_dependency 'rake'