cucumber-rails 2.2.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.
Files changed (198) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +60 -19
  3. data/lib/cucumber/rails/database/deletion_strategy.rb +2 -0
  4. data/lib/cucumber/rails/database/shared_connection_strategy.rb +2 -0
  5. data/lib/cucumber/rails/database/strategy.rb +2 -0
  6. data/lib/cucumber/rails/database/truncation_strategy.rb +2 -0
  7. metadata +13 -226
  8. data/Appraisals +0 -26
  9. data/Gemfile +0 -5
  10. data/Rakefile +0 -53
  11. data/bin/install_geckodriver.sh +0 -19
  12. data/bin/install_webpacker.sh +0 -9
  13. data/config/cucumber.yml +0 -17
  14. data/cucumber-rails.gemspec +0 -53
  15. data/dev_tasks/cucumber.rake +0 -5
  16. data/dev_tasks/rspec.rake +0 -5
  17. data/dev_tasks/yard.rake +0 -28
  18. data/dev_tasks/yard/default/layout/html/bubble_32x32.png +0 -0
  19. data/dev_tasks/yard/default/layout/html/footer.erb +0 -5
  20. data/dev_tasks/yard/default/layout/html/index.erb +0 -1
  21. data/dev_tasks/yard/default/layout/html/layout.erb +0 -25
  22. data/dev_tasks/yard/default/layout/html/logo.erb +0 -1
  23. data/dev_tasks/yard/default/layout/html/setup.rb +0 -9
  24. data/features/allow_rescue.feature +0 -66
  25. data/features/annotations.feature +0 -20
  26. data/features/capybara_javascript_drivers.feature +0 -132
  27. data/features/choose_javascript_database_strategy.feature +0 -125
  28. data/features/configuration.feature +0 -48
  29. data/features/database_cleaner.feature +0 -131
  30. data/features/disable_automatic_database_cleaning.feature +0 -49
  31. data/features/emulate_javascript.feature +0 -109
  32. data/features/install_cucumber_rails.feature +0 -14
  33. data/features/no_database.feature +0 -61
  34. data/features/raising_errors.feature +0 -22
  35. data/features/rerun_profile.feature +0 -47
  36. data/features/rest_api.feature +0 -47
  37. data/features/step_definitions/cucumber_rails_steps.rb +0 -80
  38. data/features/support/aruba.rb +0 -5
  39. data/features/support/cucumber_rails_helper.rb +0 -86
  40. data/features/support/env.rb +0 -6
  41. data/features/support/hooks.rb +0 -8
  42. data/gemfiles/rails_5_0.gemfile +0 -10
  43. data/gemfiles/rails_5_1.gemfile +0 -10
  44. data/gemfiles/rails_5_2.gemfile +0 -9
  45. data/gemfiles/rails_6_0.gemfile +0 -8
  46. data/spec/cucumber/rails/database_spec.rb +0 -74
  47. data/spec/examples.txt +0 -19
  48. data/spec/generators/cucumber/install_generator_spec.rb +0 -55
  49. data/spec/spec_helper.rb +0 -16
  50. data/tmp/aruba/test_app/Gemfile +0 -62
  51. data/tmp/aruba/test_app/Gemfile.lock +0 -249
  52. data/tmp/aruba/test_app/README.md +0 -24
  53. data/tmp/aruba/test_app/Rakefile +0 -6
  54. data/tmp/aruba/test_app/app/assets/config/manifest.js +0 -3
  55. data/tmp/aruba/test_app/app/assets/javascripts/application.js +0 -16
  56. data/tmp/aruba/test_app/app/assets/javascripts/appointments.coffee +0 -3
  57. data/tmp/aruba/test_app/app/assets/javascripts/cable.js +0 -13
  58. data/tmp/aruba/test_app/app/assets/stylesheets/application.css +0 -15
  59. data/tmp/aruba/test_app/app/assets/stylesheets/appointments.scss +0 -3
  60. data/tmp/aruba/test_app/app/assets/stylesheets/scaffolds.scss +0 -84
  61. data/tmp/aruba/test_app/app/channels/application_cable/channel.rb +0 -4
  62. data/tmp/aruba/test_app/app/channels/application_cable/connection.rb +0 -4
  63. data/tmp/aruba/test_app/app/controllers/application_controller.rb +0 -2
  64. data/tmp/aruba/test_app/app/controllers/appointments_controller.rb +0 -74
  65. data/tmp/aruba/test_app/app/helpers/application_helper.rb +0 -2
  66. data/tmp/aruba/test_app/app/helpers/appointments_helper.rb +0 -2
  67. data/tmp/aruba/test_app/app/jobs/application_job.rb +0 -2
  68. data/tmp/aruba/test_app/app/mailers/application_mailer.rb +0 -4
  69. data/tmp/aruba/test_app/app/models/application_record.rb +0 -3
  70. data/tmp/aruba/test_app/app/models/appointment.rb +0 -2
  71. data/tmp/aruba/test_app/app/views/appointments/_appointment.json.jbuilder +0 -2
  72. data/tmp/aruba/test_app/app/views/appointments/_form.html.erb +0 -27
  73. data/tmp/aruba/test_app/app/views/appointments/edit.html.erb +0 -6
  74. data/tmp/aruba/test_app/app/views/appointments/index.html.erb +0 -29
  75. data/tmp/aruba/test_app/app/views/appointments/index.json.jbuilder +0 -1
  76. data/tmp/aruba/test_app/app/views/appointments/new.html.erb +0 -5
  77. data/tmp/aruba/test_app/app/views/appointments/show.html.erb +0 -14
  78. data/tmp/aruba/test_app/app/views/appointments/show.json.jbuilder +0 -1
  79. data/tmp/aruba/test_app/app/views/layouts/application.html.erb +0 -15
  80. data/tmp/aruba/test_app/app/views/layouts/mailer.html.erb +0 -13
  81. data/tmp/aruba/test_app/app/views/layouts/mailer.text.erb +0 -1
  82. data/tmp/aruba/test_app/bin/bundle +0 -3
  83. data/tmp/aruba/test_app/bin/rails +0 -4
  84. data/tmp/aruba/test_app/bin/rake +0 -4
  85. data/tmp/aruba/test_app/bin/setup +0 -36
  86. data/tmp/aruba/test_app/bin/update +0 -31
  87. data/tmp/aruba/test_app/bin/yarn +0 -11
  88. data/tmp/aruba/test_app/config.ru +0 -5
  89. data/tmp/aruba/test_app/config/application.rb +0 -19
  90. data/tmp/aruba/test_app/config/boot.rb +0 -3
  91. data/tmp/aruba/test_app/config/cable.yml +0 -10
  92. data/tmp/aruba/test_app/config/credentials.yml.enc +0 -1
  93. data/tmp/aruba/test_app/config/cucumber.yml +0 -9
  94. data/tmp/aruba/test_app/config/database.yml +0 -25
  95. data/tmp/aruba/test_app/config/environment.rb +0 -5
  96. data/tmp/aruba/test_app/config/environments/development.rb +0 -61
  97. data/tmp/aruba/test_app/config/environments/production.rb +0 -94
  98. data/tmp/aruba/test_app/config/environments/test.rb +0 -46
  99. data/tmp/aruba/test_app/config/initializers/application_controller_renderer.rb +0 -8
  100. data/tmp/aruba/test_app/config/initializers/assets.rb +0 -14
  101. data/tmp/aruba/test_app/config/initializers/backtrace_silencers.rb +0 -7
  102. data/tmp/aruba/test_app/config/initializers/content_security_policy.rb +0 -25
  103. data/tmp/aruba/test_app/config/initializers/cookies_serializer.rb +0 -5
  104. data/tmp/aruba/test_app/config/initializers/filter_parameter_logging.rb +0 -4
  105. data/tmp/aruba/test_app/config/initializers/inflections.rb +0 -16
  106. data/tmp/aruba/test_app/config/initializers/mime_types.rb +0 -4
  107. data/tmp/aruba/test_app/config/initializers/wrap_parameters.rb +0 -14
  108. data/tmp/aruba/test_app/config/locales/en.yml +0 -33
  109. data/tmp/aruba/test_app/config/master.key +0 -1
  110. data/tmp/aruba/test_app/config/puma.rb +0 -37
  111. data/tmp/aruba/test_app/config/routes.rb +0 -4
  112. data/tmp/aruba/test_app/config/storage.yml +0 -34
  113. data/tmp/aruba/test_app/db/development.sqlite3 +0 -0
  114. data/tmp/aruba/test_app/db/migrate/20200821080656_create_appointments.rb +0 -10
  115. data/tmp/aruba/test_app/db/schema.rb +0 -22
  116. data/tmp/aruba/test_app/db/seeds.rb +0 -7
  117. data/tmp/aruba/test_app/db/test.sqlite3 +0 -0
  118. data/tmp/aruba/test_app/features/create_appointment.feature +0 -9
  119. data/tmp/aruba/test_app/features/create_appointment_steps.rb +0 -19
  120. data/tmp/aruba/test_app/features/support/env.rb +0 -18
  121. data/tmp/aruba/test_app/lib/tasks/cucumber.rake +0 -76
  122. data/tmp/aruba/test_app/log/development.log +0 -27
  123. data/tmp/aruba/test_app/log/test.log +0 -38
  124. data/tmp/aruba/test_app/package.json +0 -5
  125. data/tmp/aruba/test_app/public/404.html +0 -67
  126. data/tmp/aruba/test_app/public/422.html +0 -67
  127. data/tmp/aruba/test_app/public/500.html +0 -66
  128. data/tmp/aruba/test_app/public/apple-touch-icon-precomposed.png +0 -0
  129. data/tmp/aruba/test_app/public/apple-touch-icon.png +0 -0
  130. data/tmp/aruba/test_app/public/favicon.ico +0 -0
  131. data/tmp/aruba/test_app/public/robots.txt +0 -1
  132. data/tmp/aruba/test_app/script/cucumber +0 -11
  133. data/tmp/aruba/test_app/test/application_system_test_case.rb +0 -5
  134. data/tmp/aruba/test_app/test/controllers/appointments_controller_test.rb +0 -48
  135. data/tmp/aruba/test_app/test/fixtures/appointments.yml +0 -9
  136. data/tmp/aruba/test_app/test/models/appointment_test.rb +0 -7
  137. data/tmp/aruba/test_app/test/system/appointments_test.rb +0 -45
  138. data/tmp/aruba/test_app/test/test_helper.rb +0 -10
  139. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0I/0I0oT83oN3NKiEi9XIhexiT3XgkA8mKyCbs25v3l20g.cache +0 -1
  140. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0W/0WnFNEwHN4bhDiFTvyMWURx02L4yP3gkP7vtjzKQFVo.cache +0 -1
  141. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2B/2Bg65dpvTdePrXa_wG6RsHpQzbqVSiHK0FVa0WdOJ4k.cache +0 -0
  142. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2r/2r_85kVmIcWzvJH72GapWtLDhaMP2HEziNxykyYpAUg.cache +0 -1
  143. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/72/72jdZDzrM3-D_zYkIiPdAWQNeaFsqah154_QvcqWqTQ.cache +0 -3
  144. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +0 -2
  145. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/9O/9OOXnKHBQnaCeE5HDe5csQsItouzWM6rTl8sESvkGTE.cache +0 -1
  146. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AF/AFloQwm_M7GZudPY87xx4TA0xEeuX9Psl0SJ94i5EyU.cache +0 -3
  147. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AP/APDAc8aUg_16wNWrVhCJcKeqbxyOScYGVhiDVgbrV7U.cache +0 -0
  148. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +0 -2
  149. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/EO/EOut5kyDPr7aKrHdvDsNJuYarA8XGnpAlDvBimlaC08.cache +0 -0
  150. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/GJ/GJzxuc2i_d4Uhxs4IMnbQXhxBc9CTLrnQyzxwTqKOBw.cache +0 -0
  151. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ge/Ge2oyaUStbQszLfXjgTi6LkncyS5SKfV8RJwbRA3HbI.cache +0 -1
  152. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +0 -2
  153. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Hv/HvPd_vK17QbhWq8QnCuyhqm0cPaGnHyO9lSzN-icQdg.cache +0 -2
  154. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/II/IIhUO-5-DcfCyD_rVJeHjRMNVJxLmAmXP8i2XEjFpns.cache +0 -1
  155. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ka/KaLHRsUYc4EUxUr4q_UhArFJUTF_EaBklpeU4TsE9SY.cache +0 -1
  156. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/MZ/MZcwDENEs93Wd9q7A_7UWdfJrWsBXa0pGp03P9mqG2I.cache +0 -3
  157. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Nw/NwHea3ImBECnlmojPb9X9ZDfvRRuX_dX9sxISdtp9-A.cache +0 -0
  158. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/PP/PPKuKT7m2PMDHVzBcYjePvXU6CbCW63Iqe3Q2a-Jdh8.cache +0 -1
  159. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/RE/REtgGrS74n4Y7OKRcGvZsA2EUClg_RM66mVgGpySI20.cache +0 -1
  160. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Rk/RkQLRXSz5LhJQnH7BT-ZDkVK0Rx8N9KhcVwR2A1HY4M.cache +0 -2
  161. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Sx/SxtNEQ-KKVBCTtsDD-xf4oJEIdBPIHkGktnLXvG-GRk.cache +0 -1
  162. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/TL/TLxLzqEAxKzTHH9EwSg5Lvcp3zgGuhjTjed121DSu9U.cache +0 -0
  163. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U1/U1D7nCXYBD3VlPnXGs_6mRtlhs-Gvv_vvCUYlTf4Grw.cache +0 -3
  164. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U6/U6pXyI-5haNcHRdsB-SoztzlXb98-256hFReXsL31J4.cache +0 -2
  165. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UE/UEKUaC9O_XBO5acP8HnxcJ1dtNM_1C7MTofkTQvPgRA.cache +0 -1
  166. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UV/UVcnI5bo-eQvULfmzeQUFVTDYEMF2cbAXpsOsh01XNY.cache +0 -1
  167. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/WK/WK8RpMP5qb9GRQTsTHAzlfo8t2nsTLU6B8CQAc4UfOU.cache +0 -1
  168. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Xk/Xk8p9O39-syzKbpnoMRChld0TpoZFWlNIzeT5XKw2fQ.cache +0 -0
  169. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Zv/ZvCEW2ZyS-k4cHH7Gd8P2nKFE9Uh1VOrfR-1PYY2yz8.cache +0 -5
  170. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ac/acWu1-1ZAW1jRVKlHYlzlEg28lk-SdHfTq-P-viJMS0.cache +0 -1
  171. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/b3/b3NiYrQOlN2zxiJYqbl4gmvK6it3Md9gSzAYgsIMhnY.cache +0 -1
  172. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/c1/c1Pm-rFPEB3LXIjOtswD6x8SEAgI9y2BR16jc8ifcsc.cache +0 -1
  173. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/em/emTQG2a9zF8NuvElLOnEpNJp0wq3_gVSDAM60vyXAzE.cache +0 -0
  174. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/fX/fXH3Db_88TmJFhRydoFTx8tZbHAkLzK2ZZ0lsBEg8xA.cache +0 -0
  175. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/gI/gIHntmCf7DbObPL_KZJYSgduAmqX18ZZPOtq85pn8vo.cache +0 -0
  176. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kP/kPwbLAUCLjv0x6fe5lvZpmUkgmvQSDHSdEOSdbMyDgY.cache +0 -0
  177. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kT/kT98Z_slHI6SgdEmoAtKAHyJQjTHdbe6GAbB27RP2uI.cache +0 -1
  178. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mt/mtT4Rwi7H_vHQXdxxPvvzhL4ziA7X9WK-JXzacxWlEA.cache +0 -0
  179. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mz/mzgD6X_N-fO95dP8Q1Q1sApCrbSmgPgsuEKv65KYcdo.cache +0 -3
  180. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/oi/oiPhXw8pYdWv5T4qRFzePHaXZLI50xMvvTyfry-ILSo.cache +0 -1
  181. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/r-/r--YB1ugrZ4F-ogbLLYNwIH3j9pQ2u_ZBjTJxoS7TrM.cache +0 -1
  182. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/s6/s68UIyg0lNko7IA42JXv_wwy9Ea3WH-zc9h0GYPg88Y.cache +0 -1
  183. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/si/siT97rfEKbIWcCj6KUBChX7kpRBKI2fAeGGwpsz0tTU.cache +0 -0
  184. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/st/stqDgDfAemfEq7ZxlEj6YThpn8_1Nfw2bRVA0N03YTw.cache +0 -1
  185. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/t9/t93lpjyly3MvgKs51_OlLXneJXGyYFGmshXsk4Wr69M.cache +0 -1
  186. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tE/tEy2QePsDnmFyyAQEric23sSBnfHBst3SEM7p-J7el8.cache +0 -2
  187. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tR/tRV7SyAY9c71G0o-8bElvNI76KcWhc5NVm48xflMPpM.cache +0 -0
  188. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tg/tggwa2O6A41xeZTK4SR0qcX0X55aOGg6q8ZWfqma1vM.cache +0 -0
  189. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uB/uBKOYcdzL_6Amevsu-uKAMTg7QGW5kgC0t5sAZINrcI.cache +0 -0
  190. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uE/uEyPXY2m04nerJV0pn3p-B-BlkJ08oufpQH1G2QXPw4.cache +0 -1
  191. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/up/upyndqsU9bU6WV8qyMy7MLpcQoybRqgj-qA3C3pjzXY.cache +0 -0
  192. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ux/uxx-W2TOCdnAEGX0ZLThb_QIEbLYutX8qCwD0glYCKE.cache +0 -3
  193. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vC/vCsc-q2WmT8vWM2d2pb6_5hFav8mGlylwEKVWQvsumo.cache +0 -1
  194. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vc/vcgiILg1wO98x-a4kX678ASAFWA1cL0iVx07VkHLPqA.cache +0 -0
  195. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vu/vu6xNIGT6zorPmcKfd7edgxBltTmIRXU281uyK51kkU.cache +0 -1
  196. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/w4/w4y_Lms54hD2Nivh5PHeccAmh2DX53sc_HDTQYNyNXw.cache +0 -3
  197. data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/yZ/yZpoD5Zf4RAQoOwi5kMVksuta_0KhYSK_Yy_6Ykyt7E.cache +0 -1
  198. data/tmp/aruba/test_app/tmp/development_secret.txt +0 -1
