rspec-rails 4.0.0 → 6.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/Changelog.md +247 -53
- data/README.md +73 -61
- data/lib/generators/rspec/channel/channel_generator.rb +1 -1
- data/lib/generators/rspec/controller/controller_generator.rb +5 -5
- data/lib/generators/rspec/controller/templates/request_spec.rb +6 -1
- data/lib/generators/rspec/feature/feature_generator.rb +1 -1
- data/lib/generators/rspec/generator/generator_generator.rb +3 -3
- data/lib/generators/rspec/generator/templates/generator_spec.rb +1 -2
- data/lib/generators/rspec/helper/helper_generator.rb +1 -1
- data/lib/generators/rspec/install/install_generator.rb +19 -2
- data/lib/generators/rspec/install/templates/spec/rails_helper.rb +13 -8
- data/lib/generators/rspec/integration/integration_generator.rb +10 -3
- data/lib/generators/rspec/job/job_generator.rb +2 -1
- data/lib/generators/rspec/job/templates/job_spec.rb.erb +1 -1
- data/lib/generators/rspec/mailbox/mailbox_generator.rb +1 -1
- data/lib/generators/rspec/mailer/mailer_generator.rb +5 -3
- data/lib/generators/rspec/mailer/templates/mailer_spec.rb +2 -2
- data/lib/generators/rspec/mailer/templates/preview.rb +2 -2
- data/lib/generators/rspec/model/model_generator.rb +3 -3
- data/lib/generators/rspec/request/request_generator.rb +10 -3
- data/lib/generators/rspec/scaffold/scaffold_generator.rb +8 -4
- data/lib/generators/rspec/scaffold/templates/api_controller_spec.rb +13 -13
- data/lib/generators/rspec/scaffold/templates/api_request_spec.rb +20 -20
- data/lib/generators/rspec/scaffold/templates/controller_spec.rb +25 -58
- data/lib/generators/rspec/scaffold/templates/edit_spec.rb +8 -8
- data/lib/generators/rspec/scaffold/templates/index_spec.rb +2 -1
- data/lib/generators/rspec/scaffold/templates/new_spec.rb +1 -5
- data/lib/generators/rspec/scaffold/templates/request_spec.rb +38 -18
- data/lib/generators/rspec/scaffold/templates/show_spec.rb +1 -1
- data/lib/generators/rspec/system/system_generator.rb +14 -16
- data/lib/generators/rspec/view/view_generator.rb +2 -2
- data/lib/generators/rspec.rb +18 -1
- data/lib/rspec/rails/adapters.rb +11 -0
- data/lib/rspec/rails/configuration.rb +82 -18
- data/lib/rspec/rails/example/controller_example_group.rb +1 -0
- data/lib/rspec/rails/example/mailbox_example_group.rb +2 -2
- data/lib/rspec/rails/example/mailer_example_group.rb +2 -2
- data/lib/rspec/rails/example/rails_example_group.rb +8 -0
- data/lib/rspec/rails/example/request_example_group.rb +1 -4
- data/lib/rspec/rails/example/routing_example_group.rb +0 -2
- data/lib/rspec/rails/example/system_example_group.rb +63 -15
- data/lib/rspec/rails/example/view_example_group.rb +6 -5
- data/lib/rspec/rails/extensions/active_record/proxy.rb +4 -1
- data/lib/rspec/rails/feature_check.rb +6 -2
- data/lib/rspec/rails/file_fixture_support.rb +11 -10
- data/lib/rspec/rails/fixture_file_upload_support.rb +19 -14
- data/lib/rspec/rails/fixture_support.rb +49 -24
- data/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +6 -3
- data/lib/rspec/rails/matchers/action_mailbox.rb +14 -5
- data/lib/rspec/rails/matchers/active_job.rb +32 -6
- data/lib/rspec/rails/matchers/have_enqueued_mail.rb +34 -5
- data/lib/rspec/rails/matchers/have_http_status.rb +5 -5
- data/lib/rspec/rails/matchers/relation_match_array.rb +1 -1
- data/lib/rspec/rails/matchers/routing_matchers.rb +2 -2
- data/lib/rspec/rails/matchers/send_email.rb +122 -0
- data/lib/rspec/rails/matchers.rb +1 -0
- data/lib/rspec/rails/vendor/capybara.rb +1 -3
- data/lib/rspec/rails/version.rb +1 -1
- data/lib/rspec/rails/view_assigns.rb +0 -18
- data/lib/rspec/rails/view_rendering.rb +13 -11
- data/lib/rspec-rails.rb +13 -11
- data.tar.gz.sig +0 -0
- metadata +28 -27
- metadata.gz.sig +0 -0
- /data/lib/generators/rspec/{integration → request}/templates/request_spec.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3754c96bcbfa8f8685aed3416c1923bf19b2f78610241c4e01d16a7a5425e0db
|
4
|
+
data.tar.gz: 72c02a8443b6410da61768369f1ac53fabcd6cd2fd9efeca36a1c5033ce4f430
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 879fba62ac81954bd7d2428cf356b32530e50a4eabc57137d903162ebdde1c395036da6568cb91765d6b5eeb8a5544bfe8a70e78f6520de897b5676f23c6a6cd
|
7
|
+
data.tar.gz: 7f3ce35fe10aaa8ec773b5515a607867a9a4a7dc8b57a98773411dd9b1434ec4583d723d99afe56b13968f7ddd3a8fa6fd404469e9ee9454eb243b38c1e381b5
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/Changelog.md
CHANGED
@@ -1,82 +1,253 @@
|
|
1
|
-
###
|
2
|
-
[Full Changelog](https://github.com/rspec/rspec-rails/compare/
|
1
|
+
### Development
|
2
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.1.1...6-1-maintenance)
|
3
|
+
|
4
|
+
### 6.1.2 / 2024-03-19
|
5
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.1.1...v6.1.2)
|
6
|
+
|
7
|
+
Bug Fixes:
|
8
|
+
|
9
|
+
* Fix generated mailer paths to match Rails convention. (Patrício dos Santos, #2735)
|
10
|
+
* Fix class in template for generator specs. (Nicolas Buduroi, #2744)
|
11
|
+
|
12
|
+
### 6.1.1 / 2024-01-25
|
13
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.1.0...v6.1.1)
|
14
|
+
|
15
|
+
Bug Fixes:
|
16
|
+
|
17
|
+
* Improved deprecation message for `RSpec::Rails::Configuration.fixture_paths`
|
18
|
+
(Benoit Tigeot, #2720)
|
19
|
+
* Fix support for namespaced fixtures in Rails 7.1. (Benedikt Deicke, #2716)
|
20
|
+
|
21
|
+
### 6.1.0 / 2023-11-21
|
22
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.0.4...v6.1.0)
|
3
23
|
|
4
24
|
Enhancements:
|
5
25
|
|
6
|
-
*
|
7
|
-
*
|
8
|
-
(
|
9
|
-
* Add configuration
|
10
|
-
|
11
|
-
(
|
26
|
+
* Support for Rails 7.1
|
27
|
+
* Minor tweak to generated `rails_helper.rb` to use `Rails.root.join`.
|
28
|
+
(@masato-bkn, Ryo Nakamura, #2640, #2678)
|
29
|
+
* Add `RSpec::Rails::Configuration.fixture_paths` configuration to support
|
30
|
+
the matching change to `ActiveRecord::TestFixtures`, previous singular
|
31
|
+
form is deprecated and will be removed in Rails 7.2. (Juan Gueçaimburu, #2673)
|
32
|
+
* Add `send_email` matcher to match emails rather than specific jobs.
|
33
|
+
(Andrei Kaleshka, #2670)
|
34
|
+
* When using `render` in view specs, `:locals` will now be merged into the
|
35
|
+
default implicit template, allowing `render locals: {...}` style calls.
|
36
|
+
(Jon Rowe, #2686)
|
37
|
+
* Add support for `Rails.config.action_mailer.preview_paths` on Rails 7.1/
|
38
|
+
(Jon Rowe, #2706)
|
39
|
+
|
40
|
+
### 6.0.4 / 2023-11-21
|
41
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.0.3...v6.0.4)
|
12
42
|
|
13
43
|
Bug Fixes:
|
14
44
|
|
15
|
-
*
|
16
|
-
|
17
|
-
*
|
18
|
-
|
19
|
-
*
|
20
|
-
*
|
21
|
-
|
45
|
+
* Fuzzy match `have_broadcasted_to` so that argument matchers can be used.
|
46
|
+
(Timothy Peraza, #2684)
|
47
|
+
* Fix fixture warning during `:context` hooks on Rails `main`. (Jon Rowe, #2685)
|
48
|
+
* Fix `stub_template` on Rails `main`. (Jon Rowe, #2685)
|
49
|
+
* Fix variable name in scaffolded view specs when namespaced. (Taketo Takashima, #2694)
|
50
|
+
* Prevent `take_failed_screenshot` producing an additional error through `metadata`
|
51
|
+
access. (Jon Rowe, #2704)
|
52
|
+
* Use `ActiveSupport::ExecutionContext::TestHelper` on Rails 7+. (Jon Rowe, #2711)
|
53
|
+
* Fix leak of templates stubbed with `stub_template` on Rails 7.1. (Jon Rowe, #2714)
|
22
54
|
|
23
|
-
###
|
24
|
-
[Full Changelog](https://github.com/rspec/rspec-rails/compare/
|
55
|
+
### 6.0.3 / 2023-05-31
|
56
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.0.2...v6.0.3)
|
57
|
+
|
58
|
+
Bug Fixes:
|
59
|
+
|
60
|
+
* Set `ActiveStorage::FixtureSet.file_fixture_path` when including file fixture support.
|
61
|
+
(Jason Yates, #2671)
|
62
|
+
* Allow `broadcast_to` matcher to take Symbols. (@Vagab, #2680)
|
63
|
+
|
64
|
+
### 6.0.2 / 2023-05-04
|
65
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.0.1...v6.0.2)
|
66
|
+
|
67
|
+
Bug Fixes:
|
68
|
+
|
69
|
+
* Fix ActionView::PathSet when `render_views` is off for Rails 7.1.
|
70
|
+
(Eugene Kenny, Iliana, #2631)
|
71
|
+
* Support Rails 7.1's `#fixtures_paths` in example groups (removes a deprecation warning).
|
72
|
+
(Nicholas Simmons, #2664)
|
73
|
+
* Fix `have_enqueued_job` to properly detect enqueued jobs when other jobs were
|
74
|
+
performed inside the expectation block. (Slava Kardakov, Phil Pirozhkov, #2573)
|
75
|
+
|
76
|
+
### 6.0.1 / 2022-10-18
|
77
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v6.0.0...v6.0.1)
|
78
|
+
|
79
|
+
Bug Fixes:
|
80
|
+
|
81
|
+
* Prevent tagged logged support in Rails 7 calling `#name`. (Jon Rowe, #2625)
|
82
|
+
|
83
|
+
### 6.0.0 / 2022-10-10
|
84
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v5.1.2...v6.0.0)
|
25
85
|
|
26
86
|
Enhancements:
|
27
87
|
|
28
|
-
*
|
29
|
-
*
|
30
|
-
*
|
31
|
-
|
32
|
-
|
33
|
-
|
88
|
+
* Support Rails 7
|
89
|
+
* Template tweaks to remove instance variables from generated specs. (Takuma Ishikawa, #2599)
|
90
|
+
* Generators now respects default path configuration option. (@vivekmiyani, #2508)
|
91
|
+
|
92
|
+
Breaking Changes:
|
93
|
+
|
94
|
+
* Drop support for Rails below 6.1
|
95
|
+
* Drop support for Ruby below 2.5 (following supported versions of Rails 6.1)
|
96
|
+
* Change the order of `after_teardown` from `after` to `around` in system
|
97
|
+
specs to improve compatibility with extensions and Capybara. (Tim Diggins, #2596)
|
98
|
+
|
99
|
+
Deprecations:
|
100
|
+
|
101
|
+
* Deprecates integration spec generator (`rspec:integration`)
|
102
|
+
which was an alias of request spec generator (`rspec:request`)
|
103
|
+
(Luka Lüdicke, #2374)
|
104
|
+
|
105
|
+
### 5.1.2 / 2022-04-24
|
106
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v5.1.1...v5.1.2)
|
34
107
|
|
35
108
|
Bug Fixes:
|
36
109
|
|
37
|
-
*
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
110
|
+
* Fix controller scaffold templates parameter name. (Taketo Takashima, #2591)
|
111
|
+
* Include generator specs in the inferred list of specs. (Jason Karns, #2597)
|
112
|
+
|
113
|
+
### 5.1.1 / 2022-03-07
|
114
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v5.1.0...v5.1.1)
|
42
115
|
|
43
|
-
|
44
|
-
|
116
|
+
Bug Fixes:
|
117
|
+
|
118
|
+
* Properly handle global id serialised arguments in `have_enqueued_mail`.
|
119
|
+
(Jon Rowe, #2578)
|
120
|
+
|
121
|
+
### 5.1.0 / 2022-01-26
|
122
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v5.0.3...v5.1.0)
|
45
123
|
|
46
124
|
Enhancements:
|
47
125
|
|
48
|
-
*
|
49
|
-
|
50
|
-
*
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
* Improve path parsing in view specs render options. (John Hawthorn, #2115)
|
56
|
-
* Add routing spec template as an option for generating controller specs.
|
57
|
-
(David Revelo, #2134)
|
126
|
+
* Make the API request scaffold template more consistent and compatible with
|
127
|
+
Rails 6.1. (Naoto Hamada, #2484)
|
128
|
+
* Change the scaffold `rails_helper.rb` template to use `require_relative`.
|
129
|
+
(Jon Dufresne, #2528)
|
130
|
+
|
131
|
+
### 5.0.3 / 2022-01-26
|
132
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v5.0.2...v5.0.3)
|
58
133
|
|
59
134
|
Bug Fixes:
|
60
135
|
|
61
|
-
*
|
62
|
-
|
63
|
-
*
|
64
|
-
(
|
65
|
-
*
|
136
|
+
* Properly name params in controller and request spec templates when
|
137
|
+
using the `--model-name` parameter. (@kenzo-tanaka, #2534)
|
138
|
+
* Fix parameter matching with mail delivery job and
|
139
|
+
ActionMailer::MailDeliveryJob. (Fabio Napoleoni, #2516, #2546)
|
140
|
+
* Fix Rails 7 `have_enqueued_mail` compatibility (Mikael Henriksson, #2537, #2546)
|
141
|
+
|
142
|
+
### 5.0.2 / 2021-08-14
|
143
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v5.0.1...v5.0.2)
|
144
|
+
|
145
|
+
Bug Fixes:
|
146
|
+
|
147
|
+
* Prevent generated job specs from duplicating `_job` in filenames.
|
148
|
+
(Nick Flückiger, #2496)
|
149
|
+
* Fix `ActiveRecord::TestFixture#uses_transaction` by using example description
|
150
|
+
to replace example name rather than example in our monkey patched
|
151
|
+
`run_in_transaction?` method. (Stan Lo, #2495)
|
152
|
+
* Prevent keyword arguments being lost when methods are invoked dynamically
|
153
|
+
in controller specs. (Josh Cheek, #2509, #2514)
|
154
|
+
|
155
|
+
### 5.0.1 / 2021-03-18
|
156
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v5.0.0...v5.0.1)
|
157
|
+
|
158
|
+
Bug Fixes:
|
159
|
+
|
160
|
+
* Limit multibyte example descriptions when used in system tests for #method_name
|
161
|
+
which ends up as screenshot names etc. (@y-yagi, #2405, #2487)
|
162
|
+
|
163
|
+
### 5.0.0 / 2021-03-09
|
164
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.1.1...v5.0.0)
|
165
|
+
|
166
|
+
Enhancements:
|
167
|
+
|
168
|
+
* Support new #file_fixture_path and new fixture test support code. (Jon Rowe, #2398)
|
169
|
+
* Support for Rails 6.1. (Benoit Tigeot, Jon Rowe, Phil Pirozhkov, and more #2398)
|
170
|
+
|
171
|
+
Breaking Changes:
|
172
|
+
|
173
|
+
* Drop support for Rails below 5.2.
|
174
|
+
|
175
|
+
### 4.1.1 / 2021-03-09
|
66
176
|
|
67
|
-
|
68
|
-
|
177
|
+
Bug Fixes:
|
178
|
+
|
179
|
+
* Remove generated specs when destroying a generated controller.
|
180
|
+
(@Naokimi, #2475)
|
181
|
+
|
182
|
+
### 4.1.0 / 2021-03-06
|
183
|
+
|
184
|
+
Enhancements:
|
185
|
+
|
186
|
+
* Issue a warning when using job matchers with `#at` mismatch on `usec` precision.
|
187
|
+
(Jon Rowe, #2350)
|
188
|
+
* Generated request specs now have a bare `_spec` suffix instead of `request_spec`.
|
189
|
+
(Eloy Espinaco, Luka Lüdicke, #2355, #2356, #2378)
|
190
|
+
* Generated scaffold now includes engine route helpers when inside a mountable engine.
|
191
|
+
(Andrew W. Lee, #2372)
|
192
|
+
* Improve request spec "controller" scaffold when no action is specified.
|
193
|
+
(Thomas Hareau, #2399)
|
194
|
+
* Introduce testing snippets concept (Phil Pirozhkov, Benoit Tigeot, #2423)
|
195
|
+
* Prevent collisions with `let(:name)` for Rails 6.1 and `let(:method_name)` on older
|
196
|
+
Rails. (Benoit Tigeot, #2461)
|
197
|
+
|
198
|
+
### 4.0.2 / 2020-12-26
|
199
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.0.1...v4.0.2)
|
69
200
|
|
70
201
|
Bug Fixes:
|
71
202
|
|
72
|
-
*
|
203
|
+
* Indent all extra failure lines output from system specs. (Alex Robbin, #2321)
|
204
|
+
* Generated request spec for update now uses the correct let. (Paul Hanyzewski, #2344)
|
205
|
+
* Return `true`/`false` from predicate methods in config rather than raw values.
|
206
|
+
(Phil Pirozhkov, Jon Rowe, #2353, #2354)
|
207
|
+
* Remove old #fixture_path feature detection code which broke under newer Rails.
|
208
|
+
(Koen Punt, Jon Rowe, #2370)
|
209
|
+
* Fix an error when `use_active_record` is `false` (Phil Pirozhkov, #2423)
|
210
|
+
|
211
|
+
### 4.0.1 / 2020-05-16
|
212
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v4.0.0...v4.0.1)
|
213
|
+
|
214
|
+
Bug Fixes:
|
73
215
|
|
74
|
-
|
75
|
-
|
216
|
+
* Remove warning when calling `driven_by` in system specs. (Aubin Lorieux, #2302)
|
217
|
+
* Fix comparison of times for `#at` in job matchers. (Jon Rowe, Markus Doits, #2304)
|
218
|
+
* Allow `have_enqueued_mail` to match when a sub class of `ActionMailer::DeliveryJob`
|
219
|
+
is set using `<Class>.delivery_job=`. (Atsushi Yoshida #2305)
|
220
|
+
* Restore Ruby 2.2.x compatibility. (Jon Rowe, #2332)
|
221
|
+
* Add `required_ruby_version` to gem spec. (Marc-André Lafortune, #2319, #2338)
|
222
|
+
|
223
|
+
### 4.0.0 / 2020-03-24
|
224
|
+
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v3.9.1...v4.0.0)
|
76
225
|
|
77
226
|
Enhancements:
|
78
227
|
|
79
228
|
* Adds support for Rails 6. (Penelope Phippen, Benoit Tigeot, Jon Rowe, #2071)
|
229
|
+
* Adds support for JRuby on Rails 5.2 and 6
|
230
|
+
* Add support for parameterised mailers (Ignatius Reza, #2125)
|
231
|
+
* Add ActionMailbox spec helpers and test type (James Dabbs, #2119)
|
232
|
+
* Add ActionCable spec helpers and test type (Vladimir Dementyev, #2113)
|
233
|
+
* Add support for partial args when using `have_enqueued_mail`
|
234
|
+
(Ignatius Reza, #2118, #2125)
|
235
|
+
* Add support for time arguments for `have_enqueued_job` (@alpaca-tc, #2157)
|
236
|
+
* Improve path parsing in view specs render options. (John Hawthorn, #2115)
|
237
|
+
* Add routing spec template as an option for generating controller specs.
|
238
|
+
(David Revelo, #2134)
|
239
|
+
* Add argument matcher support to `have_enqueued_*` matchers. (Phil Pirozhkov, #2206)
|
240
|
+
* Switch generated templates to use ruby 1.9 hash keys. (Tanbir Hasan, #2224)
|
241
|
+
* Add `have_been_performed`/`have_performed_job`/`perform_job` ActiveJob
|
242
|
+
matchers (Isaac Seymour, #1785)
|
243
|
+
* Default to generating request specs rather than controller specs when
|
244
|
+
generating a controller (Luka Lüdicke, #2222)
|
245
|
+
* Allow `ActiveJob` matchers `#on_queue` modifier to take symbolic queue names. (Nils Sommer, #2283)
|
246
|
+
* The scaffold generator now generates request specs in preference to controller specs.
|
247
|
+
(Luka Lüdicke, #2288)
|
248
|
+
* Add configuration option to disable ActiveRecord. (Jon Rowe, Phil Pirozhkov, Hermann Mayer, #2266)
|
249
|
+
* Set `ActionDispatch::SystemTesting::Server.silence_puma = true` when running system specs.
|
250
|
+
(ta1kt0me, Benoit Tigeot, #2289)
|
80
251
|
|
81
252
|
Bug Fixes:
|
82
253
|
|
@@ -86,12 +257,35 @@ Bug Fixes:
|
|
86
257
|
deprecated. (Pavel Rosický, #2092)
|
87
258
|
* `ActionView::Template#formats` has been deprecated and replaced by
|
88
259
|
`ActionView::Template#format`(Seb Jacobs, #2100)
|
260
|
+
* Replace `before_teardown` as well as `after_teardown` to ensure screenshots
|
261
|
+
are generated correctly. (Jon Rowe, #2164)
|
262
|
+
* `ActionView::FixtureResolver#hash` has been renamed to `ActionView::FixtureResolver#data`.
|
263
|
+
(Penelope Phippen, #2076)
|
264
|
+
* Prevent `driven_by(:selenium)` being called due to hook precedence.
|
265
|
+
(Takumi Shotoku, #2188)
|
266
|
+
* Prevent a `WrongScopeError` being thrown during loading fixtures on Rails
|
267
|
+
6.1 development version. (Edouard Chin, #2215)
|
268
|
+
* Fix Mocha mocking support with `should`. (Phil Pirozhkov, #2256)
|
269
|
+
* Restore previous conditional check for setting `default_url_options` in feature
|
270
|
+
specs, prevents a `NoMethodError` in some scenarios. (Eugene Kenny, #2277)
|
271
|
+
* Allow changing `ActiveJob::Base.queue_adapter` inside a system spec.
|
272
|
+
(Jonathan Rochkind, #2242)
|
273
|
+
* `rails generate generator` command now creates related spec file (Joel Azemar, #2217)
|
274
|
+
* Relax upper `capybara` version constraint to allow for Capybara 3.x (Phil Pirozhkov, #2281)
|
275
|
+
* Clear ActionMailer test mailbox after each example (Benoit Tigeot, #2293)
|
89
276
|
|
90
277
|
Breaking Changes:
|
91
278
|
|
92
279
|
* Drops support for Rails below 5.0
|
93
280
|
* Drops support for Ruby below 2.3
|
94
281
|
|
282
|
+
### 3.9.1 / 2020-03-10
|
283
|
+
[Full Changelog](http://github.com/rspec/rspec-rails/compare/v3.9.0...v3.9.1)
|
284
|
+
|
285
|
+
Bug Fixes:
|
286
|
+
|
287
|
+
* Add missing require for have_enqueued_mail matcher. (Ignatius Reza, #2117)
|
288
|
+
|
95
289
|
### 3.9.0 / 2019-10-08
|
96
290
|
[Full Changelog](https://github.com/rspec/rspec-rails/compare/v3.8.3...v3.9.0)
|
97
291
|
|
@@ -116,7 +310,7 @@ Bug Fixes:
|
|
116
310
|
|
117
311
|
Bug Fixes:
|
118
312
|
|
119
|
-
* Namespaced fixtures now generate a `/`
|
313
|
+
* Namespaced fixtures now generate a `/` separated path rather than an `_`.
|
120
314
|
(@nxlith, #2077)
|
121
315
|
* Check the arity of `errors` before attempting to use it to generate the `be_valid`
|
122
316
|
error message. (Kevin Kuchta, #2096)
|
@@ -276,7 +470,7 @@ Enhancements:
|
|
276
470
|
|
277
471
|
Bug fixes:
|
278
472
|
|
279
|
-
* Prevent asset helpers from taking
|
473
|
+
* Prevent asset helpers from taking precedence over route helpers. (Prem Sichanugrist, #1496)
|
280
474
|
* Prevent `NoMethodError` during failed `have_rendered` assertions on weird templates.
|
281
475
|
(Jon Rowe, #1623).
|
282
476
|
|
@@ -398,7 +592,7 @@ Enhancements:
|
|
398
592
|
* Add support for PATCH to route specs created via scaffold. (Igor Zubkov, #1336)
|
399
593
|
* Improve controller and routing spec calls to `routes` by using `yield`
|
400
594
|
instead of `call`. (Anton Davydov, #1308)
|
401
|
-
* Add support for `ActiveJob` specs as standard `RSpec::Rails::
|
595
|
+
* Add support for `ActiveJob` specs as standard `RSpec::Rails::RailsExampleGroup`s
|
402
596
|
via both `type: :job` and inferring type from spec directory `spec/jobs`.
|
403
597
|
(Gabe Martin-Dempesy, #1361)
|
404
598
|
* Include `RSpec::Rails::FixtureSupport` into example groups using metadata
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# rspec-rails [![
|
1
|
+
# rspec-rails [![Code Climate][]][code-climate] [![Gem Version][]][gem-version]
|
2
2
|
|
3
3
|
`rspec-rails` brings the [RSpec][] testing framework to [Ruby on Rails][]
|
4
4
|
as a drop-in alternative to its default testing framework, Minitest.
|
@@ -8,10 +8,13 @@ They’re also specifications (or _specs,_ for short):
|
|
8
8
|
detailed explanations of how the application is supposed to behave,
|
9
9
|
expressed in plain English.
|
10
10
|
|
11
|
-
|
11
|
+
According to [RSpec Rails new versioning strategy][] use:
|
12
|
+
* **[`rspec-rails` 6.x][]** for Rails 6.1 or 7.x.
|
13
|
+
* **[`rspec-rails` 5.x][]** for Rails 5.2 or 6.x.
|
14
|
+
* **[`rspec-rails` 4.x][]** for Rails from 5.x or 6.x.
|
15
|
+
* **[`rspec-rails` 3.x][]** for Rails earlier than 5.0.
|
16
|
+
* **[`rspec-rails` 1.x][]** for Rails 2.x.
|
12
17
|
|
13
|
-
[Build Status]: https://secure.travis-ci.org/rspec/rspec-rails.svg?branch=master
|
14
|
-
[travis-ci]: https://travis-ci.org/rspec/rspec-rails
|
15
18
|
[Code Climate]: https://codeclimate.com/github/rspec/rspec-rails.svg
|
16
19
|
[code-climate]: https://codeclimate.com/github/rspec/rspec-rails
|
17
20
|
[Gem Version]: https://badge.fury.io/rb/rspec-rails.svg
|
@@ -19,23 +22,32 @@ Use **[`rspec-rails` 1.x][]** for Rails 2.x.
|
|
19
22
|
[RSpec]: https://rspec.info/
|
20
23
|
[Ruby on Rails]: https://rubyonrails.org/
|
21
24
|
[`rspec-rails` 1.x]: https://github.com/dchelimsky/rspec-rails
|
25
|
+
[`rspec-rails` 3.x]: https://github.com/rspec/rspec-rails/tree/3-9-maintenance
|
26
|
+
[`rspec-rails` 4.x]: https://github.com/rspec/rspec-rails/tree/4-1-maintenance
|
27
|
+
[`rspec-rails` 5.x]: https://github.com/rspec/rspec-rails/tree/5-1-maintenance
|
28
|
+
[`rspec-rails` 6.x]: https://github.com/rspec/rspec-rails/tree/6-1-maintenance
|
29
|
+
[RSpec Rails new versioning strategy]: https://github.com/rspec/rspec-rails/blob/main/rfcs/versioning-strategy.md
|
22
30
|
|
23
31
|
## Installation
|
24
32
|
|
33
|
+
**IMPORTANT** This README / branch refers to the 6.1.x stable release series, only bugfixes from this series will
|
34
|
+
be added here. See the [`main` branch on Github](https://github.com/rspec/rspec-rails/tree/main) if you want or
|
35
|
+
require the latest unstable features.
|
36
|
+
|
25
37
|
1. Add `rspec-rails` to **both** the `:development` and `:test` groups
|
26
38
|
of your app’s `Gemfile`:
|
27
39
|
|
28
40
|
```ruby
|
29
|
-
# Run against
|
41
|
+
# Run against this stable release
|
30
42
|
group :development, :test do
|
31
|
-
gem 'rspec-rails', '~>
|
43
|
+
gem 'rspec-rails', '~> 6.1.0'
|
32
44
|
end
|
33
45
|
|
34
|
-
# Or, run against the
|
35
|
-
# (requires
|
46
|
+
# Or, run against the main branch
|
47
|
+
# (requires main-branch versions of all related RSpec libraries)
|
36
48
|
group :development, :test do
|
37
49
|
%w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
|
38
|
-
gem lib, git: "https://github.com/rspec/#{lib}.git", branch: '
|
50
|
+
gem lib, git: "https://github.com/rspec/#{lib}.git", branch: 'main'
|
39
51
|
end
|
40
52
|
end
|
41
53
|
```
|
@@ -75,8 +87,8 @@ read the [`rspec-rails` upgrade notes][] to find out what to watch out for.
|
|
75
87
|
|
76
88
|
Be sure to check the general [RSpec upgrade notes][] as well.
|
77
89
|
|
78
|
-
[`rspec-rails` upgrade notes]: https://
|
79
|
-
[RSpec upgrade notes]: https://
|
90
|
+
[`rspec-rails` upgrade notes]: https://rspec.info/features/6-0/rspec-rails/upgrade
|
91
|
+
[RSpec upgrade notes]: https://rspec.info/upgrading-from-rspec-2/
|
80
92
|
|
81
93
|
## Usage
|
82
94
|
|
@@ -170,7 +182,7 @@ rspec ./spec/models/post_spec.rb:3 # Post before publication cannot have comment
|
|
170
182
|
For an in-depth look at the RSpec DSL, including lots of examples,
|
171
183
|
read the official Cucumber documentation for [RSpec Core][].
|
172
184
|
|
173
|
-
[RSpec Core]: https://
|
185
|
+
[RSpec Core]: https://rspec.info/features/3-12/rspec-core
|
174
186
|
|
175
187
|
### Helpful Rails Matchers
|
176
188
|
|
@@ -182,37 +194,37 @@ In addition to [the matchers that come standard in RSpec][],
|
|
182
194
|
here are some extras that make it easier
|
183
195
|
to test the various parts of a Rails system:
|
184
196
|
|
185
|
-
| RSpec matcher | Delegates to
|
186
|
-
| ------------------------ |
|
187
|
-
| [`be_a_new`][] |
|
188
|
-
| [`render_template`][] | `assert_template`
|
189
|
-
| [`redirect_to`][] | `assert_redirect`
|
190
|
-
| [`route_to`] | `
|
191
|
-
| [`be_routable`] |
|
192
|
-
| [`have_http_status`][] |
|
193
|
-
| [`match_array`][] |
|
194
|
-
| [`have_been_enqueued`][] |
|
195
|
-
| [`have_enqueued_job`][] |
|
197
|
+
| RSpec matcher | Delegates to | Available in | Notes |
|
198
|
+
| ------------------------ | ------------------- | ------------------------------- | -------------------------------------------------------- |
|
199
|
+
| [`be_a_new`][] | | all | primarily intended for controller specs |
|
200
|
+
| [`render_template`][] | `assert_template` | request / controller / view | use with `expect(response).to` |
|
201
|
+
| [`redirect_to`][] | `assert_redirect` | request / controller | use with `expect(response).to` |
|
202
|
+
| [`route_to`] | `assert_recognizes` | routing / controller | use with `expect(...).to route_to` |
|
203
|
+
| [`be_routable`] | | routing / controller | use with `expect(...).not_to be_routable` |
|
204
|
+
| [`have_http_status`][] | | request / controller / feature | |
|
205
|
+
| [`match_array`][] | | all | for comparing arrays of ActiveRecord objects |
|
206
|
+
| [`have_been_enqueued`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
|
207
|
+
| [`have_enqueued_job`][] | | all | requires config: `ActiveJob::Base.queue_adapter = :test` |
|
196
208
|
|
197
209
|
Follow the links above for examples of how each matcher is used.
|
198
210
|
|
199
|
-
[the matchers that come standard in RSpec]: https://
|
200
|
-
[`be_a_new`]: https://
|
201
|
-
[`render_template`]: https://
|
202
|
-
[`redirect_to`]: https://
|
203
|
-
[`route_to`]: https://
|
204
|
-
[`be_routable`]: https://
|
205
|
-
[`have_http_status`]: https://
|
206
|
-
[`match_array`]: https://
|
207
|
-
[`have_been_enqueued`]: https://
|
208
|
-
[`have_enqueued_job`]: https://
|
211
|
+
[the matchers that come standard in RSpec]: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers
|
212
|
+
[`be_a_new`]: https://rspec.info/features/6-0/rspec-rails/matchers/new-record-matcher
|
213
|
+
[`render_template`]: https://rspec.info/features/6-0/rspec-rails/matchers/render-template-matcher
|
214
|
+
[`redirect_to`]: https://rspec.info/features/6-0/rspec-rails/matchers/redirect-to-matcher
|
215
|
+
[`route_to`]: https://rspec.info/features/6-0/rspec-rails/routing-specs/route-to-matcher
|
216
|
+
[`be_routable`]: https://rspec.info/features/6-0/rspec-rails/routing-specs/be-routable-matcher
|
217
|
+
[`have_http_status`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-http-status-matcher
|
218
|
+
[`match_array`]: https://rspec.info/features/6-0/rspec-rails/matchers/relation-match-array
|
219
|
+
[`have_been_enqueued`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-been-enqueued-matcher
|
220
|
+
[`have_enqueued_job`]: https://rspec.info/features/6-0/rspec-rails/matchers/have-enqueued-job-matcher
|
209
221
|
|
210
222
|
### What else does RSpec Rails add?
|
211
223
|
|
212
224
|
For a comprehensive look at RSpec Rails’ features,
|
213
225
|
read the [official Cucumber documentation][].
|
214
226
|
|
215
|
-
[official Cucumber documentation]: https://
|
227
|
+
[official Cucumber documentation]: https://rspec.info/features/6-0/rspec-rails
|
216
228
|
|
217
229
|
## What tests should I write?
|
218
230
|
|
@@ -222,18 +234,18 @@ Each one inherits from one of Rails’ built-in `TestCase` classes,
|
|
222
234
|
meaning the helper methods provided by default in Rails tests
|
223
235
|
are available in RSpec, as well.
|
224
236
|
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
+
| Spec type | Corresponding Rails test class |
|
238
|
+
| -------------- | -------------------------------- |
|
239
|
+
| [model][] | |
|
240
|
+
| [controller][] | [`ActionController::TestCase`][] |
|
241
|
+
| [mailer][] | `ActionMailer::TestCase` |
|
242
|
+
| [job][] | |
|
243
|
+
| [view][] | `ActionView::TestCase` |
|
244
|
+
| [routing][] | |
|
245
|
+
| [helper][] | `ActionView::TestCase` |
|
246
|
+
| [request][] | [`ActionDispatch::IntegrationTest`][] |
|
247
|
+
| [feature][] | |
|
248
|
+
| [system][] | [`ActionDispatch::SystemTestCase`][] |
|
237
249
|
|
238
250
|
Follow the links above to see examples of each spec type,
|
239
251
|
or for official Rails API documentation on the given `TestCase` class.
|
@@ -257,20 +269,20 @@ RSpec.describe User, type: :model do
|
|
257
269
|
...
|
258
270
|
```
|
259
271
|
|
260
|
-
[request]: https://
|
261
|
-
[feature]: https://
|
262
|
-
[system]: https://
|
263
|
-
[model]: https://
|
264
|
-
[controller]: https://
|
265
|
-
[mailer]: https://
|
266
|
-
[job]: https://
|
267
|
-
[view]: https://
|
268
|
-
[routing]: https://
|
269
|
-
[helper]: https://
|
272
|
+
[request]: https://rspec.info/features/6-0/rspec-rails/request-specs/request-spec
|
273
|
+
[feature]: https://rspec.info/features/6-0/rspec-rails/feature-specs/feature-spec
|
274
|
+
[system]: https://rspec.info/features/6-0/rspec-rails/system-specs/system-specs
|
275
|
+
[model]: https://rspec.info/features/6-0/rspec-rails/model-specs
|
276
|
+
[controller]: https://rspec.info/features/6-0/rspec-rails/controller-specs
|
277
|
+
[mailer]: https://rspec.info/features/6-0/rspec-rails/mailer-specs
|
278
|
+
[job]: https://rspec.info/features/6-0/rspec-rails/job-specs/job-spec
|
279
|
+
[view]: https://rspec.info/features/6-0/rspec-rails/view-specs/view-spec
|
280
|
+
[routing]: https://rspec.info/features/6-0/rspec-rails/routing-specs
|
281
|
+
[helper]: https://rspec.info/features/6-0/rspec-rails/helper-specs/helper-spec
|
270
282
|
[`ActionDispatch::IntegrationTest`]: https://api.rubyonrails.org/classes/ActionDispatch/IntegrationTest.html
|
271
283
|
[`ActionDispatch::SystemTestCase`]: https://api.rubyonrails.org/classes/ActionDispatch/SystemTestCase.html
|
272
284
|
[`ActionController::TestCase`]: https://api.rubyonrails.org/classes/ActionController/TestCase.html
|
273
|
-
[in the appropriate folder]: https://
|
285
|
+
[in the appropriate folder]: https://rspec.info/features/6-0/rspec-rails/directory-structure
|
274
286
|
|
275
287
|
### System specs, feature specs, request specs–what’s the difference?
|
276
288
|
|
@@ -353,10 +365,10 @@ you can run the specs and Cucumber features, or submit a pull request.
|
|
353
365
|
|
354
366
|
### RSpec base libraries
|
355
367
|
|
356
|
-
*
|
357
|
-
*
|
358
|
-
*
|
359
|
-
*
|
368
|
+
* https://github.com/rspec/rspec
|
369
|
+
* https://github.com/rspec/rspec-core
|
370
|
+
* https://github.com/rspec/rspec-expectations
|
371
|
+
* https://github.com/rspec/rspec-mocks
|
360
372
|
|
361
373
|
### Recommended third-party extensions
|
362
374
|
|
@@ -5,7 +5,7 @@ module Rspec
|
|
5
5
|
# @private
|
6
6
|
class ChannelGenerator < Base
|
7
7
|
def create_channel_spec
|
8
|
-
template 'channel_spec.rb.erb',
|
8
|
+
template 'channel_spec.rb.erb', target_path('channels', class_path, "#{file_name}_channel_spec.rb")
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|