cucumber-rails 1.7.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +197 -19
- data/CONTRIBUTING.md +16 -14
- data/LICENSE +1 -1
- data/README.md +27 -21
- data/lib/cucumber/rails.rb +23 -17
- data/lib/cucumber/rails/action_dispatch.rb +21 -0
- data/lib/cucumber/rails/application.rb +16 -7
- data/lib/cucumber/rails/capybara.rb +2 -0
- data/lib/cucumber/rails/capybara/javascript_emulation.rb +42 -21
- data/lib/cucumber/rails/capybara/select_dates_and_times.rb +3 -1
- data/lib/cucumber/rails/database.rb +24 -56
- data/lib/cucumber/rails/database/deletion_strategy.rb +13 -0
- data/lib/cucumber/rails/database/shared_connection_strategy.rb +27 -0
- data/lib/cucumber/rails/database/strategy.rb +33 -0
- data/lib/cucumber/rails/database/truncation_strategy.rb +13 -0
- data/lib/cucumber/rails/hooks.rb +2 -0
- data/lib/cucumber/rails/hooks/active_record.rb +8 -4
- data/lib/cucumber/rails/hooks/allow_rescue.rb +2 -0
- data/lib/cucumber/rails/hooks/database_cleaner.rb +11 -3
- data/lib/cucumber/rails/hooks/mail.rb +3 -1
- data/lib/cucumber/rails/rspec.rb +3 -1
- data/lib/cucumber/rails/world.rb +24 -7
- data/lib/generators/cucumber/{install/USAGE → USAGE} +0 -0
- data/lib/generators/cucumber/{install/install_generator.rb → install_generator.rb} +18 -9
- data/lib/generators/cucumber/{install/templates → templates}/config/cucumber.yml.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/script/cucumber +1 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/_rails_each_run.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/_rails_prefork.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/capybara.rb +2 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/edit_warning.txt +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/rails.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/rails_spork.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/tasks/cucumber.rake.erb +0 -0
- metadata +100 -169
- data/.github/ISSUE_TEMPLATE.md +0 -52
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -42
- data/.gitignore +0 -13
- data/.rspec +0 -1
- data/.rubocop.yml +0 -1
- data/.rubocop_todo.yml +0 -443
- data/.travis.yml +0 -45
- data/Appraisals +0 -32
- data/Gemfile +0 -7
- data/Rakefile +0 -49
- data/bin/install_geckodriver.sh +0 -19
- data/bin/install_webpacker.sh +0 -9
- data/config/.gitignore +0 -1
- data/config/cucumber.yml +0 -17
- data/cucumber-rails.gemspec +0 -44
- data/dev_tasks/cucumber.rake +0 -3
- data/dev_tasks/rspec.rake +0 -3
- data/dev_tasks/yard.rake +0 -35
- data/dev_tasks/yard/default/layout/html/bubble_32x32.png +0 -0
- data/dev_tasks/yard/default/layout/html/footer.erb +0 -5
- data/dev_tasks/yard/default/layout/html/index.erb +0 -1
- data/dev_tasks/yard/default/layout/html/layout.erb +0 -25
- data/dev_tasks/yard/default/layout/html/logo.erb +0 -1
- data/dev_tasks/yard/default/layout/html/setup.rb +0 -4
- data/features/allow_rescue.feature +0 -65
- data/features/annotations.feature +0 -22
- data/features/capybara_javascript_drivers.feature +0 -73
- data/features/choose_javascript_database_strategy.feature +0 -145
- data/features/database_cleaner.feature +0 -44
- data/features/disable_automatic_database_cleaning.feature +0 -55
- data/features/emulate_javascript.feature +0 -94
- data/features/install_cucumber_rails.feature +0 -14
- data/features/no_database.feature +0 -61
- data/features/raising_errors.feature +0 -16
- data/features/rerun_profile.feature +0 -46
- data/features/rest_api.feature +0 -47
- data/features/step_definitions/cucumber_rails_steps.rb +0 -153
- data/features/support/aruba.rb +0 -3
- data/features/support/bundler_pre_support.rb +0 -28
- data/features/support/env.rb +0 -40
- data/features/support/fixtures/bundler-1.0.21.gem +0 -0
- data/features/support/fixtures/bundler-1.1.rc.gem +0 -0
- data/features/support/legacy_web_steps_support.rb +0 -289
- data/gemfiles/rails_4_2.gemfile +0 -10
- data/gemfiles/rails_5_0.gemfile +0 -10
- data/gemfiles/rails_5_1.gemfile +0 -10
- data/gemfiles/rails_5_2.gemfile +0 -10
- data/gemfiles/rails_6_0.gemfile +0 -8
- data/lib/cucumber/rails/action_controller.rb +0 -13
- data/spec/cucumber/rails/database_spec.rb +0 -57
- data/spec/generators/cucumber/install/install_generator_spec.rb +0 -47
- data/spec/spec_helper.rb +0 -14
data/gemfiles/rails_4_2.gemfile
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "railties", "~> 4.2.1"
|
6
|
-
gem "i18n", "< 1.5.1", platform: :mri_22
|
7
|
-
gem "capybara", "< 3.16.0", platform: [:mri_23, :mri_22]
|
8
|
-
gem "nokogiri", "< 1.9.1", platform: [:mri_23, :mri_22]
|
9
|
-
|
10
|
-
gemspec path: "../"
|
data/gemfiles/rails_5_0.gemfile
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "railties", "~> 5.0.0"
|
6
|
-
gem "i18n", "< 1.5.1", platform: :mri_22
|
7
|
-
gem "capybara", "< 3.16.0", platform: [:mri_23, :mri_22]
|
8
|
-
gem "nokogiri", "< 1.9.1", platform: [:mri_23, :mri_22]
|
9
|
-
|
10
|
-
gemspec path: "../"
|
data/gemfiles/rails_5_1.gemfile
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "railties", "~> 5.1.0"
|
6
|
-
gem "i18n", "< 1.5.1", platform: :mri_22
|
7
|
-
gem "capybara", "< 3.16.0", platform: [:mri_23, :mri_22]
|
8
|
-
gem "nokogiri", "< 1.9.1", platform: [:mri_23, :mri_22]
|
9
|
-
|
10
|
-
gemspec path: "../"
|
data/gemfiles/rails_5_2.gemfile
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "railties", "~> 5.2"
|
6
|
-
gem "i18n", "< 1.5.1", platform: :mri_22
|
7
|
-
gem "capybara", "< 3.16.0", platform: [:mri_23, :mri_22]
|
8
|
-
gem "nokogiri", "< 1.9.1", platform: [:mri_23, :mri_22]
|
9
|
-
|
10
|
-
gemspec path: "../"
|
data/gemfiles/rails_6_0.gemfile
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
ActionController::Base.class_eval do
|
2
|
-
cattr_accessor :allow_rescue
|
3
|
-
end
|
4
|
-
|
5
|
-
class ActionDispatch::ShowExceptions
|
6
|
-
alias __cucumber_orig_call__ call
|
7
|
-
|
8
|
-
def call(env)
|
9
|
-
env['action_dispatch.show_exceptions'] = !!ActionController::Base.allow_rescue
|
10
|
-
env['action_dispatch.show_detailed_exceptions'] = !ActionController::Base.allow_rescue
|
11
|
-
__cucumber_orig_call__(env)
|
12
|
-
end
|
13
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require 'cucumber/rails/database'
|
3
|
-
|
4
|
-
describe Cucumber::Rails::Database do
|
5
|
-
|
6
|
-
let(:strategy) { double(before_js: nil, before_non_js: nil) }
|
7
|
-
|
8
|
-
it 'forwards events to the selected strategy' do
|
9
|
-
allow(Cucumber::Rails::Database::TruncationStrategy).to receive_messages(new: strategy)
|
10
|
-
Cucumber::Rails::Database.javascript_strategy = :truncation
|
11
|
-
|
12
|
-
expect(strategy).to receive(:before_non_js).ordered
|
13
|
-
Cucumber::Rails::Database.before_non_js
|
14
|
-
|
15
|
-
expect(strategy).to receive(:before_js).ordered
|
16
|
-
Cucumber::Rails::Database.before_js
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'raises an error if you use a non-understood strategy' do
|
20
|
-
expect { Cucumber::Rails::Database.javascript_strategy = :invalid }.to raise_error(Cucumber::Rails::Database::InvalidStrategy)
|
21
|
-
end
|
22
|
-
|
23
|
-
describe 'using a custom strategy' do
|
24
|
-
class ValidStrategy
|
25
|
-
def before_js
|
26
|
-
# Anything
|
27
|
-
end
|
28
|
-
|
29
|
-
def before_non_js
|
30
|
-
# Likewise
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
class InvalidStrategy
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'raises an error if the strategy doens\'t support the protocol' do
|
38
|
-
expect { Cucumber::Rails::Database.javascript_strategy = InvalidStrategy }.to raise_error(ArgumentError)
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'accepts a custom strategy with a valid interface' do
|
42
|
-
expect { Cucumber::Rails::Database.javascript_strategy = ValidStrategy }.not_to raise_error
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'forwards events to a custom strategy' do
|
46
|
-
allow(ValidStrategy).to receive_messages(new: strategy)
|
47
|
-
Cucumber::Rails::Database.javascript_strategy = ValidStrategy
|
48
|
-
|
49
|
-
expect(strategy).to receive(:before_non_js).ordered
|
50
|
-
Cucumber::Rails::Database.before_non_js
|
51
|
-
|
52
|
-
expect(strategy).to receive(:before_js).ordered
|
53
|
-
Cucumber::Rails::Database.before_js
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
# Generators are not automatically loaded by Rails
|
4
|
-
require 'generators/cucumber/install/install_generator'
|
5
|
-
|
6
|
-
describe Cucumber::InstallGenerator do
|
7
|
-
# Tell the generator where to put its output (what it thinks of as Rails.root)
|
8
|
-
destination File.expand_path('../../../../../tmp', __FILE__)
|
9
|
-
|
10
|
-
before { prepare_destination }
|
11
|
-
|
12
|
-
describe 'no arguments' do
|
13
|
-
before { run_generator }
|
14
|
-
|
15
|
-
describe 'config/cucumber.yml' do
|
16
|
-
subject { file('config/cucumber.yml') }
|
17
|
-
it { is_expected.to exist }
|
18
|
-
it { is_expected.to contain 'default: <%= std_opts %> features' }
|
19
|
-
end
|
20
|
-
|
21
|
-
describe 'features/step_definitions folder' do
|
22
|
-
subject { file('features/step_definitions') }
|
23
|
-
it { is_expected.to exist }
|
24
|
-
end
|
25
|
-
|
26
|
-
describe 'features/support/env.rb' do
|
27
|
-
subject { file('features/support/env.rb') }
|
28
|
-
it { is_expected.to exist }
|
29
|
-
it { is_expected.to contain '# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.' }
|
30
|
-
it { is_expected.to contain "require 'cucumber/rails'" }
|
31
|
-
end
|
32
|
-
|
33
|
-
describe 'lib/tasks/cucumber.rake' do
|
34
|
-
subject { file('lib/tasks/cucumber.rake') }
|
35
|
-
it { is_expected.to exist }
|
36
|
-
it { is_expected.to contain '# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.' }
|
37
|
-
it { is_expected.to contain "task cucumber: 'cucumber:ok'" }
|
38
|
-
end
|
39
|
-
|
40
|
-
describe 'script/cucumber' do
|
41
|
-
subject { file('script/cucumber') }
|
42
|
-
it { is_expected.to exist }
|
43
|
-
it { is_expected.to contain 'load Cucumber::BINARY' }
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'rspec/rails/fixture_support'
|
2
|
-
require 'rails/all'
|
3
|
-
|
4
|
-
ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
|
5
|
-
|
6
|
-
module CucumberRails
|
7
|
-
class Application < ::Rails::Application
|
8
|
-
self.config.secret_key_base = 'ASecretString' if config.respond_to? :secret_key_base
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
require 'rspec/support/spec'
|
13
|
-
require 'rspec/rails'
|
14
|
-
require 'ammeter/init'
|