cucumber-rails 1.7.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +197 -19
  3. data/CONTRIBUTING.md +16 -14
  4. data/LICENSE +1 -1
  5. data/README.md +27 -21
  6. data/lib/cucumber/rails.rb +23 -17
  7. data/lib/cucumber/rails/action_dispatch.rb +21 -0
  8. data/lib/cucumber/rails/application.rb +16 -7
  9. data/lib/cucumber/rails/capybara.rb +2 -0
  10. data/lib/cucumber/rails/capybara/javascript_emulation.rb +42 -21
  11. data/lib/cucumber/rails/capybara/select_dates_and_times.rb +3 -1
  12. data/lib/cucumber/rails/database.rb +24 -56
  13. data/lib/cucumber/rails/database/deletion_strategy.rb +13 -0
  14. data/lib/cucumber/rails/database/shared_connection_strategy.rb +27 -0
  15. data/lib/cucumber/rails/database/strategy.rb +33 -0
  16. data/lib/cucumber/rails/database/truncation_strategy.rb +13 -0
  17. data/lib/cucumber/rails/hooks.rb +2 -0
  18. data/lib/cucumber/rails/hooks/active_record.rb +8 -4
  19. data/lib/cucumber/rails/hooks/allow_rescue.rb +2 -0
  20. data/lib/cucumber/rails/hooks/database_cleaner.rb +11 -3
  21. data/lib/cucumber/rails/hooks/mail.rb +3 -1
  22. data/lib/cucumber/rails/rspec.rb +3 -1
  23. data/lib/cucumber/rails/world.rb +24 -7
  24. data/lib/generators/cucumber/{install/USAGE → USAGE} +0 -0
  25. data/lib/generators/cucumber/{install/install_generator.rb → install_generator.rb} +18 -9
  26. data/lib/generators/cucumber/{install/templates → templates}/config/cucumber.yml.erb +0 -0
  27. data/lib/generators/cucumber/{install/templates → templates}/script/cucumber +1 -0
  28. data/lib/generators/cucumber/{install/templates → templates}/support/_rails_each_run.rb.erb +0 -0
  29. data/lib/generators/cucumber/{install/templates → templates}/support/_rails_prefork.rb.erb +0 -0
  30. data/lib/generators/cucumber/{install/templates → templates}/support/capybara.rb +2 -0
  31. data/lib/generators/cucumber/{install/templates → templates}/support/edit_warning.txt +0 -0
  32. data/lib/generators/cucumber/{install/templates → templates}/support/rails.rb.erb +0 -0
  33. data/lib/generators/cucumber/{install/templates → templates}/support/rails_spork.rb.erb +0 -0
  34. data/lib/generators/cucumber/{install/templates → templates}/tasks/cucumber.rake.erb +0 -0
  35. metadata +100 -169
  36. data/.github/ISSUE_TEMPLATE.md +0 -52
  37. data/.github/PULL_REQUEST_TEMPLATE.md +0 -42
  38. data/.gitignore +0 -13
  39. data/.rspec +0 -1
  40. data/.rubocop.yml +0 -1
  41. data/.rubocop_todo.yml +0 -443
  42. data/.travis.yml +0 -45
  43. data/Appraisals +0 -32
  44. data/Gemfile +0 -7
  45. data/Rakefile +0 -49
  46. data/bin/install_geckodriver.sh +0 -19
  47. data/bin/install_webpacker.sh +0 -9
  48. data/config/.gitignore +0 -1
  49. data/config/cucumber.yml +0 -17
  50. data/cucumber-rails.gemspec +0 -44
  51. data/dev_tasks/cucumber.rake +0 -3
  52. data/dev_tasks/rspec.rake +0 -3
  53. data/dev_tasks/yard.rake +0 -35
  54. data/dev_tasks/yard/default/layout/html/bubble_32x32.png +0 -0
  55. data/dev_tasks/yard/default/layout/html/footer.erb +0 -5
  56. data/dev_tasks/yard/default/layout/html/index.erb +0 -1
  57. data/dev_tasks/yard/default/layout/html/layout.erb +0 -25
  58. data/dev_tasks/yard/default/layout/html/logo.erb +0 -1
  59. data/dev_tasks/yard/default/layout/html/setup.rb +0 -4
  60. data/features/allow_rescue.feature +0 -65
  61. data/features/annotations.feature +0 -22
  62. data/features/capybara_javascript_drivers.feature +0 -73
  63. data/features/choose_javascript_database_strategy.feature +0 -145
  64. data/features/database_cleaner.feature +0 -44
  65. data/features/disable_automatic_database_cleaning.feature +0 -55
  66. data/features/emulate_javascript.feature +0 -94
  67. data/features/install_cucumber_rails.feature +0 -14
  68. data/features/no_database.feature +0 -61
  69. data/features/raising_errors.feature +0 -16
  70. data/features/rerun_profile.feature +0 -46
  71. data/features/rest_api.feature +0 -47
  72. data/features/step_definitions/cucumber_rails_steps.rb +0 -153
  73. data/features/support/aruba.rb +0 -3
  74. data/features/support/bundler_pre_support.rb +0 -28
  75. data/features/support/env.rb +0 -40
  76. data/features/support/fixtures/bundler-1.0.21.gem +0 -0
  77. data/features/support/fixtures/bundler-1.1.rc.gem +0 -0
  78. data/features/support/legacy_web_steps_support.rb +0 -289
  79. data/gemfiles/rails_4_2.gemfile +0 -10
  80. data/gemfiles/rails_5_0.gemfile +0 -10
  81. data/gemfiles/rails_5_1.gemfile +0 -10
  82. data/gemfiles/rails_5_2.gemfile +0 -10
  83. data/gemfiles/rails_6_0.gemfile +0 -8
  84. data/lib/cucumber/rails/action_controller.rb +0 -13
  85. data/spec/cucumber/rails/database_spec.rb +0 -57
  86. data/spec/generators/cucumber/install/install_generator_spec.rb +0 -47
  87. data/spec/spec_helper.rb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b276ab8f9a0ebd797f290786e0afced74033c0f4
