cucumber-rails 2.1.0 → 2.2.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 +4 -4
- data/Appraisals +9 -18
- data/CHANGELOG.md +14 -4
- data/CONTRIBUTING.md +14 -2
- data/LICENSE +1 -1
- data/README.md +2 -12
- data/Rakefile +4 -4
- data/bin/install_geckodriver.sh +1 -1
- data/cucumber-rails.gemspec +13 -11
- data/dev_tasks/yard.rake +1 -1
- data/dev_tasks/yard/default/layout/html/setup.rb +1 -1
- data/features/capybara_javascript_drivers.feature +56 -6
- data/features/database_cleaner.feature +88 -1
- data/features/step_definitions/cucumber_rails_steps.rb +11 -0
- data/features/support/cucumber_rails_helper.rb +1 -0
- data/features/support/env.rb +1 -1
- data/gemfiles/rails_5_0.gemfile +3 -3
- data/gemfiles/rails_5_1.gemfile +3 -3
- data/gemfiles/rails_5_2.gemfile +2 -3
- data/gemfiles/rails_6_0.gemfile +1 -2
- data/lib/cucumber/rails.rb +7 -3
- data/lib/cucumber/rails/database.rb +6 -60
- data/lib/cucumber/rails/database/deletion_strategy.rb +11 -0
- data/lib/cucumber/rails/database/shared_connection_strategy.rb +25 -0
- data/lib/cucumber/rails/database/strategy.rb +31 -0
- data/lib/cucumber/rails/database/truncation_strategy.rb +11 -0
- data/lib/cucumber/rails/hooks/active_record.rb +16 -14
- data/lib/cucumber/rails/hooks/database_cleaner.rb +9 -3
- data/lib/cucumber/rails/hooks/mail.rb +4 -2
- data/spec/cucumber/rails/database_spec.rb +4 -0
- data/spec/examples.txt +19 -0
- data/tmp/aruba/test_app/Gemfile +62 -0
- data/tmp/aruba/test_app/Gemfile.lock +249 -0
- data/tmp/aruba/test_app/README.md +24 -0
- data/tmp/aruba/test_app/Rakefile +6 -0
- data/tmp/aruba/test_app/app/assets/config/manifest.js +3 -0
- data/tmp/aruba/test_app/app/assets/javascripts/application.js +16 -0
- data/tmp/aruba/test_app/app/assets/javascripts/appointments.coffee +3 -0
- data/tmp/aruba/test_app/app/assets/javascripts/cable.js +13 -0
- data/tmp/aruba/test_app/app/assets/stylesheets/application.css +15 -0
- data/tmp/aruba/test_app/app/assets/stylesheets/appointments.scss +3 -0
- data/tmp/aruba/test_app/app/assets/stylesheets/scaffolds.scss +84 -0
- data/tmp/aruba/test_app/app/channels/application_cable/channel.rb +4 -0
- data/tmp/aruba/test_app/app/channels/application_cable/connection.rb +4 -0
- data/tmp/aruba/test_app/app/controllers/application_controller.rb +2 -0
- data/tmp/aruba/test_app/app/controllers/appointments_controller.rb +74 -0
- data/tmp/aruba/test_app/app/helpers/application_helper.rb +2 -0
- data/tmp/aruba/test_app/app/helpers/appointments_helper.rb +2 -0
- data/tmp/aruba/test_app/app/jobs/application_job.rb +2 -0
- data/tmp/aruba/test_app/app/mailers/application_mailer.rb +4 -0
- data/tmp/aruba/test_app/app/models/application_record.rb +3 -0
- data/tmp/aruba/test_app/app/models/appointment.rb +2 -0
- data/tmp/aruba/test_app/app/views/appointments/_appointment.json.jbuilder +2 -0
- data/tmp/aruba/test_app/app/views/appointments/_form.html.erb +27 -0
- data/tmp/aruba/test_app/app/views/appointments/edit.html.erb +6 -0
- data/tmp/aruba/test_app/app/views/appointments/index.html.erb +29 -0
- data/tmp/aruba/test_app/app/views/appointments/index.json.jbuilder +1 -0
- data/tmp/aruba/test_app/app/views/appointments/new.html.erb +5 -0
- data/tmp/aruba/test_app/app/views/appointments/show.html.erb +14 -0
- data/tmp/aruba/test_app/app/views/appointments/show.json.jbuilder +1 -0
- data/tmp/aruba/test_app/app/views/layouts/application.html.erb +15 -0
- data/tmp/aruba/test_app/app/views/layouts/mailer.html.erb +13 -0
- data/tmp/aruba/test_app/app/views/layouts/mailer.text.erb +1 -0
- data/tmp/aruba/test_app/bin/bundle +3 -0
- data/tmp/aruba/test_app/bin/rails +4 -0
- data/tmp/aruba/test_app/bin/rake +4 -0
- data/tmp/aruba/test_app/bin/setup +36 -0
- data/tmp/aruba/test_app/bin/update +31 -0
- data/tmp/aruba/test_app/bin/yarn +11 -0
- data/tmp/aruba/test_app/config.ru +5 -0
- data/tmp/aruba/test_app/config/application.rb +19 -0
- data/tmp/aruba/test_app/config/boot.rb +3 -0
- data/tmp/aruba/test_app/config/cable.yml +10 -0
- data/tmp/aruba/test_app/config/credentials.yml.enc +1 -0
- data/tmp/aruba/test_app/config/cucumber.yml +9 -0
- data/tmp/aruba/test_app/config/database.yml +25 -0
- data/tmp/aruba/test_app/config/environment.rb +5 -0
- data/tmp/aruba/test_app/config/environments/development.rb +61 -0
- data/tmp/aruba/test_app/config/environments/production.rb +94 -0
- data/tmp/aruba/test_app/config/environments/test.rb +46 -0
- data/tmp/aruba/test_app/config/initializers/application_controller_renderer.rb +8 -0
- data/tmp/aruba/test_app/config/initializers/assets.rb +14 -0
- data/tmp/aruba/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/tmp/aruba/test_app/config/initializers/content_security_policy.rb +25 -0
- data/tmp/aruba/test_app/config/initializers/cookies_serializer.rb +5 -0
- data/tmp/aruba/test_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/tmp/aruba/test_app/config/initializers/inflections.rb +16 -0
- data/tmp/aruba/test_app/config/initializers/mime_types.rb +4 -0
- data/tmp/aruba/test_app/config/initializers/wrap_parameters.rb +14 -0
- data/tmp/aruba/test_app/config/locales/en.yml +33 -0
- data/tmp/aruba/test_app/config/master.key +1 -0
- data/tmp/aruba/test_app/config/puma.rb +37 -0
- data/tmp/aruba/test_app/config/routes.rb +4 -0
- data/tmp/aruba/test_app/config/storage.yml +34 -0
- data/tmp/aruba/test_app/db/development.sqlite3 +0 -0
- data/tmp/aruba/test_app/db/migrate/20200821080656_create_appointments.rb +10 -0
- data/tmp/aruba/test_app/db/schema.rb +22 -0
- data/tmp/aruba/test_app/db/seeds.rb +7 -0
- data/tmp/aruba/test_app/db/test.sqlite3 +0 -0
- data/tmp/aruba/test_app/features/create_appointment.feature +9 -0
- data/tmp/aruba/test_app/features/create_appointment_steps.rb +19 -0
- data/tmp/aruba/test_app/features/support/env.rb +18 -0
- data/tmp/aruba/test_app/lib/tasks/cucumber.rake +76 -0
- data/tmp/aruba/test_app/log/development.log +27 -0
- data/tmp/aruba/test_app/log/test.log +38 -0
- data/tmp/aruba/test_app/package.json +5 -0
- data/tmp/aruba/test_app/public/404.html +67 -0
- data/tmp/aruba/test_app/public/422.html +67 -0
- data/tmp/aruba/test_app/public/500.html +66 -0
- data/tmp/aruba/test_app/public/apple-touch-icon-precomposed.png +0 -0
- data/tmp/aruba/test_app/public/apple-touch-icon.png +0 -0
- data/tmp/aruba/test_app/public/favicon.ico +0 -0
- data/tmp/aruba/test_app/public/robots.txt +1 -0
- data/tmp/aruba/test_app/script/cucumber +11 -0
- data/tmp/aruba/test_app/test/application_system_test_case.rb +5 -0
- data/tmp/aruba/test_app/test/controllers/appointments_controller_test.rb +48 -0
- data/tmp/aruba/test_app/test/fixtures/appointments.yml +9 -0
- data/tmp/aruba/test_app/test/models/appointment_test.rb +7 -0
- data/tmp/aruba/test_app/test/system/appointments_test.rb +45 -0
- data/tmp/aruba/test_app/test/test_helper.rb +10 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0I/0I0oT83oN3NKiEi9XIhexiT3XgkA8mKyCbs25v3l20g.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0W/0WnFNEwHN4bhDiFTvyMWURx02L4yP3gkP7vtjzKQFVo.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2B/2Bg65dpvTdePrXa_wG6RsHpQzbqVSiHK0FVa0WdOJ4k.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2r/2r_85kVmIcWzvJH72GapWtLDhaMP2HEziNxykyYpAUg.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/72/72jdZDzrM3-D_zYkIiPdAWQNeaFsqah154_QvcqWqTQ.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/9O/9OOXnKHBQnaCeE5HDe5csQsItouzWM6rTl8sESvkGTE.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AF/AFloQwm_M7GZudPY87xx4TA0xEeuX9Psl0SJ94i5EyU.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AP/APDAc8aUg_16wNWrVhCJcKeqbxyOScYGVhiDVgbrV7U.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/EO/EOut5kyDPr7aKrHdvDsNJuYarA8XGnpAlDvBimlaC08.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/GJ/GJzxuc2i_d4Uhxs4IMnbQXhxBc9CTLrnQyzxwTqKOBw.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ge/Ge2oyaUStbQszLfXjgTi6LkncyS5SKfV8RJwbRA3HbI.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Hv/HvPd_vK17QbhWq8QnCuyhqm0cPaGnHyO9lSzN-icQdg.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/II/IIhUO-5-DcfCyD_rVJeHjRMNVJxLmAmXP8i2XEjFpns.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ka/KaLHRsUYc4EUxUr4q_UhArFJUTF_EaBklpeU4TsE9SY.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/MZ/MZcwDENEs93Wd9q7A_7UWdfJrWsBXa0pGp03P9mqG2I.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Nw/NwHea3ImBECnlmojPb9X9ZDfvRRuX_dX9sxISdtp9-A.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/PP/PPKuKT7m2PMDHVzBcYjePvXU6CbCW63Iqe3Q2a-Jdh8.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/RE/REtgGrS74n4Y7OKRcGvZsA2EUClg_RM66mVgGpySI20.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Rk/RkQLRXSz5LhJQnH7BT-ZDkVK0Rx8N9KhcVwR2A1HY4M.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Sx/SxtNEQ-KKVBCTtsDD-xf4oJEIdBPIHkGktnLXvG-GRk.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/TL/TLxLzqEAxKzTHH9EwSg5Lvcp3zgGuhjTjed121DSu9U.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U1/U1D7nCXYBD3VlPnXGs_6mRtlhs-Gvv_vvCUYlTf4Grw.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U6/U6pXyI-5haNcHRdsB-SoztzlXb98-256hFReXsL31J4.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UE/UEKUaC9O_XBO5acP8HnxcJ1dtNM_1C7MTofkTQvPgRA.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UV/UVcnI5bo-eQvULfmzeQUFVTDYEMF2cbAXpsOsh01XNY.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/WK/WK8RpMP5qb9GRQTsTHAzlfo8t2nsTLU6B8CQAc4UfOU.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Xk/Xk8p9O39-syzKbpnoMRChld0TpoZFWlNIzeT5XKw2fQ.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Zv/ZvCEW2ZyS-k4cHH7Gd8P2nKFE9Uh1VOrfR-1PYY2yz8.cache +5 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ac/acWu1-1ZAW1jRVKlHYlzlEg28lk-SdHfTq-P-viJMS0.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/b3/b3NiYrQOlN2zxiJYqbl4gmvK6it3Md9gSzAYgsIMhnY.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/c1/c1Pm-rFPEB3LXIjOtswD6x8SEAgI9y2BR16jc8ifcsc.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/em/emTQG2a9zF8NuvElLOnEpNJp0wq3_gVSDAM60vyXAzE.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/fX/fXH3Db_88TmJFhRydoFTx8tZbHAkLzK2ZZ0lsBEg8xA.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/gI/gIHntmCf7DbObPL_KZJYSgduAmqX18ZZPOtq85pn8vo.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kP/kPwbLAUCLjv0x6fe5lvZpmUkgmvQSDHSdEOSdbMyDgY.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kT/kT98Z_slHI6SgdEmoAtKAHyJQjTHdbe6GAbB27RP2uI.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mt/mtT4Rwi7H_vHQXdxxPvvzhL4ziA7X9WK-JXzacxWlEA.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mz/mzgD6X_N-fO95dP8Q1Q1sApCrbSmgPgsuEKv65KYcdo.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/oi/oiPhXw8pYdWv5T4qRFzePHaXZLI50xMvvTyfry-ILSo.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/r-/r--YB1ugrZ4F-ogbLLYNwIH3j9pQ2u_ZBjTJxoS7TrM.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/s6/s68UIyg0lNko7IA42JXv_wwy9Ea3WH-zc9h0GYPg88Y.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/si/siT97rfEKbIWcCj6KUBChX7kpRBKI2fAeGGwpsz0tTU.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/st/stqDgDfAemfEq7ZxlEj6YThpn8_1Nfw2bRVA0N03YTw.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/t9/t93lpjyly3MvgKs51_OlLXneJXGyYFGmshXsk4Wr69M.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tE/tEy2QePsDnmFyyAQEric23sSBnfHBst3SEM7p-J7el8.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tR/tRV7SyAY9c71G0o-8bElvNI76KcWhc5NVm48xflMPpM.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tg/tggwa2O6A41xeZTK4SR0qcX0X55aOGg6q8ZWfqma1vM.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uB/uBKOYcdzL_6Amevsu-uKAMTg7QGW5kgC0t5sAZINrcI.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uE/uEyPXY2m04nerJV0pn3p-B-BlkJ08oufpQH1G2QXPw4.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/up/upyndqsU9bU6WV8qyMy7MLpcQoybRqgj-qA3C3pjzXY.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ux/uxx-W2TOCdnAEGX0ZLThb_QIEbLYutX8qCwD0glYCKE.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vC/vCsc-q2WmT8vWM2d2pb6_5hFav8mGlylwEKVWQvsumo.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vc/vcgiILg1wO98x-a4kX678ASAFWA1cL0iVx07VkHLPqA.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vu/vu6xNIGT6zorPmcKfd7edgxBltTmIRXU281uyK51kkU.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/w4/w4y_Lms54hD2Nivh5PHeccAmh2DX53sc_HDTQYNyNXw.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/yZ/yZpoD5Zf4RAQoOwi5kMVksuta_0KhYSK_Yy_6Ykyt7E.cache +1 -0
- data/tmp/aruba/test_app/tmp/development_secret.txt +1 -0
- metadata +212 -36
- data/.github/ISSUE_TEMPLATE.md +0 -52
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -42
- data/.gitignore +0 -14
- data/.rspec +0 -4
- data/.rubocop.yml +0 -68
- data/.travis.yml +0 -62
- data/config/.gitignore +0 -1
- data/gemfiles/rails_4_2.gemfile +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab9079b1b0b5cbf30f04627c088e6e73a78804c68852b02b834439892d579001
|
4
|
+
data.tar.gz: 244214de463e90d6b73fd09dd5316b5a68de6397f816a68d64710986445303e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb770970489ece31916eb57934a5bf9873db51377e6588f1b1150403c3ffd7ce735afd90481a49c497bfe24e9f2d744bcde22e1908db9f2459edd83f205e387f
|
7
|
+
data.tar.gz: ca257e8a0ea4f794323c3aff7597c73d96189f057be11339369c2f87aed77c9c47b3d7df9ad914006277edcc24d371cf7c28552751b0b9f91cf3f2d95029365d
|
data/Appraisals
CHANGED
@@ -1,35 +1,26 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
appraise 'rails_4_2' do
|
4
|
-
gem 'capybara', '< 3.16.0', platform: :mri_23
|
5
|
-
gem 'nokogiri', '< 1.9.1', platform: :mri_23
|
6
|
-
gem 'railties', '~> 4.2.11'
|
7
|
-
gem 'sqlite3', '~> 1.3.13'
|
8
|
-
end
|
9
|
-
|
10
3
|
appraise 'rails_5_0' do
|
11
|
-
gem 'capybara', '< 3
|
12
|
-
gem '
|
13
|
-
gem '
|
4
|
+
gem 'capybara', '< 3'
|
5
|
+
gem 'cucumber', '< 4'
|
6
|
+
gem 'rails', '~> 5.0.7'
|
14
7
|
gem 'sqlite3', '~> 1.3.13'
|
15
8
|
end
|
16
9
|
|
17
10
|
appraise 'rails_5_1' do
|
18
|
-
gem 'capybara', '< 3.
|
19
|
-
gem '
|
20
|
-
gem '
|
11
|
+
gem 'capybara', '< 3.15'
|
12
|
+
gem 'cucumber', '< 5'
|
13
|
+
gem 'rails', '~> 5.1.7'
|
21
14
|
gem 'sqlite3', '~> 1.3.13'
|
22
15
|
end
|
23
16
|
|
24
17
|
appraise 'rails_5_2' do
|
25
|
-
gem 'capybara', '< 3.
|
26
|
-
gem '
|
27
|
-
gem 'railties', '~> 5.2.0'
|
18
|
+
gem 'capybara', '< 3.33'
|
19
|
+
gem 'rails', '~> 5.2.4'
|
28
20
|
gem 'sqlite3', '~> 1.3.13'
|
29
21
|
end
|
30
22
|
|
31
23
|
appraise 'rails_6_0' do
|
32
|
-
gem '
|
33
|
-
gem 'rails', '~> 6.0.0'
|
24
|
+
gem 'rails', '~> 6.0.3'
|
34
25
|
gem 'sqlite3', '~> 1.4'
|
35
26
|
end
|
data/CHANGELOG.md
CHANGED
@@ -5,15 +5,23 @@ on how to contribute to Cucumber.
|
|
5
5
|
|
6
6
|
### New Features
|
7
7
|
|
8
|
-
*
|
9
|
-
|
8
|
+
* Added more documentation and tests around Javascript tagged scenarios
|
9
|
+
([#480](https://github.com/cucumber/cucumber-rails/pull/480) [luke-hill])
|
10
|
+
|
10
11
|
### Changed
|
11
12
|
|
12
|
-
*
|
13
|
+
* Dropped Rails 4.2 support ([#392](https://github.com/cucumber/cucumber-rails/pull/392) [deivid-rodriguez])
|
13
14
|
|
14
15
|
### Fixed
|
15
16
|
|
16
|
-
*
|
17
|
+
* Database cleaning no longer silently fails when using database_cleaner v2 adapter gems
|
18
|
+
([#467](https://github.com/cucumber/cucumber-rails/pull/467) [botandrose])
|
19
|
+
|
20
|
+
* Restored compatibility with `database_cleaner` versions earlier than 1.8.0.beta
|
21
|
+
([#473](https://github.com/cucumber/cucumber-rails/pull/473) [cgriego])
|
22
|
+
|
23
|
+
* Restored previous `database_cleaner` behavior for apps that do not use/load ActiveRecord
|
24
|
+
([#474](https://github.com/cucumber/cucumber-rails/pull/474) [cgriego])
|
17
25
|
|
18
26
|
## [v2.1.0](https://github.com/cucumber/cucumber-rails/compare/v2.0.0...v2.1.0) (2020-06-15)
|
19
27
|
|
@@ -619,3 +627,5 @@ and to celebrate that cucumber-rails now supports Capybara as an alternative to
|
|
619
627
|
[damonjmurray]: https://github.com/damonjmurray
|
620
628
|
[orien]: https://github.com/orien
|
621
629
|
[wagenet]: https://github.com/wagenet
|
630
|
+
[cgriego]: https://github.com/cgriego
|
631
|
+
[botandrose]: https://github.com/botandrose
|
data/CONTRIBUTING.md
CHANGED
@@ -29,11 +29,23 @@ This document is a guide for those maintaining Cucumber-Rails, and others who wo
|
|
29
29
|
bundle install
|
30
30
|
bin/install_geckodriver.sh
|
31
31
|
bin/install_webpacker.sh
|
32
|
-
# Then to run tests on one specific
|
33
|
-
bundle exec appraisal
|
32
|
+
# Then to run tests on one version-specific Gemfile (e.g. gemfiles/rails_6_0.gemfile), run
|
33
|
+
bundle exec appraisal rails_6_0 rake test
|
34
34
|
# Or run tests across the full supported stack. Note that because we support many versions. This takes 5-10 minutes
|
35
35
|
bundle exec rake appraisal
|
36
36
|
|
37
|
+
## Updating Appraisal gems / dependencies of cucumber-rails
|
38
|
+
|
39
|
+
To remove and rebuild the different gemfiles (for example, to update a rails version or its
|
40
|
+
dependencies), use the following:
|
41
|
+
|
42
|
+
[bundle exec] appraisal update
|
43
|
+
|
44
|
+
If you've changed versions of the dependencies, you may find it helpful to forcefully clean
|
45
|
+
each appraisal's gem lock file in `gemfiles/`. You can do this using:
|
46
|
+
|
47
|
+
[bundle exec] rake clean
|
48
|
+
|
37
49
|
## Release Process
|
38
50
|
|
39
51
|
* Make sure `CHANGELOG.md` is updated with the upcoming version number, and has entries for all fixes.
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License
|
2
2
|
|
3
|
-
Copyright (c) 2008-
|
3
|
+
Copyright (c) 2008-2020 Aslak Hellesøy and the Cucumber Team.
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
6
6
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
[](https://codeclimate.com/github/cucumber/cucumber-rails)
|
6
6
|
[](https://www.codetriage.com/cucumber/cucumber-rails)
|
7
7
|
|
8
|
-
Cucumber-Rails brings Cucumber to Rails
|
8
|
+
Cucumber-Rails brings Cucumber to Rails 5.x and 6.x.
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
@@ -108,17 +108,7 @@ all gemfiles, run the following commands:
|
|
108
108
|
|
109
109
|
To run the suite against a named gemfile, use the following:
|
110
110
|
|
111
|
-
[bundle exec] appraisal
|
112
|
-
|
113
|
-
To remove and rebuild the different gemfiles (for example, to update a rails version or its
|
114
|
-
dependencies), use the following:
|
115
|
-
|
116
|
-
[bundle exec] appraisal update
|
117
|
-
|
118
|
-
If you've changed versions of the dependencies, you may find it helpful to forcefully clean
|
119
|
-
each appraisal's gem lock file in `gemfiles/`. You can do this using:
|
120
|
-
|
121
|
-
[bundle exec] rake clean
|
111
|
+
[bundle exec] appraisal rails_6_0 rake test
|
122
112
|
|
123
113
|
### Adding dependencies
|
124
114
|
|
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
CUCUMBER_RAILS_VERSION =
|
4
|
-
Gem::Specification.load(File.dirname(__FILE__)
|
4
|
+
Gem::Specification.load("#{File.dirname(__FILE__)}/cucumber-rails.gemspec").version.version
|
5
5
|
require 'rubygems'
|
6
6
|
require 'bundler'
|
7
7
|
require 'bundler/setup'
|
@@ -11,7 +11,7 @@ require 'rake/clean'
|
|
11
11
|
require 'pathname'
|
12
12
|
Bundler::GemHelper.install_tasks
|
13
13
|
|
14
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__)
|
14
|
+
$LOAD_PATH.unshift("#{File.dirname(__FILE__)}/lib")
|
15
15
|
Dir["#{File.dirname(__FILE__)}/dev_tasks/*.rake"].sort.each { |ext| load ext }
|
16
16
|
|
17
17
|
CLEAN.include('doc', 'tmp')
|
@@ -26,11 +26,11 @@ namespace :test do
|
|
26
26
|
Rake::Task['appraisal'].invoke('test')
|
27
27
|
end
|
28
28
|
|
29
|
-
desc 'Run tests against specified gemfile, e.g. rake test:gemfile[
|
29
|
+
desc 'Run tests against specified gemfile, e.g. rake test:gemfile[rails_6_0]'
|
30
30
|
task :gemfile, :name do |_task, args|
|
31
31
|
unless args.name && Pathname.new("gemfiles/#{args.name}.gemfile").exist?
|
32
32
|
raise ArgumentError, "You must provide the name of an existing Appraisal gemfile,
|
33
|
-
e.g. 'rake test:gemfile[
|
33
|
+
e.g. 'rake test:gemfile[rails_6_0]'"
|
34
34
|
end
|
35
35
|
|
36
36
|
Rake::Task["appraisal:#{args.name}"].invoke('test')
|
data/bin/install_geckodriver.sh
CHANGED
@@ -8,7 +8,7 @@ curl --silent \
|
|
8
8
|
--fail \
|
9
9
|
--retry 3 \
|
10
10
|
--output /tmp/geckodriver_linux64.tar.gz \
|
11
|
-
https://github.com/mozilla/geckodriver/releases/download/v0.
|
11
|
+
https://github.com/mozilla/geckodriver/releases/download/v0.27.0/geckodriver-v0.27.0-linux64.tar.gz
|
12
12
|
|
13
13
|
sudo tar -C /usr/local/bin -xvzf /tmp/geckodriver_linux64.tar.gz geckodriver
|
14
14
|
|
data/cucumber-rails.gemspec
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'rake/file_list'
|
3
4
|
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
4
5
|
|
5
6
|
Gem::Specification.new do |s|
|
6
7
|
s.name = 'cucumber-rails'
|
7
|
-
s.version = '2.
|
8
|
+
s.version = '2.2.0'
|
8
9
|
s.authors = ['Aslak Hellesøy', 'Dennis Blöte', 'Rob Holland']
|
9
10
|
s.description = 'Cucumber Generator and Runtime for Rails'
|
10
11
|
s.summary = "#{s.name}-#{s.version}"
|
@@ -21,11 +22,11 @@ Gem::Specification.new do |s|
|
|
21
22
|
'source_code_uri' => "https://github.com/cucumber/cucumber-rails/tree/v#{s.version}"
|
22
23
|
}
|
23
24
|
|
24
|
-
s.add_runtime_dependency('capybara', ['>= 2.
|
25
|
-
s.add_runtime_dependency('cucumber', ['>= 3.0.2', '<
|
26
|
-
s.add_runtime_dependency('mime-types', ['
|
27
|
-
s.add_runtime_dependency('nokogiri', '~> 1.8')
|
28
|
-
s.add_runtime_dependency('rails', ['>=
|
25
|
+
s.add_runtime_dependency('capybara', ['>= 2.18', '< 4']) # We support legacy capybara (But only the last 2.x)
|
26
|
+
s.add_runtime_dependency('cucumber', ['>= 3.0.2', '< 6']) # Support cucumber in the 3.x / 4.x / 5.x revisions
|
27
|
+
s.add_runtime_dependency('mime-types', ['~> 3.2']) # Only support the latest major (3+ years old)
|
28
|
+
s.add_runtime_dependency('nokogiri', '~> 1.8') # Only support the latest major (3+ years old)
|
29
|
+
s.add_runtime_dependency('rails', ['>= 5.0', '< 7']) # We support any version of Rails in the 5.x and 6.x series
|
29
30
|
|
30
31
|
# Main development dependencies
|
31
32
|
s.add_development_dependency('ammeter', '>= 1.1.4')
|
@@ -34,9 +35,10 @@ Gem::Specification.new do |s|
|
|
34
35
|
s.add_development_dependency('bundler', '>= 1.17')
|
35
36
|
s.add_development_dependency('rake', '>= 12.0')
|
36
37
|
s.add_development_dependency('rspec', '~> 3.6')
|
37
|
-
s.add_development_dependency('rubocop', '~> 0.
|
38
|
-
s.add_development_dependency('rubocop-
|
39
|
-
s.add_development_dependency('rubocop-
|
38
|
+
s.add_development_dependency('rubocop', '~> 0.89.0')
|
39
|
+
s.add_development_dependency('rubocop-packaging', '~> 0.3.0')
|
40
|
+
s.add_development_dependency('rubocop-performance', '~> 1.7.1')
|
41
|
+
s.add_development_dependency('rubocop-rspec', '~> 1.42.0')
|
40
42
|
s.add_development_dependency('sqlite3', '~> 1.3')
|
41
43
|
|
42
44
|
# For Documentation:
|
@@ -45,7 +47,7 @@ Gem::Specification.new do |s|
|
|
45
47
|
|
46
48
|
s.required_ruby_version = '>= 2.4.0'
|
47
49
|
s.rubygems_version = '>= 1.6.1'
|
48
|
-
s.files =
|
49
|
-
s.test_files =
|
50
|
+
s.files = Rake::FileList['**/*'].exclude(*File.read('.gitignore').split)
|
51
|
+
s.test_files = Dir['{spec,features}/**/*']
|
50
52
|
s.require_path = 'lib'
|
51
53
|
end
|
data/dev_tasks/yard.rake
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'yard'
|
4
4
|
require 'yard/rake/yardoc_task'
|
5
5
|
|
6
|
-
SITE_DIR = File.expand_path(File.dirname(__FILE__)
|
6
|
+
SITE_DIR = File.expand_path("#{File.dirname(__FILE__)}/../cucumber.github.com")
|
7
7
|
API_DIR = File.join(SITE_DIR, 'api', 'cucumber-rails', 'ruby', 'yardoc')
|
8
8
|
|
9
9
|
namespace :api do
|
@@ -1,13 +1,10 @@
|
|
1
|
-
@focus
|
2
1
|
Feature: Capybara Javascript Drivers
|
3
2
|
|
4
|
-
|
3
|
+
Scenario: Use a particular driver
|
5
4
|
Given I have created a new Rails app and installed cucumber-rails
|
6
5
|
And I force selenium to run Firefox in headless mode
|
7
6
|
When I run `bundle exec rails g scaffold appointment name:string when:datetime`
|
8
|
-
|
9
|
-
Scenario: Use a particular driver
|
10
|
-
When I write to "features/create_appointment.feature" with:
|
7
|
+
And I write to "features/create_appointment.feature" with:
|
11
8
|
"""
|
12
9
|
@javascript
|
13
10
|
Feature: Create appointments
|
@@ -50,7 +47,10 @@ Feature: Capybara Javascript Drivers
|
|
50
47
|
"""
|
51
48
|
|
52
49
|
Scenario: Mixed DB access
|
53
|
-
|
50
|
+
Given I have created a new Rails app and installed cucumber-rails
|
51
|
+
And I force selenium to run Firefox in headless mode
|
52
|
+
When I run `bundle exec rails g scaffold appointment name:string when:datetime`
|
53
|
+
And I write to "features/create_appointment.feature" with:
|
54
54
|
"""
|
55
55
|
@javascript
|
56
56
|
Feature: Create appointments
|
@@ -80,3 +80,53 @@ Feature: Capybara Javascript Drivers
|
|
80
80
|
1 scenario (1 passed)
|
81
81
|
3 steps (3 passed)
|
82
82
|
"""
|
83
|
+
|
84
|
+
Scenario: Use a particular driver without a DB
|
85
|
+
Given I have created a new Rails app and installed cucumber-rails without database_cleaner
|
86
|
+
And I force selenium to run Firefox in headless mode
|
87
|
+
When I run `bundle exec rails g scaffold appointment name:string when:datetime`
|
88
|
+
And I write to "features/create_appointment.feature" with:
|
89
|
+
"""
|
90
|
+
@javascript
|
91
|
+
Feature: Create appointments
|
92
|
+
Scenario: Visit the Constitution on May 17
|
93
|
+
Given I am on the new appointment page
|
94
|
+
And I fill in "Norway's constitution" for "Name"
|
95
|
+
And I select "2015-02-20 15:10:00 UTC" as the "When" date and time
|
96
|
+
And I press "Create Appointment"
|
97
|
+
Then I should see "Norway's constitution"
|
98
|
+
And I should see "2015-02-20 15:10:00 UTC"
|
99
|
+
"""
|
100
|
+
And I write to "features/create_appointment_steps.rb" with:
|
101
|
+
"""
|
102
|
+
Given('I am on the new appointment page') do
|
103
|
+
visit new_appointment_path
|
104
|
+
end
|
105
|
+
|
106
|
+
When('I fill in {string} for {string}') do |value, field|
|
107
|
+
fill_in(field, with: value)
|
108
|
+
end
|
109
|
+
|
110
|
+
When('I press {string}') do |button|
|
111
|
+
click_button(button)
|
112
|
+
end
|
113
|
+
|
114
|
+
Then('I should see {string}') do |text|
|
115
|
+
expect(page).to have_content(text)
|
116
|
+
end
|
117
|
+
|
118
|
+
When('I select {string} as the {string} date and time') do |datetime, selector|
|
119
|
+
select_datetime(datetime, from: selector)
|
120
|
+
end
|
121
|
+
"""
|
122
|
+
And I append to "features/support/env.rb" with:
|
123
|
+
"""
|
124
|
+
Cucumber::Rails::Database.autorun_database_cleaner = false
|
125
|
+
"""
|
126
|
+
And I run `bundle exec rake db:migrate`
|
127
|
+
And I run `bundle exec rake cucumber`
|
128
|
+
Then the feature run should pass with:
|
129
|
+
"""
|
130
|
+
1 scenario (1 passed)
|
131
|
+
6 steps (6 passed)
|
132
|
+
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Feature: Database Cleaner
|
2
2
|
|
3
|
-
Scenario: Create records in background
|
3
|
+
Scenario: Create records in background with database_cleaner
|
4
4
|
Given I have created a new Rails app and installed cucumber-rails
|
5
5
|
When I write to "features/widgets.feature" with:
|
6
6
|
"""
|
@@ -42,3 +42,90 @@ Feature: Database Cleaner
|
|
42
42
|
2 scenarios (2 passed)
|
43
43
|
6 steps (6 passed)
|
44
44
|
"""
|
45
|
+
|
46
|
+
Scenario: Create records in background with database_cleaner-active_record
|
47
|
+
Given I have created a new Rails app and installed cucumber-rails with database_cleaner-active_record
|
48
|
+
When I write to "features/widgets.feature" with:
|
49
|
+
"""
|
50
|
+
Feature: Create widgets
|
51
|
+
Background: 2 initial widgets
|
52
|
+
Given I have 2 widgets
|
53
|
+
|
54
|
+
Scenario: Add 3 widgets
|
55
|
+
When I create 3 more widgets
|
56
|
+
Then I should have 5 widgets
|
57
|
+
|
58
|
+
Scenario: Add 7 widgets
|
59
|
+
When I create 7 more widgets
|
60
|
+
Then I should have 9 widgets
|
61
|
+
"""
|
62
|
+
And I run `rails generate model widget name:string`
|
63
|
+
And I write to "features/step_definitions/widget_steps.rb" with:
|
64
|
+
"""
|
65
|
+
Given('I have {int} widgets') do |number|
|
66
|
+
number.times do |i|
|
67
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
When('I create {int} more widgets') do |number|
|
72
|
+
number.times do |i|
|
73
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
Then('I should have {int} widgets') do |number|
|
78
|
+
expect(Widget.count).to eq(number)
|
79
|
+
end
|
80
|
+
"""
|
81
|
+
And I run `bundle exec rake db:migrate`
|
82
|
+
And I run `bundle exec rake cucumber`
|
83
|
+
Then the feature run should pass with:
|
84
|
+
"""
|
85
|
+
2 scenarios (2 passed)
|
86
|
+
6 steps (6 passed)
|
87
|
+
"""
|
88
|
+
|
89
|
+
Scenario: Create records in background without using database_cleaner
|
90
|
+
Given I have created a new Rails app and installed cucumber-rails without database_cleaner
|
91
|
+
When I write to "features/widgets.feature" with:
|
92
|
+
"""
|
93
|
+
Feature: Create widgets
|
94
|
+
Background: 2 initial widgets
|
95
|
+
# Note this creates 2 widgets each time
|
96
|
+
Given I have 2 widgets
|
97
|
+
|
98
|
+
Scenario: Add 3 widgets
|
99
|
+
When I create 3 more widgets
|
100
|
+
Then I should have 5 widgets
|
101
|
+
|
102
|
+
Scenario: Add 7 widgets
|
103
|
+
When I create 7 more widgets
|
104
|
+
Then I should have 14 widgets
|
105
|
+
"""
|
106
|
+
And I run `rails generate model widget name:string`
|
107
|
+
And I write to "features/step_definitions/widget_steps.rb" with:
|
108
|
+
"""
|
109
|
+
Given('I have {int} widgets') do |number|
|
110
|
+
number.times do |i|
|
111
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
When('I create {int} more widgets') do |number|
|
116
|
+
number.times do |i|
|
117
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
Then('I should have {int} widgets') do |number|
|
122
|
+
expect(Widget.count).to eq(number)
|
123
|
+
end
|
124
|
+
"""
|
125
|
+
And I run `bundle exec rake db:migrate`
|
126
|
+
And I run `bundle exec rake cucumber`
|
127
|
+
Then the feature run should pass with:
|
128
|
+
"""
|
129
|
+
2 scenarios (2 passed)
|
130
|
+
6 steps (6 passed)
|
131
|
+
"""
|