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.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +9 -18
  3. data/CHANGELOG.md +14 -4
  4. data/CONTRIBUTING.md +14 -2
  5. data/LICENSE +1 -1
  6. data/README.md +2 -12
  7. data/Rakefile +4 -4
  8. data/bin/install_geckodriver.sh +1 -1
  9. data/cucumber-rails.gemspec +13 -11
  10. data/dev_tasks/yard.rake +1 -1
  11. data/dev_tasks/yard/default/layout/html/setup.rb +1 -1
  12. data/features/capybara_javascript_drivers.feature +56 -6
  13. data/features/database_cleaner.feature +88 -1
  14. data/features/step_definitions/cucumber_rails_steps.rb +11 -0
  15. data/features/support/cucumber_rails_helper.rb +1 -0
  16. data/features/support/env.rb +1 -1
  17. data/gemfiles/rails_5_0.gemfile +3 -3
  18. data/gemfiles/rails_5_1.gemfile +3 -3
  19. data/gemfiles/rails_5_2.gemfile +2 -3
  20. data/gemfiles/rails_6_0.gemfile +1 -2
  21. data/lib/cucumber/rails.rb +7 -3
  22. data/lib/cucumber/rails/database.rb +6 -60
  23. data/lib/cucumber/rails/database/deletion_strategy.rb +11 -0
  24. data/lib/cucumber/rails/database/shared_connection_strategy.rb +25 -0
  25. data/lib/cucumber/rails/database/strategy.rb +31 -0
  26. data/lib/cucumber/rails/database/truncation_strategy.rb +11 -0
  27. data/lib/cucumber/rails/hooks/active_record.rb +16 -14
  28. data/lib/cucumber/rails/hooks/database_cleaner.rb +9 -3
  29. data/lib/cucumber/rails/hooks/mail.rb +4 -2
  30. data/spec/cucumber/rails/database_spec.rb +4 -0
  31. data/spec/examples.txt +19 -0
  32. data/tmp/aruba/test_app/Gemfile +62 -0
  33. data/tmp/aruba/test_app/Gemfile.lock +249 -0
  34. data/tmp/aruba/test_app/README.md +24 -0
  35. data/tmp/aruba/test_app/Rakefile +6 -0
  36. data/tmp/aruba/test_app/app/assets/config/manifest.js +3 -0
  37. data/tmp/aruba/test_app/app/assets/javascripts/application.js +16 -0
  38. data/tmp/aruba/test_app/app/assets/javascripts/appointments.coffee +3 -0
  39. data/tmp/aruba/test_app/app/assets/javascripts/cable.js +13 -0
  40. data/tmp/aruba/test_app/app/assets/stylesheets/application.css +15 -0
  41. data/tmp/aruba/test_app/app/assets/stylesheets/appointments.scss +3 -0
  42. data/tmp/aruba/test_app/app/assets/stylesheets/scaffolds.scss +84 -0
  43. data/tmp/aruba/test_app/app/channels/application_cable/channel.rb +4 -0
  44. data/tmp/aruba/test_app/app/channels/application_cable/connection.rb +4 -0
  45. data/tmp/aruba/test_app/app/controllers/application_controller.rb +2 -0
  46. data/tmp/aruba/test_app/app/controllers/appointments_controller.rb +74 -0
  47. data/tmp/aruba/test_app/app/helpers/application_helper.rb +2 -0
  48. data/tmp/aruba/test_app/app/helpers/appointments_helper.rb +2 -0
  49. data/tmp/aruba/test_app/app/jobs/application_job.rb +2 -0
  50. data/tmp/aruba/test_app/app/mailers/application_mailer.rb +4 -0
  51. data/tmp/aruba/test_app/app/models/application_record.rb +3 -0
  52. data/tmp/aruba/test_app/app/models/appointment.rb +2 -0
  53. data/tmp/aruba/test_app/app/views/appointments/_appointment.json.jbuilder +2 -0
  54. data/tmp/aruba/test_app/app/views/appointments/_form.html.erb +27 -0
  55. data/tmp/aruba/test_app/app/views/appointments/edit.html.erb +6 -0
  56. data/tmp/aruba/test_app/app/views/appointments/index.html.erb +29 -0
  57. data/tmp/aruba/test_app/app/views/appointments/index.json.jbuilder +1 -0
  58. data/tmp/aruba/test_app/app/views/appointments/new.html.erb +5 -0
  59. data/tmp/aruba/test_app/app/views/appointments/show.html.erb +14 -0
  60. data/tmp/aruba/test_app/app/views/appointments/show.json.jbuilder +1 -0
  61. data/tmp/aruba/test_app/app/views/layouts/application.html.erb +15 -0
  62. data/tmp/aruba/test_app/app/views/layouts/mailer.html.erb +13 -0
  63. data/tmp/aruba/test_app/app/views/layouts/mailer.text.erb +1 -0
  64. data/tmp/aruba/test_app/bin/bundle +3 -0
  65. data/tmp/aruba/test_app/bin/rails +4 -0
  66. data/tmp/aruba/test_app/bin/rake +4 -0
  67. data/tmp/aruba/test_app/bin/setup +36 -0
  68. data/tmp/aruba/test_app/bin/update +31 -0
  69. data/tmp/aruba/test_app/bin/yarn +11 -0
  70. data/tmp/aruba/test_app/config.ru +5 -0
  71. data/tmp/aruba/test_app/config/application.rb +19 -0
  72. data/tmp/aruba/test_app/config/boot.rb +3 -0
  73. data/tmp/aruba/test_app/config/cable.yml +10 -0
  74. data/tmp/aruba/test_app/config/credentials.yml.enc +1 -0
  75. data/tmp/aruba/test_app/config/cucumber.yml +9 -0
  76. data/tmp/aruba/test_app/config/database.yml +25 -0
  77. data/tmp/aruba/test_app/config/environment.rb +5 -0
  78. data/tmp/aruba/test_app/config/environments/development.rb +61 -0
  79. data/tmp/aruba/test_app/config/environments/production.rb +94 -0
  80. data/tmp/aruba/test_app/config/environments/test.rb +46 -0
  81. data/tmp/aruba/test_app/config/initializers/application_controller_renderer.rb +8 -0
  82. data/tmp/aruba/test_app/config/initializers/assets.rb +14 -0
  83. data/tmp/aruba/test_app/config/initializers/backtrace_silencers.rb +7 -0
  84. data/tmp/aruba/test_app/config/initializers/content_security_policy.rb +25 -0
  85. data/tmp/aruba/test_app/config/initializers/cookies_serializer.rb +5 -0
  86. data/tmp/aruba/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  87. data/tmp/aruba/test_app/config/initializers/inflections.rb +16 -0
  88. data/tmp/aruba/test_app/config/initializers/mime_types.rb +4 -0
  89. data/tmp/aruba/test_app/config/initializers/wrap_parameters.rb +14 -0
  90. data/tmp/aruba/test_app/config/locales/en.yml +33 -0
  91. data/tmp/aruba/test_app/config/master.key +1 -0
  92. data/tmp/aruba/test_app/config/puma.rb +37 -0
  93. data/tmp/aruba/test_app/config/routes.rb +4 -0
  94. data/tmp/aruba/test_app/config/storage.yml +34 -0
  95. data/tmp/aruba/test_app/db/development.sqlite3 +0 -0
  96. data/tmp/aruba/test_app/db/migrate/20200821080656_create_appointments.rb +10 -0
  97. data/tmp/aruba/test_app/db/schema.rb +22 -0
  98. data/tmp/aruba/test_app/db/seeds.rb +7 -0
  99. data/tmp/aruba/test_app/db/test.sqlite3 +0 -0
  100. data/tmp/aruba/test_app/features/create_appointment.feature +9 -0
  101. data/tmp/aruba/test_app/features/create_appointment_steps.rb +19 -0
  102. data/tmp/aruba/test_app/features/support/env.rb +18 -0
  103. data/tmp/aruba/test_app/lib/tasks/cucumber.rake +76 -0
  104. data/tmp/aruba/test_app/log/development.log +27 -0
  105. data/tmp/aruba/test_app/log/test.log +38 -0
  106. data/tmp/aruba/test_app/package.json +5 -0
  107. data/tmp/aruba/test_app/public/404.html +67 -0
  108. data/tmp/aruba/test_app/public/422.html +67 -0
  109. data/tmp/aruba/test_app/public/500.html +66 -0
  110. data/tmp/aruba/test_app/public/apple-touch-icon-precomposed.png +0 -0
  111. data/tmp/aruba/test_app/public/apple-touch-icon.png +0 -0
  112. data/tmp/aruba/test_app/public/favicon.ico +0 -0
  113. data/tmp/aruba/test_app/public/robots.txt +1 -0
  114. data/tmp/aruba/test_app/script/cucumber +11 -0
  115. data/tmp/aruba/test_app/test/application_system_test_case.rb +5 -0
  116. data/tmp/aruba/test_app/test/controllers/appointments_controller_test.rb +48 -0
  117. data/tmp/aruba/test_app/test/fixtures/appointments.yml +9 -0
  118. data/tmp/aruba/test_app/test/models/appointment_test.rb +7 -0
  119. data/tmp/aruba/test_app/test/system/appointments_test.rb +45 -0
  120. data/tmp/aruba/test_app/test/test_helper.rb +10 -0
  121. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0I/0I0oT83oN3NKiEi9XIhexiT3XgkA8mKyCbs25v3l20g.cache +1 -0
  122. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0W/0WnFNEwHN4bhDiFTvyMWURx02L4yP3gkP7vtjzKQFVo.cache +1 -0
  123. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2B/2Bg65dpvTdePrXa_wG6RsHpQzbqVSiHK0FVa0WdOJ4k.cache +0 -0
  124. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2r/2r_85kVmIcWzvJH72GapWtLDhaMP2HEziNxykyYpAUg.cache +1 -0
  125. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/72/72jdZDzrM3-D_zYkIiPdAWQNeaFsqah154_QvcqWqTQ.cache +3 -0
  126. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +2 -0
  127. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/9O/9OOXnKHBQnaCeE5HDe5csQsItouzWM6rTl8sESvkGTE.cache +1 -0
  128. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AF/AFloQwm_M7GZudPY87xx4TA0xEeuX9Psl0SJ94i5EyU.cache +3 -0
  129. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AP/APDAc8aUg_16wNWrVhCJcKeqbxyOScYGVhiDVgbrV7U.cache +0 -0
  130. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +2 -0
  131. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/EO/EOut5kyDPr7aKrHdvDsNJuYarA8XGnpAlDvBimlaC08.cache +0 -0
  132. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/GJ/GJzxuc2i_d4Uhxs4IMnbQXhxBc9CTLrnQyzxwTqKOBw.cache +0 -0
  133. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ge/Ge2oyaUStbQszLfXjgTi6LkncyS5SKfV8RJwbRA3HbI.cache +1 -0
  134. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
  135. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Hv/HvPd_vK17QbhWq8QnCuyhqm0cPaGnHyO9lSzN-icQdg.cache +2 -0
  136. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/II/IIhUO-5-DcfCyD_rVJeHjRMNVJxLmAmXP8i2XEjFpns.cache +1 -0
  137. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ka/KaLHRsUYc4EUxUr4q_UhArFJUTF_EaBklpeU4TsE9SY.cache +1 -0
  138. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/MZ/MZcwDENEs93Wd9q7A_7UWdfJrWsBXa0pGp03P9mqG2I.cache +3 -0
  139. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Nw/NwHea3ImBECnlmojPb9X9ZDfvRRuX_dX9sxISdtp9-A.cache +0 -0
  140. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/PP/PPKuKT7m2PMDHVzBcYjePvXU6CbCW63Iqe3Q2a-Jdh8.cache +1 -0
  141. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/RE/REtgGrS74n4Y7OKRcGvZsA2EUClg_RM66mVgGpySI20.cache +1 -0
  142. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Rk/RkQLRXSz5LhJQnH7BT-ZDkVK0Rx8N9KhcVwR2A1HY4M.cache +2 -0
  143. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Sx/SxtNEQ-KKVBCTtsDD-xf4oJEIdBPIHkGktnLXvG-GRk.cache +1 -0
  144. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/TL/TLxLzqEAxKzTHH9EwSg5Lvcp3zgGuhjTjed121DSu9U.cache +0 -0
  145. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U1/U1D7nCXYBD3VlPnXGs_6mRtlhs-Gvv_vvCUYlTf4Grw.cache +3 -0
  146. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U6/U6pXyI-5haNcHRdsB-SoztzlXb98-256hFReXsL31J4.cache +2 -0
  147. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UE/UEKUaC9O_XBO5acP8HnxcJ1dtNM_1C7MTofkTQvPgRA.cache +1 -0
  148. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UV/UVcnI5bo-eQvULfmzeQUFVTDYEMF2cbAXpsOsh01XNY.cache +1 -0
  149. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/WK/WK8RpMP5qb9GRQTsTHAzlfo8t2nsTLU6B8CQAc4UfOU.cache +1 -0
  150. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Xk/Xk8p9O39-syzKbpnoMRChld0TpoZFWlNIzeT5XKw2fQ.cache +0 -0
  151. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Zv/ZvCEW2ZyS-k4cHH7Gd8P2nKFE9Uh1VOrfR-1PYY2yz8.cache +5 -0
  152. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ac/acWu1-1ZAW1jRVKlHYlzlEg28lk-SdHfTq-P-viJMS0.cache +1 -0
  153. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/b3/b3NiYrQOlN2zxiJYqbl4gmvK6it3Md9gSzAYgsIMhnY.cache +1 -0
  154. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/c1/c1Pm-rFPEB3LXIjOtswD6x8SEAgI9y2BR16jc8ifcsc.cache +1 -0
  155. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/em/emTQG2a9zF8NuvElLOnEpNJp0wq3_gVSDAM60vyXAzE.cache +0 -0
  156. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/fX/fXH3Db_88TmJFhRydoFTx8tZbHAkLzK2ZZ0lsBEg8xA.cache +0 -0
  157. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/gI/gIHntmCf7DbObPL_KZJYSgduAmqX18ZZPOtq85pn8vo.cache +0 -0
  158. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kP/kPwbLAUCLjv0x6fe5lvZpmUkgmvQSDHSdEOSdbMyDgY.cache +0 -0
  159. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kT/kT98Z_slHI6SgdEmoAtKAHyJQjTHdbe6GAbB27RP2uI.cache +1 -0
  160. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mt/mtT4Rwi7H_vHQXdxxPvvzhL4ziA7X9WK-JXzacxWlEA.cache +0 -0
  161. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mz/mzgD6X_N-fO95dP8Q1Q1sApCrbSmgPgsuEKv65KYcdo.cache +3 -0
  162. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/oi/oiPhXw8pYdWv5T4qRFzePHaXZLI50xMvvTyfry-ILSo.cache +1 -0
  163. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/r-/r--YB1ugrZ4F-ogbLLYNwIH3j9pQ2u_ZBjTJxoS7TrM.cache +1 -0
  164. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/s6/s68UIyg0lNko7IA42JXv_wwy9Ea3WH-zc9h0GYPg88Y.cache +1 -0
  165. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/si/siT97rfEKbIWcCj6KUBChX7kpRBKI2fAeGGwpsz0tTU.cache +0 -0
  166. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/st/stqDgDfAemfEq7ZxlEj6YThpn8_1Nfw2bRVA0N03YTw.cache +1 -0
  167. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/t9/t93lpjyly3MvgKs51_OlLXneJXGyYFGmshXsk4Wr69M.cache +1 -0
  168. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tE/tEy2QePsDnmFyyAQEric23sSBnfHBst3SEM7p-J7el8.cache +2 -0
  169. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tR/tRV7SyAY9c71G0o-8bElvNI76KcWhc5NVm48xflMPpM.cache +0 -0
  170. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tg/tggwa2O6A41xeZTK4SR0qcX0X55aOGg6q8ZWfqma1vM.cache +0 -0
  171. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uB/uBKOYcdzL_6Amevsu-uKAMTg7QGW5kgC0t5sAZINrcI.cache +0 -0
  172. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uE/uEyPXY2m04nerJV0pn3p-B-BlkJ08oufpQH1G2QXPw4.cache +1 -0
  173. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/up/upyndqsU9bU6WV8qyMy7MLpcQoybRqgj-qA3C3pjzXY.cache +0 -0
  174. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ux/uxx-W2TOCdnAEGX0ZLThb_QIEbLYutX8qCwD0glYCKE.cache +3 -0
  175. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vC/vCsc-q2WmT8vWM2d2pb6_5hFav8mGlylwEKVWQvsumo.cache +1 -0
  176. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vc/vcgiILg1wO98x-a4kX678ASAFWA1cL0iVx07VkHLPqA.cache +0 -0
  177. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vu/vu6xNIGT6zorPmcKfd7edgxBltTmIRXU281uyK51kkU.cache +1 -0
  178. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/w4/w4y_Lms54hD2Nivh5PHeccAmh2DX53sc_HDTQYNyNXw.cache +3 -0
  179. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/yZ/yZpoD5Zf4RAQoOwi5kMVksuta_0KhYSK_Yy_6Ykyt7E.cache +1 -0
  180. data/tmp/aruba/test_app/tmp/development_secret.txt +1 -0
  181. metadata +212 -36
  182. data/.github/ISSUE_TEMPLATE.md +0 -52
  183. data/.github/PULL_REQUEST_TEMPLATE.md +0 -42
  184. data/.gitignore +0 -14
  185. data/.rspec +0 -4
  186. data/.rubocop.yml +0 -68
  187. data/.travis.yml +0 -62
  188. data/config/.gitignore +0 -1
  189. data/gemfiles/rails_4_2.gemfile +0 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eba00efc3e821aa337c9e16993ba558c1a5f1c795c5db9fb00104f5de38839cd