4
- data.tar.gz: 80af0b6ba3e16d29cfcd93e9f8f82c0e1e01217b
2
+ SHA256:
3
+ metadata.gz: a39afb58224bd44c7d0c5585749b47030995e18f24788bded736cd64f349e89a
4
+ data.tar.gz: 9f661d7af61c748f6e6435178c48ef18cc4d274e3a9c2ea900faacbd953e57fe
5
5
  SHA512:
6
- metadata.gz: 493e90cf574a3785e83982e0dffcc6cc998c3e9f1ceac1ace13446bb033222a26b439376780238d3897eb34d4cfebf77fd06b5232b691d3538eeb8e7577a4338
7
- data.tar.gz: 3caca7b73bbdfeb694ac0812ff0d2a7503cfe98b09589dd056ad101addeaa0f2971cb6c4086fb4f31ea6685c92ffd2d157a1825489e487b547d569225c497148
6
+ metadata.gz: 543e907c2756ceb148f313adcf0a381fd7de5bd23eed17abda861be526dec27fdea5b96bc84c46dd0ce52b0d70fe9088e5e62695ec844ee12fdd08e074228b8f
7
+ data.tar.gz: e05864510bce02b11bb508f89c5a31ed4d8a88e90424e2f9c463513187b598d2d78f8255e8316b7fba9637680acf01637eaccf9c2578722551aed740694dfca3
data/CHANGELOG.md CHANGED
@@ -1,34 +1,194 @@
1
- Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) on how to contribute to Cucumber.
1
+ Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md)
2
+ on how to contribute to Cucumber.
2
3
 