@@ -1,125 +0,0 @@
1
- Feature: Choose javascript database strategy
2
-
3
- Whilst running a scenario with the @javascript tag, Capybara will fire up a web server
4
- in the same process in a separate thread to your cukes. By default, this means ActiveRecord will give it a
5
- separate database connection, which in turn means data you put into your database from
6
- Cucumber step definitions (e.g. using FactoryBot) won't be visible to the web server
7
- until the database transaction is committed.
8
-
9
- So if you use a transaction strategy for cleaning up your database at the end of a scenario,
10
- it won't work for javascript scenarios by default.
11
-
12
- There are two ways around this. One is to switch to a truncation strategy for javascript
13
- scenarios. This is slower, but more reliable.
14
-
15
- The alternative is to patch ActiveRecord to share a single database connection between
16
- threads. This means you still get the speed benefits of using a transaction to roll back
17
- your database, but you run the risk of the two threads stomping on one another as they
18
- talk to the database.
19
-
20
- Right now, the default behavior is to use truncation, but you can override this by telling
21
- cucumber-rails which strategy to use for javascript scenarios.
22
-
23
- The deletion strategy can be quicker for situations where truncation causes locks which
24
- has been reported by some Oracle users.
25
-
26
- Background:
27
- Given I have created a new Rails app and installed cucumber-rails
28
- And I have a "Widget" ActiveRecord model object
29
- When I write to "features/step_definitions/widget_steps.rb" with:
30
- """
31
- When('I create {int} widgets') do |number|
32
- number.times { Widget.create! }
33
- end
34
-
35
- Then('I should have {int} widgets') do |number|
36
- expect(Widget.count).to eq(number)
37
- end
38
-
39
- Then('the DatabaseCleaner strategy should be {word}') do |strategy_name|
40
- expect(DatabaseCleaner.cleaners.values.first.strategy.to_s).to match(/#{strategy_name}/i)
41
- end
42
- """
43
-
44
- Scenario: Set the strategy to truncation and run a javascript scenario.
45
- When I append to "features/env.rb" with:
46
- """
47
- DatabaseCleaner.strategy = :transaction
48
- Cucumber::Rails::Database.javascript_strategy = :truncation
49
- """
50
- And I write to "features/widgets.feature" with:
51
- """
52
- Feature:
53
- Background:
54
- When I create 2 widgets
55
-
56
- @javascript
57
- Scenario:
58
- When I create 3 widgets
59
- Then the DatabaseCleaner strategy should be truncation
60
- And I should have 5 widgets
61
-
62
- @javascript
63
- Scenario:
64
- Then the DatabaseCleaner strategy should be truncation
65
- And I should have 2 widgets
66
-
67
- Scenario:
68
- Then the DatabaseCleaner strategy should be transaction
69
- And I should have 2 widgets
70
- """
71
- And I run the cukes
72
- Then the feature run should pass with:
73
- """
74
- 3 scenarios (3 passed)
75
- 10 steps (10 passed)
76
- """
77
-
78
- Scenario: Set the strategy to deletion and run a javascript scenario.
79
- When I append to "features/env.rb" with:
80
- """
81
- Cucumber::Rails::Database.javascript_strategy = :deletion
82
- """
83
- And I write to "features/widgets.feature" with:
84
- """
85
- @javascript
86
- Feature:
87
- Background:
88
- When I create 2 widgets
89
-
90
- Scenario:
91
- When I create 3 widgets
92
- Then I should have 5 widgets
93
-
94
- Scenario:
95
- Then I should have 2 widgets
96
- """
97
- And I run the cukes
98
- Then the feature run should pass with:
99
- """
100
- 2 scenarios (2 passed)
101
- 5 steps (5 passed)
102
- """
103
-
104
- Scenario: Set the strategy to truncation with an except option and run a javascript scenario.
105
- When I append to "features/env.rb" with:
106
- """
107
- Cucumber::Rails::Database.javascript_strategy = :truncation, { except: %w[widgets] }
108
- """
109
- And I write to "features/widgets.feature" with:
110
- """
111
- @javascript
112
- Feature:
113
- Scenario:
114
- When I create 3 widgets
115
- Then I should have 3 widgets
116
-
117
- Scenario:
118
- Then I should have 3 widgets
119
- """
120
- And I run the cukes
121
- Then the feature run should pass with:
122
- """
123
- 2 scenarios (2 passed)
124
- 3 steps (3 passed)
125
- """
@@ -1,48 +0,0 @@
1
- Feature: Cucumber Rails Configuration
2
-
3
- In order to configure how Cucumber-Rails runs
4
- As a developer
5
- I should be able to alter the settings of my project
6
-
7
- Scenario: Default configuration
8
- Given I have created a new Rails app with no database and installed cucumber-rails
9
- When I write to "features/config.feature" with:
10
- """
11
- Feature: Rack Test Methods
12
- Scenario: Default Methods are added to the World
13
- Then Rack Test should be mixed into the Cucumber World
14
- """
15
- When I write to "features/step_definitions/config_steps.rb" with:
16
- """
17
- Then('Rack Test should be mixed into the Cucumber World') do
18
- expect(self.class.ancestors).to include(Rack::Test::Methods)
19
- end
20
- """
21
- And I run `bundle exec rake cucumber`
22
- Then the feature run should pass with:
23
- """
24
- 1 scenario (1 passed)
25
- 1 step (1 passed)
26
- """
27
-
28
- Scenario: Altered configuration
29
- Given I have created a new Rails app with no database and installed cucumber-rails
30
- And I set the environment variable "CR_REMOVE_RACK_TEST_HELPERS" to "true"
31
- When I write to "features/config.feature" with:
32
- """
33
- Feature: Rack Test Methods
34
- Scenario: Rack Test Methods can be removed from the world
35
- Then Rack Test should not be mixed into the Cucumber World
36
- """
37
- When I write to "features/step_definitions/config_steps.rb" with:
38
- """
39
- Then('Rack Test should not be mixed into the Cucumber World') do
40
- expect(self.class.ancestors).not_to include(Rack::Test::Methods)
41
- end
42
- """
43
- And I run `bundle exec rake cucumber`
44
- Then the feature run should pass with:
45
- """
46
- 1 scenario (1 passed)
47
- 1 step (1 passed)
48
- """
@@ -1,131 +0,0 @@
1
- Feature: Database Cleaner
2
-
3
- Scenario: Create records in background with database_cleaner
4
- Given I have created a new Rails app and installed cucumber-rails
5
- When I write to "features/widgets.feature" with:
6
- """
7
- Feature: Create widgets
8
- Background: 2 initial widgets
9
- Given I have 2 widgets
10
-
11
- Scenario: Add 3 widgets
12
- When I create 3 more widgets
13
- Then I should have 5 widgets
14
-
15
- Scenario: Add 7 widgets
16
- When I create 7 more widgets
17
- Then I should have 9 widgets
18
- """
19
- And I run `rails generate model widget name:string`
20
- And I write to "features/step_definitions/widget_steps.rb" with:
21
- """
22
- Given('I have {int} widgets') do |number|
23
- number.times do |i|
24
- Widget.create! name: "Widget #{Widget.count + i}"
25
- end
26
- end
27
-
28
- When('I create {int} more widgets') do |number|
29
- number.times do |i|
30
- Widget.create! name: "Widget #{Widget.count + i}"
31
- end
32
- end
33
-
34
- Then('I should have {int} widgets') do |number|
35
- expect(Widget.count).to eq(number)
36
- end
37
- """
38
- And I run `bundle exec rake db:migrate`
39
- And I run `bundle exec rake cucumber`
40
- Then the feature run should pass with:
41
- """
42
- 2 scenarios (2 passed)
43
- 6 steps (6 passed)
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
- """
@@ -1,49 +0,0 @@
1
- Feature: Disable automatic database cleaning
2
-
3
- By default, a set of Before/After hooks are installed to
4
- invoke database_cleaner on every scenario except those tagged
5
- "@no-database-cleaner". Sometimes when a user is switching between
6
- cleaning strategies, this can initiate an undesired database
7
- transaction.
8
-
9
- To avoid the need for users making frequent strategy switches to apply
10
- this tag, a configuration option is provided so that the user can
11
- control the invocation of database_cleaner explicitly.
12
-
13
- Scenario: Disabling automatic cleaning
14
- Given I have created a new Rails app and installed cucumber-rails
15
- When I append to "features/env.rb" with:
16
- """
17
- Cucumber::Rails::Database.autorun_database_cleaner = false
18
- """
19
- And I write to "features/widgets.feature" with:
20
- """
21
- Feature: Create widgets
22
- Scenario: Create 3 widgets
23
- When I create 3 widgets
24
- Then I should have 3 widgets
25
-
26
- Scenario: Create 5 widgets
27
- When I create 5 widgets
28
- Then I should have 8 widgets
29
- """
30
- And I run `rails generate model widget name:string`
31
- And I write to "features/step_definitions/widget_steps.rb" with:
32
- """
33
- When('I create {int} widgets') do |number|
34
- number.times do |i|
35
- Widget.create! name: "Widget #{Widget.count + i}"
36
- end
37
- end
38
-
39
- Then('I should have {int} widgets') do |number|
40
- expect(Widget.count).to eq(number)
41
- end
42
- """
43
- And I run `bundle exec rake db:migrate`
44
- And I run `bundle exec rake cucumber`
45
- Then the feature run should pass with:
46
- """
47
- 2 scenarios (2 passed)
48
- 4 steps (4 passed)
49
- """
@@ -1,109 +0,0 @@
1
- Feature: Emulate Javascript
2
-
3
- Background:
4
- Given I have created a new Rails app and installed cucumber-rails
5
- And I force selenium to run Firefox in headless mode
6
- When I run `rails generate scaffold widget name:string`
7
- And I write to "features/step_definitions/widget_steps.rb" with:
8
- """
9
- Given('there is a widget named {string}') do |name|
10
- FactoryBot.create(:widget, name: name)
11
- end
12
-
13
- When('I am on the widgets page') do
14
- visit widgets_path
15
- end
16
-
17
- Then('I should see {string}') do |text|
18
- expect(page).to have_content(text)
19
- end
20
- """
21
- And I write to "features/support/factories/widget.rb" with:
22
- """
23
- FactoryBot.define do
24
- factory :widget do
25
- name { 'testwidget' }
26
- end
27
- end
28
- """
29
-
30
- Scenario: See a widget
31
- When I write to "features/widgets.feature" with:
32
- """
33
- @javascript
34
- Feature: Widget inventory
35
- Scenario: Delete a widget
36
- Given there is a widget named "wrench"
37
- And I am on the widgets page
38
- Then I should see "wrench"
39
- """
40
- And I run `bundle exec rake db:migrate`
41
- And I run `bundle exec rake cucumber`
42
- Then the feature run should pass with:
43
- """
44
- 1 scenario (1 passed)
45
- 3 steps (3 passed)
46
- """
47
-
48
- Scenario: Pass on the CSRF token
49
- When I run `sed -i -e 's/forgery_protection *= false/forgery_protection = true/' config/environments/test.rb`
50
- And I run `rails generate controller session establish`
51
- And I write to "app/controllers/session_controller.rb" with:
52
- """
53
- class SessionController < ApplicationController
54
- def establish
55
- session[:verified] = true
56
- end
57
- end
58
- """
59
- And I write to "app/controllers/application_controller.rb" with:
60
- """
61
- class ApplicationController < ActionController::Base
62
- protect_from_forgery
63
-
64
- before_action except: :establish do
65
- render text: 'denied', status: :forbidden and return false unless session[:verified]
66
- end
67
- end
68
- """
69
- And I write to "features/widgets.feature" with:
70
- """
71
- Feature: Widget inventory
72
- Scenario: Delete a widget
73
- Given there is a widget named "wrench"
74
- And I am on the session establish page
75
- And I am on the widgets page
76
- Then I should see "wrench"
77
- When I follow "Destroy"
78
- Then I should not see "denied"
79
- And I should be on the widgets page
80
- And I should not see "wrench"
81
- """
82
- And I append to "features/step_definitions/widget_steps.rb" with:
83
- # TODO: Remove the newline below (Required) once bug is fixed: https://github.com/cucumber/aruba/issues/662
84
- """
85
-
86
- Given('I am on the session establish page') do
87
- visit session_establish_path
88
- end
89
-
90
- When('I follow {string}') do |link|
91
- click_link(link)
92
- end
93
-
94
- Then('I should not see {string}') do |text|
95
- expect(page).not_to have_content(text)
96
- end
97
-
98
- Then('I should be on the widgets page') do
99
- current_path = URI.parse(current_url).path
100
- expect(current_path).to eq(widgets_path)
101
- end
102
- """
103
- And I run `bundle exec rake db:migrate`
104
- And I run `bundle exec rake cucumber`
105
- Then the feature run should pass with:
106
- """
107
- 1 scenario (1 passed)
108
- 8 steps (8 passed)
109
- """