4
- data.tar.gz: af9a02416bdeda7f9d3c1c3600df92ff2248788909c1f18ff333223c025e64cc
3
+ metadata.gz: ab9079b1b0b5cbf30f04627c088e6e73a78804c68852b02b834439892d579001
4
+ data.tar.gz: 244214de463e90d6b73fd09dd5316b5a68de6397f816a68d64710986445303e7
5
5
  SHA512:
6
- metadata.gz: c711b5a237e9d4e9e53936e2d9836d74f58604a864769c91758a00a742649945e2a798ea4881b26466a21307bed029dac6f36f5dc54650e406133fd27d35c82e
7
- data.tar.gz: 499ba57f75835fc6ca390e7c313e7dd442a1b92cddb30b516841892bd15223ecd41b595e885e7bb3dbe890847f7a1e03b0c9195656b0a6e7915d19af67d5d59d
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.16.0', platform: :mri_23
12
- gem 'nokogiri', '< 1.9.1', platform: :mri_23
13
- gem 'railties', '~> 5.0.7'
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.16.0', platform: :mri_23
19
- gem 'nokogiri', '< 1.9.1', platform: :mri_23
20
- gem 'railties', '~> 5.1.7'
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.16.0', platform: :mri_23
26
- gem 'nokogiri', '< 1.9.1', platform: :mri_23
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 'railties', '~> 6.0.0'
33
- gem 'rails', '~> 6.0.0'
24
+ gem 'rails', '~> 6.0.3'
34
25
  gem 'sqlite3', '~> 1.4'