3
- ## [master](https://github.com/cucumber/cucumber-rails/compare/v1.6.0...master) (Not yet released)
4
- There are currently no unreleased changes.
4
+ ## [master](https://github.com/cucumber/cucumber-rails/compare/v2.3.0...master) (Not yet released)
5
+
6
+ ### New Features
7
+
8
+ *
9
+
10
+ ### Changed
11
+
12
+ *
13
+
14
+ ### Fixed
15
+
16
+ *
17
+
18
+ ## [v2.3.0](https://github.com/cucumber/cucumber-rails/compare/v2.2.0...v2.3.0) (2021-03-30)
19
+
20
+ ### New Features
21
+
22
+ *
23
+
24
+ ### Changed
25
+
26
+ * Changed dependency from rails to railties to avoid pulling in optional Rails gems like actioncable ([#486](https://github.com/cucumber/cucumber-rails/pull/486) [langalex])
27
+
28
+ * Lightened gem binary by removing un-needed files ([#496](https://github.com/cucumber/cucumber-rails/pull/496) [orien])
29
+
30
+ ### Fixed
31
+
32
+ * Fixed up a couple of legacy capybara specs to use a better format ([#498](https://github.com/cucumber/cucumber-rails/pull/498) [luke-hill])
33
+
34
+ ## [v2.2.0](https://github.com/cucumber/cucumber-rails/compare/v2.1.0...v2.2.0) (2020-08-10)
35
+
36
+ ### New Features
37
+
38
+ * Added more documentation and tests around Javascript tagged scenarios
39
+ ([#480](https://github.com/cucumber/cucumber-rails/pull/480) [luke-hill])
40
+
41
+ * Gem Updates
42
+ * Allowed cucumber5, updated other gem dependencies
43
+ * Updated travis runs and gem builds tested against
44
+ ([#482](https://github.com/cucumber/cucumber-rails/pull/482) [luke-hill])
45
+
46
+ ### Changed
47
+
48
+ * Dropped Rails 4.2 support ([#392](https://github.com/cucumber/cucumber-rails/pull/392) [deivid-rodriguez])
49
+
50
+ ### Fixed
51
+
52
+ * Database cleaning no longer silently fails when using database_cleaner v2 adapter gems
53
+ ([#467](https://github.com/cucumber/cucumber-rails/pull/467) [botandrose])
54
+
55
+ * Restored compatibility with `database_cleaner` versions earlier than 1.8.0.beta
56
+ ([#473](https://github.com/cucumber/cucumber-rails/pull/473) [cgriego])
57
+
58
+ * Restored previous `database_cleaner` behavior for apps that do not use/load ActiveRecord
59
+ ([#474](https://github.com/cucumber/cucumber-rails/pull/474) [cgriego])
60
+
61
+ * Restored previous compatibility around standard Rails Modules not being loaded
62
+ ([#484](https://github.com/cucumber/cucumber-rails/pull/484) [Draiken])
63
+
64
+ ## [v2.1.0](https://github.com/cucumber/cucumber-rails/compare/v2.0.0...v2.1.0) (2020-06-15)
65
+
66
+ ### New Features
67
+
68
+ * Added metadata to allow gem to be searched / indexed by rubygems
69
+ ([#447](https://github.com/cucumber/cucumber-rails/pull/447) [orien])
70
+
71
+ * Allow Cucumber 4 to be used as an option for cucumber-rails
72
+ * NB: Cucumber4 changes quite a lot of logic with auto-loaders. This means that any previous
73
+ logic that relied implicitly on load-order "may" be affected
74
+ ([#453](https://github.com/cucumber/cucumber-rails/pull/453) [luke-hill] / [deivid-rodriguez])
75
+
76
+ ### Changed
77
+
78
+ * Dropped Ruby 2.3 support (target 2.4 - 2.7) ([#466](https://github.com/cucumber/cucumber-rails/pull/466) [mvz])
79
+
80
+ * Refactored suite to remove a lot of old Rails3/4.0 "ism's"
81
+ * Also migrated a lot of old cucumber styles to cucumber4
82
+ ([#441](https://github.com/cucumber/cucumber-rails/pull/441) [luke-hill])
83
+
84
+ * Refactored alias logic for overriding Rails methods to use `Module#prepend`
85
+ ([#457](https://github.com/cucumber/cucumber-rails/pull/457) [wagenet])
86
+
87
+ * `database_cleaner` (when used), at a version `>= 1.8` will now silence all warnings
88
+ * The suite internally will only test a version `>= 1.8`, so other versions will work but are un-maintained
89
+ ([#463](https://github.com/cucumber/cucumber-rails/pull/463) [deivid-rodriguez])
90
+
91
+ ### Fixed
92
+
93
+ * Various rubocop / rspec styling fixes
94
+ ([#445](https://github.com/cucumber/cucumber-rails/pull/445) /
95
+ [#449](https://github.com/cucumber/cucumber-rails/pull/449) /
96
+ [#450](https://github.com/cucumber/cucumber-rails/pull/450) /
97
+ [#451](https://github.com/cucumber/cucumber-rails/pull/451) /
98
+ [#452](https://github.com/cucumber/cucumber-rails/pull/452) /
99
+ [#465](https://github.com/cucumber/cucumber-rails/pull/465)
100
+ [mvz] / [luke-hill])
101
+
102
+ * Various CI fixes
103
+ ([#444](https://github.com/cucumber/cucumber-rails/pull/444) /
104
+ [#460](https://github.com/cucumber/cucumber-rails/pull/460) /
105
+ [#464](https://github.com/cucumber/cucumber-rails/pull/464)
106
+ [mvz] / [damonjmurray] / [deivid-rodriguez])
107
+
108
+ * Avoid printing a warning about `config.cache_classes` being set to `false` when
109
+ Spring is used ([#462](https://github.com/cucumber/cucumber-rails/pull/462) [janko])
110
+
111
+ ## [v2.0.0](https://github.com/cucumber/cucumber-rails/compare/v1.8.0...v2.0.0) (2019-09-13)
112
+
113
+ ### New Features
114
+
115
+ * New functionality allows users to Configure whether `Rack::Test` methods get auto-mixed in
116
+ * Setting `ENV['CR_REMOVE_RACK_TEST_HELPERS] = "true"` will remove these methods from the `World`
117
+ ([#440](https://github.com/cucumber/cucumber-rails/pull/440) [luke-hill])
118
+
119
+ ### Changed
120
+
121
+ * **Breaking change:** `web_steps` have been completely removed from cucumber-rails
122
+ ([#437](https://github.com/cucumber/cucumber-rails/pull/437) [luke-hill])
123
+
124
+ * Altered some branching logic in tests designed to cater for old ruby/rails versions
125
+ ([#433](https://github.com/cucumber/cucumber-rails/pull/433) [luke-hill])
126
+
127
+ ## [v1.8.0](https://github.com/cucumber/cucumber-rails/compare/v1.7.0..v1.8.0) (2019-08-06)
128
+
129
+ ### Changed
130
+
131
+ * Dropped Ruby 2.2 support (target 2.3 and up) ([#424](https://github.com/cucumber/cucumber-rails/pull/424) [mvz])
132
+
133
+ * Begin to update the core runtime / development dependencies to something a little more recent
134
+ ([#413](https://github.com/cucumber/cucumber-rails/pull/413) /
135
+ [#431](https://github.com/cucumber/cucumber-rails/pull/431) /
136
+ [#432](https://github.com/cucumber/cucumber-rails/pull/432)
137
+ [mvz] /
138
+ [luke-hill])
139
+
140
+ ### Fixed
141
+
142
+ * Various rubocop / styling issues that had built up over time
143
+ ([#414](https://github.com/cucumber/cucumber-rails/pull/414) /
144
+ [#416](https://github.com/cucumber/cucumber-rails/pull/416) /
145
+ [#419](https://github.com/cucumber/cucumber-rails/pull/419) /
146
+ [#420](https://github.com/cucumber/cucumber-rails/pull/420) /
147
+ [#421](https://github.com/cucumber/cucumber-rails/pull/421) /
148
+ [#421](https://github.com/cucumber/cucumber-rails/pull/434)
149
+ [luke-hill] /
150
+ [mvz])
151
+
152
+ * Generic Travis Healthcheck (Fixed up polluted logs and use newer Ubuntu OS)
153
+ ([#415](https://github.com/cucumber/cucumber-rails/pull/415) /
154
+ [#417](https://github.com/cucumber/cucumber-rails/pull/417)
155
+ [luke-hill])
156
+
157
+ * Rails6 not building correctly
158
+ ([#418](https://github.com/cucumber/cucumber-rails/pull/418)
159
+ [luke-hill])
160
+
161
+ * Provisional Ruby 2.7 builds not working
162
+ ([#427](https://github.com/cucumber/cucumber-rails/pull/427)
163
+ [amatsuda] /
164
+ [luke-hill])
5
165
 
6
166
  ## [v1.7.0](https://github.com/cucumber/cucumber-rails/compare/v1.6.0...v1.7.0) (2019-04-17)
7
167
 
8
168
  ### Changed
9
169
 
10
- * Drop rails `4.0` / `4.1` support ([#392](https://github.com/cucumber/cucumber-rails/pull/392) [deivid-rodriguez](https://github.com/deivid-rodriguez))
11
- * Allow Ruby `2.6` users to `ERB.new` ([#399](https://github.com/cucumber/cucumber-rails/pull/399) [koic](https://github.com/koic))
12
- * Allow Rails to be used in the `6.x` series (Currently as of release only beta1 is supported) ([#405](https://github.com/cucumber/cucumber-rails/pull/405) [kotovalexarian](https://github.com/kotovalexarian))
13
- * Update CI to test most relevant Rubies ([#411](https://github.com/cucumber/cucumber-rails/pull/411) [olleolleolle](https://github.com/olleolleolle))
170
+ * Drop rails `4.0` / `4.1` support ([#392](https://github.com/cucumber/cucumber-rails/pull/392) [deivid-rodriguez])
171
+ * Allow Ruby `2.6` users to `ERB.new` ([#399](https://github.com/cucumber/cucumber-rails/pull/399) [koic])
172
+ * Allow Rails to be used in the `6.x` series (Currently as of release only beta1 is supported) ([#405](https://github.com/cucumber/cucumber-rails/pull/405) [kotovalexarian])
173
+ * Update CI to test most relevant Rubies ([#411](https://github.com/cucumber/cucumber-rails/pull/411) [olleolleolle])
14
174
 
15
175
  ### Fixed
16
176
 
17
177
  * Appraisals fixes (Up-to-date `geckodriver`, standardised the various `.gemfile`s)
18
- [#389](https://github.com/cucumber/cucumber-rails/pull/389) /
178
+ ([#389](https://github.com/cucumber/cucumber-rails/pull/389) /
19
179
  [#394](https://github.com/cucumber/cucumber-rails/pull/394) /
20
180
  [#395](https://github.com/cucumber/cucumber-rails/pull/395) /
21
181
  [#408](https://github.com/cucumber/cucumber-rails/pull/408)
22
- [xtrasimplicity](https://github.com/xtrasimplicity) /
23
- [deivid-rodriguez](https://github.com/deivid-rodriguez) /
24
- [mvz](https://github.com/mvz)
25
-
182
+ [xtrasimplicity] /
183
+ [deivid-rodriguez] /
184
+ [mvz])
185
+
26
186
  * Various build issues that had built up over the previous year
27
- [#403](https://github.com/cucumber/cucumber-rails/pull/403) /
187
+ ([#403](https://github.com/cucumber/cucumber-rails/pull/403) /
28
188
  [#404](https://github.com/cucumber/cucumber-rails/pull/404) /
29
189
  [#410](https://github.com/cucumber/cucumber-rails/pull/410)
30
- [koic](https://github.com/koic) /
31
- [mvz](https://github.com/mvz)
190
+ [koic] /
191
+ [mvz])
32
192
 
33
193
  ## [v1.6.0](https://github.com/cucumber/cucumber-rails/compare/v1.5.0...v1.6.0) (2018-04-23)
34
194
 
@@ -40,9 +200,9 @@ There are currently no unreleased changes.
40
200
  * Updated syntax to support both new and deprecated forms of tag negation. ([#348](https://github.com/cucumber/cucumber-rails/pull/348) [mirelon](https://github.com/mirelon), [#359](https://github.com/cucumber/cucumber-rails/pull/359) [xtrasimplicity](https://github.com/xtrasimplicity))
41
201
  * Dependencies: Allowed `Ammeter` versions greater than 1.1.3. ([#368](https://github.com/cucumber/cucumber-rails/pull/368) [mvz](https://github.com/mvz))
42
202
  * Switched to Ruby 1.9 hash syntax. ([#371](https://github.com/cucumber/cucumber-rails/pull/371) [mvz](https://github.com/mvz))
43
- * Added support to handle rerun files with multiple lines. ([#c6d3d7e](https://github.com/cucumber/cucumber-rails/commit/c6d3d7e77febb758ae17bd154b9d4da7a8847c3d) [mvz](https://github.com/mvz))
203
+ * Added support to handle rerun files with multiple lines. ([#373]((https://github.com/cucumber/cucumber-rails/pull/345)) [mvz](https://github.com/mvz))
44
204
  * Added support for Rails 5.2 and Capybara 3. ([#378](https://github.com/cucumber/cucumber-rails/pull/378/) [gobijan](https://github.com/gobijan), [radar](https://github.com/radar), [xtrasimplicity](https://github.com/xtrasimplicity))
45
-
205
+
46
206
  ### Fixed
47
207
 
48
208
  * Fix typo ([#343](https://github.com/cucumber/cucumber-rails/pull/343) Olle Jonsson)
@@ -52,12 +212,12 @@ There are currently no unreleased changes.
52
212
  ## [v1.5.0](https://github.com/cucumber/cucumber-rails/compare/1.4.5...1.5.0) (2017-05-12)
53
213
 
54
214
  * Drop rails 3 support ([#334](https://github.com/cucumber/cucumber-rails/pull/334) Matijs van Zuijlen)
55
- * Add rals 5.1 support ([#337](https://github.com/cucumber/cucumber-rails/pull/337) Matijs van Zuijlen - Rafael Reggiani Manzo)
215
+ * Add rails 5.1 support ([#337](https://github.com/cucumber/cucumber-rails/pull/337) Matijs van Zuijlen - Rafael Reggiani Manzo)
56
216
 
57
217
  ## [v1.4.5](https://github.com/cucumber/cucumber-rails/compare/1.4.4...1.4.5) (2016-09-27)
58
218
 
59
219
  * Add support for Cucumber 3+ (Steve Tooke)
60
-
220
+
61
221
  ## [v1.4.4](https://github.com/cucumber/cucumber-rails/compare/1.4.3...1.4.4) (2016-08-05)
62
222
 
63
223
  * Ensure support for Rails 5
@@ -492,3 +652,21 @@ and to celebrate that cucumber-rails now supports Capybara as an alternative to
492
652
  * Webrat step "Then I should be on" should use request_uri instead of path for missing query string parameters (ZhangJinzhu)
493
653
  * Added MIME type parameter to attach file step definition (Felix Flores)
494
654
  * Added check when including ActiveSupport::Testing::SetupAndTeardown for older Rails versions (Jeremy Durham)
655
+
656
+ [deivid-rodriguez]: https://github.com/deivid-rodriguez
657
+ [koic]: https://github.com/koic
658
+ [kotovalexarian]: https://github.com/kotovalexarian
659
+ [mvz]: https://github.com/mvz
660
+ [olleolleolle]: https://github.com/olleolleolle
661
+ [luke-hill]: https://github.com/luke-hill
662
+ [amatsuda]: https://github.com/amatsuda
663
+ [xtrasimplicity]: https://github.com/xtrasimplicity
664
+ [janko]: https://github.com/janko
665
+ [damonjmurray]: https://github.com/damonjmurray
666
+ [orien]: https://github.com/orien
667
+ [wagenet]: https://github.com/wagenet
668
+ [cgriego]: https://github.com/cgriego
669
+ [botandrose]: https://github.com/botandrose
670
+ [Draiken]: https://github.com/Draiken
671
+ [langalex]: https://github.com/langalex
672
+ [orien]: https://github.com/orien
data/CONTRIBUTING.md CHANGED
@@ -29,8 +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
- bundle exec rake
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
+ # Or run tests across the full supported stack. Note that because we support many versions. This takes 5-10 minutes
35
+ bundle exec rake appraisal
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:
33
46
 
47
+ [bundle exec] rake clean
48
+
34
49
  ## Release Process
35
50
 
36
51
  * Make sure `CHANGELOG.md` is updated with the upcoming version number, and has entries for all fixes.
@@ -44,19 +59,6 @@ Now release it
44
59
  git commit -m "Release X.Y.Z"
45
60
  rake release
46
61
 
47
- ### NOTE:
48
-
49
- If after running the rake release task you get an error similar to this:
50
-
51
- rake aborted!
52
- Couldn't git push. `git push 2>&1' failed with the following output:
53
-
54
- To git@github.com:cucumber/cucumber-rails.git
55
- ! [rejected] rails-2.3.x -> rails-2.3.x (non-fast-forward)
56
- error: failed to push some refs to 'git@github.com:cucumber/cucumber-rails.git'
57
-
58
- make sure that you have pulled all the recent changes from the master branch
59
-
60
62
  ## Gaining Release Karma
61
63
 
62
64
  To become a release manager, create a pull request adding your name to the list below, including
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,8 +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 and Rails 5.x. This gem is also compatible with Rails 6.0+
9
- but this is currently in a beta phase, so there may be issues.
8
+ Cucumber-Rails brings Cucumber to Rails 5.x and 6.x.
10
9
 
11
10
  ## Installation
12
11
 
@@ -44,7 +43,8 @@ Without Rake:
44
43
 
45
44
  ## Configuration options
46
45
 
47
- By default, cucumber-rails runs `DatabaseCleaner.start` and `DatabaseCleaner.clean` before and after your scenarios. You can disable this behaviour like so:
46
+ By default, cucumber-rails runs `DatabaseCleaner.start` and `DatabaseCleaner.clean`
47
+ before and after your scenarios. You can disable this behaviour like so:
48
48
 
49
49
  ```ruby
50
50
  # features/support/env.rb
@@ -52,6 +52,12 @@ By default, cucumber-rails runs `DatabaseCleaner.start` and `DatabaseCleaner.cle
52
52
  Cucumber::Rails::Database.autorun_database_cleaner = false
53
53
  ```
54
54
 
55
+ By default, cucumber-rails will auto mix-in the helpers from `Rack::Test` into your default Cucumber World instance. You can prevent this behaviour like so:
56
+ ```ruby
57
+ # features/support/env.rb
58
+ ENV['CR_REMOVE_RACK_TEST_HELPERS'] = 'true'
59
+ ```
60
+
55
61
  ## Upgrading from a previous version
56
62
 
57
63
  When upgrading from a previous version it is recommended that you rerun:
@@ -60,14 +66,20 @@ When upgrading from a previous version it is recommended that you rerun:
60
66
 
61
67
  ## Bugs and feature requests
62
68
 
63
- The *only* way to have a bug fixed or a new feature accepted is to describe it with a Cucumber feature. Let's say you think you have found a bug in the cucumber:install generator. Fork this project, clone it to your workstation and check out a branch with a descriptive name:
69
+ The *only* way to have a bug fixed or a new feature accepted is to describe it with a
70
+ Cucumber feature. Let's say you think you have found a bug in the cucumber:install generator.
71
+ Fork this project, clone it to your workstation and check out a branch with a descriptive name:
64
72
 
65
73
  git clone git@github.com:you/cucumber-rails.git
66
- git checkout -b bug-install-generator
74
+ git checkout -b bugfix/generator-fails-on-ruby-25
67
75
 
68
- Start by making sure you can run the existing features. Now, create a feature that demonstrates what's wrong. See the existing features for examples. When you have a failing feature that reproduces the bug, commit, push and send a pull request. Someone from the Cucumber-Rails team will review it and hopefully create a fix.
76
+ Start by making sure you can run the existing features. Now, create a feature that demonstrates
77
+ what's wrong. See the existing features for examples. When you have a failing feature that
78
+ reproduces the bug, commit, push and send a pull request. Someone from the Cucumber-Rails team
79
+ will review it and hopefully create a fix.
69
80
 
70
- If you know how to fix the bug yourself, make a second commit (after committing the failing feature) before you send the pull request.
81
+ If you know how to fix the bug yourself, make a second commit (after committing the failing
82
+ feature) before you send the pull request.
71
83
 
72
84
  ### Setting up your environment
73
85
 
@@ -86,24 +98,17 @@ With all dependencies installed, all specs and features should pass:
86
98
 
87
99
  ### Running Appraisal suite
88
100
 
89
- In order to test against multiple versions of key dependencies, the [Appraisal](https://github.com/thoughtbot/appraisal) is used to generate multiple gemfiles, stored in the `gemfiles/` directory. Normally these will only run on Travis; however, if you want to run the full test suite against all gemfiles, run the following commands:
101
+ In order to test against multiple versions of key dependencies, the [Appraisal](https://github.com/thoughtbot/appraisal)
102
+ gem is used to generate multiple gemfiles, stored in the `gemfiles/` directory.
103
+ Normally these will only run on Travis; however, if you want to run the full test suite against
104
+ all gemfiles, run the following commands:
90
105
 
91
106
  [bundle exec] appraisal install
92
107
  [bundle exec] appraisal rake test
93
108
 
94
109
  To run the suite against a named gemfile, use the following:
95
110
 
96
- [bundle exec] appraisal rails_4_2 rake test
97
-
98
- To remove and rebuild the different gemfiles (for example, to update a rails version or its dependencies), use the following:
99
-
100
- [bundle exec] appraisal install
101
-
102
- If you've changed versions of the dependencies, you may find it helpful to forcefully clean each appraisal's gem lock file in `gemfiles/`. You can do this using:
103
-
104
- [bundle exec] rake clean
105
-
106
-
111
+ [bundle exec] appraisal rails_6_0 rake test
107
112
 
108
113
  ### Adding dependencies
109
114
 
@@ -111,7 +116,8 @@ To support the multiple-gemfile testing, when adding a new dependency the follow
111
116
 
112
117
  1. If it's a runtime dependency of the gem, add it to the gemspec
113
118
  2. If it's a primary development dependency, add it to the gemspec
114
- 3. If it's a dependency of a generated rails app in a test, add it to [the helper] that modifies that Gemfile.
119
+ 3. If it's a dependency of a generated rails app in a test, add it to [the helper] that
120
+ modifies the `Gemfile`.
115
121
 
116
122
  For example, rspec is a primary development dependency, so it lives in the gemspec.
117
123
 
@@ -123,7 +129,7 @@ If you get an error while trying to run the tests locally, similar to the one be
123
129
 
124
130
  Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
125
131
 
126
- you would need to install a javascript runtime.
132
+ You need to install a javascript runtime.
127
133
 
128
134
  You can do that in ubuntu by using:
129
135
 
@@ -1,31 +1,37 @@
1
- env_caller = File.dirname(caller.detect{ |f| f =~ /\/env\.rb:/ }) if caller.detect{ |f| f =~ /\/env\.rb:/ }
2
- if env_caller
1
+ # frozen_string_literal: true
2
+
3
+ called_from_env_rb = caller.detect { |f| f.include? '/env.rb:' }
4
+
5
+ if called_from_env_rb
6
+ env_caller = File.dirname(called_from_env_rb)
7
+
3
8
  require 'rails'
4
9
  require 'cucumber/rails/application'
5
10
  ENV['RAILS_ENV'] ||= 'test'
6
- ENV['RAILS_ROOT'] ||= File.expand_path(env_caller + '/../..')
7
- require File.expand_path(ENV['RAILS_ROOT'] + '/config/environment')
8
- require 'cucumber/rails/action_controller'
9
-
10
- if defined?(ActiveRecord::Base)
11
- require 'rails/test_help'
12
- else
13
- require 'action_dispatch/testing/test_process'
14
- require 'action_dispatch/testing/integration'
15
- end
11
+ ENV['RAILS_ROOT'] ||= File.expand_path("#{env_caller}/../..")
12
+ require File.expand_path("#{ENV['RAILS_ROOT']}/config/environment")
13
+ require 'cucumber/rails/action_dispatch'
14
+ require 'rails/test_help'
16
15
 
17
- unless Rails.application.config.cache_classes
18
- warn "WARNING: You have set Rails' config.cache_classes to false (most likely in config/environments/cucumber.rb). This setting is known to cause problems with database transactions. Set config.cache_classes to true if you want to use transactions."
16
+ unless Rails.application.config.cache_classes || defined?(Spring)
17
+ warn "WARNING: You have set Rails' config.cache_classes to false
18
+ (Spring needs cache_classes set to false). This is known to cause problems
19
+ with database transactions. Set config.cache_classes to true if you want to use transactions."
19
20
  end
20
21
 
21
22
  require 'cucumber/rails/world'
22
23
  require 'cucumber/rails/hooks'
23
24
  require 'cucumber/rails/capybara'
25
+ require 'cucumber/rails/database/strategy'
26
+ require 'cucumber/rails/database/deletion_strategy'
27
+ require 'cucumber/rails/database/shared_connection_strategy'
28
+ require 'cucumber/rails/database/truncation_strategy'
24
29
  require 'cucumber/rails/database'
25
30
 
26
31
  MultiTest.disable_autorun
27
32
  else
28
- warn "WARNING: Cucumber-rails required outside of env.rb. The rest of loading is being deferred until env.rb is called.
29
- To avoid this warning, move 'gem \'cucumber-rails\', require: false' under only group :test in your Gemfile.
30
- If already in the :test group, be sure you are specifying 'require: false'."
33
+ warn "WARNING: Cucumber-rails required outside of env.rb. The rest of loading is being deferred
34
+ until env.rb is called. To avoid this warning, move 'gem \'cucumber-rails\', require: false'
35
+ under only group :test in your Gemfile. If already in the :test group, be sure you are
36
+ specifying 'require: false'."
31
37
  end