From 07bb7477c6ada62da8d8531bd3be181efa2f4787 Mon Sep 17 00:00:00 2001 From: JG Date: Mon, 23 May 2022 11:00:33 +0100 Subject: [PATCH] rubocop -A --- Gemfile | 2 +- config/environments/development.rb | 4 +- config/environments/test.rb | 4 +- features/support/env.rb | 2 +- lib/tasks/cucumber.rake | 100 ++++++++++++++--------------- script/cucumber | 4 +- spec/rails_helper.rb | 2 +- 7 files changed, 57 insertions(+), 61 deletions(-) diff --git a/Gemfile b/Gemfile index ec328eb40..3c5572667 100644 --- a/Gemfile +++ b/Gemfile @@ -87,8 +87,8 @@ end group :test do gem "capybara", require: false - gem "capybara-screenshot" gem "capybara-lockstep" + gem "capybara-screenshot" gem "cucumber-rails", require: false gem "database_cleaner" gem "factory_bot_rails" diff --git a/config/environments/development.rb b/config/environments/development.rb index 816dbedaa..228fba4b3 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -2,8 +2,8 @@ require "active_support/core_ext/integer/time" Rails.application.configure do # Configure 'rails notes' to inspect Cucumber files - config.annotations.register_directories('features') - config.annotations.register_extensions('feature') { |tag| /#\s*(#{tag}):?\s*(.*)$/ } + config.annotations.register_directories("features") + config.annotations.register_extensions("feature") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } # Settings specified here will take precedence over those in config/application.rb. diff --git a/config/environments/test.rb b/config/environments/test.rb index 9d4772345..924404166 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -7,8 +7,8 @@ require "active_support/core_ext/integer/time" Rails.application.configure do # Configure 'rails notes' to inspect Cucumber files - config.annotations.register_directories('features') - config.annotations.register_extensions('feature') { |tag| /#\s*(#{tag}):?\s*(.*)$/ } + config.annotations.register_directories("features") + config.annotations.register_extensions("feature") { |tag| /#\s*(#{tag}):?\s*(.*)$/ } # Settings specified here will take precedence over those in config/application.rb. diff --git a/features/support/env.rb b/features/support/env.rb index d52d51920..4bdc3b366 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -1,4 +1,4 @@ -require 'cucumber/rails' +require "cucumber/rails" require "capybara-screenshot/cucumber" ActionController::Base.allow_rescue = false diff --git a/lib/tasks/cucumber.rake b/lib/tasks/cucumber.rake index 0caa4d255..8743be80e 100644 --- a/lib/tasks/cucumber.rake +++ b/lib/tasks/cucumber.rake @@ -4,66 +4,62 @@ # instead of editing this one. Cucumber will automatically load all features/**/*.rb # files. +unless ARGV.any? { |a| a =~ /^gems/ } # Don't load anything when running the gems:* tasks + + vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first + $LOAD_PATH.unshift("#{File.dirname(vendored_cucumber_bin)}/../lib") unless vendored_cucumber_bin.nil? + + begin + require "cucumber/rake/task" + + namespace :cucumber do + Cucumber::Rake::Task.new({ ok: "test:prepare" }, "Run features that should pass") do |t| + t.binary = vendored_cucumber_bin # If nil, the gem's binary is used. + t.fork = true # You may get faster startup if you set this to false + t.profile = "default" + end + + Cucumber::Rake::Task.new({ wip: "test:prepare" }, "Run features that are being worked on") do |t| + t.binary = vendored_cucumber_bin + t.fork = true # You may get faster startup if you set this to false + t.profile = "wip" + end + + Cucumber::Rake::Task.new({ rerun: "test:prepare" }, "Record failing features and run only them if any exist") do |t| + t.binary = vendored_cucumber_bin + t.fork = true # You may get faster startup if you set this to false + t.profile = "rerun" + end + + desc "Run all features" + task all: %i[ok wip] + + task statsetup: :environment do + require "rails/code_statistics" + ::STATS_DIRECTORIES << ["Cucumber features", "features"] if File.exist?("features") + ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?("features") + end + end -unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks - -vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first -$LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil? - -begin - require 'cucumber/rake/task' + desc "Alias for cucumber:ok" + task cucumber: "cucumber:ok" - namespace :cucumber do - Cucumber::Rake::Task.new({ok: 'test:prepare'}, 'Run features that should pass') do |t| - t.binary = vendored_cucumber_bin # If nil, the gem's binary is used. - t.fork = true # You may get faster startup if you set this to false - t.profile = 'default' - end + task default: :cucumber - Cucumber::Rake::Task.new({wip: 'test:prepare'}, 'Run features that are being worked on') do |t| - t.binary = vendored_cucumber_bin - t.fork = true # You may get faster startup if you set this to false - t.profile = 'wip' + task features: :cucumber do + warn "*** The 'features' task is deprecated. See rake -T cucumber ***" end - Cucumber::Rake::Task.new({rerun: 'test:prepare'}, 'Record failing features and run only them if any exist') do |t| - t.binary = vendored_cucumber_bin - t.fork = true # You may get faster startup if you set this to false - t.profile = 'rerun' + # In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon. + task "test:prepare" => :environment do end - desc 'Run all features' - task all: [:ok, :wip] - - task :statsetup do - require 'rails/code_statistics' - ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features') - ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features') + task stats: "cucumber:statsetup" + rescue LoadError + desc "cucumber rake task not available (cucumber not installed)" + task cucumber: :environment do + abort "Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin" end - end - desc 'Alias for cucumber:ok' - task cucumber: 'cucumber:ok' - - task default: :cucumber - - task features: :cucumber do - STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***" - end - - # In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon. - task 'test:prepare' do - end - - task stats: 'cucumber:statsetup' - - -rescue LoadError - desc 'cucumber rake task not available (cucumber not installed)' - task :cucumber do - abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin' - end -end - end diff --git a/script/cucumber b/script/cucumber index eb5e962e8..3d7910bdf 100755 --- a/script/cucumber +++ b/script/cucumber @@ -5,7 +5,7 @@ vendored_cucumber_bin = Dir["#{File.dirname(__FILE__)}/../vendor/{gems,plugins}/ if vendored_cucumber_bin load File.expand_path(vendored_cucumber_bin) else - require 'rubygems' unless ENV['NO_RUBYGEMS'] - require 'cucumber' + require "rubygems" unless ENV["NO_RUBYGEMS"] + require "cucumber" load Cucumber::BINARY end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 097ed61a1..def73706b 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -9,7 +9,7 @@ require "capybara/rspec" require "selenium-webdriver" require "view_component/test_helpers" -Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } +Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } Capybara.register_driver :headless do |app| options = Selenium::WebDriver::Firefox::Options.new