35
26
  end
@@ -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
@@ -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 gemfile (i.e. Rails 4.2), run
33
- bundle exec appraisal rails_4_2 rake test
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-2019 Aslak Hellesøy and the Cucumber Team.
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
  [![Code Climate](https://codeclimate.com/github/cucumber/cucumber-rails.svg)](https://codeclimate.com/github/cucumber/cucumber-rails)
6
6
  [![Open Source Helpers](https://www.codetriage.com/cucumber/cucumber-rails/badges/users.svg)](https://www.codetriage.com/cucumber/cucumber-rails)
7
7
 
8
- Cucumber-Rails brings Cucumber to Rails 4.2, 5.x and 6.x.
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 rails_4_2 rake test
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__) + '/cucumber-rails.gemspec').version.version
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__) + '/lib')
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[rails_3_0]'
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[rails_4_2]'"
33
+ e.g. 'rake test:gemfile[rails_6_0]'"
34
34
  end
35
35
 
36
36
  Rake::Task["appraisal:#{args.name}"].invoke('test')
@@ -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.24.0/geckodriver-v0.24.0-linux64.tar.gz
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
 
@@ -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.1.0'
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.12', '< 4'])
25
- s.add_runtime_dependency('cucumber', ['>= 3.0.2', '< 5'])
26
- s.add_runtime_dependency('mime-types', ['>= 2.0', '< 4'])
27
- s.add_runtime_dependency('nokogiri', '~> 1.8')
28
- s.add_runtime_dependency('rails', ['>= 4.2', '< 7'])
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.85.0')
38
- s.add_development_dependency('rubocop-performance', '~> 1.6.1')
39
- s.add_development_dependency('rubocop-rspec', '~> 1.39.0')
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 = `git ls-files`.split("\n")
49
- s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
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
@@ -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__) + '/../cucumber.github.com')
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
@@ -4,6 +4,6 @@ def init
4
4
  super
5
5
  options[:serializer].serialize(
6
6
  '/images/bubble_32x32.png',
7
- IO.read(File.dirname(__FILE__) + '/bubble_32x32.png')
7
+ IO.read("#{File.dirname(__FILE__)}/bubble_32x32.png")
8
8
  )
9
9
  end
@@ -1,13 +1,10 @@
1
- @focus
2
1
  Feature: Capybara Javascript Drivers
3
2
 
4
- Background: A simple calendar app
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
- When I write to "features/create_appointment.feature" with:
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
+ """