rspec-rails 7.0.2 → 7.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -27,12 +27,12 @@ According to [RSpec Rails new versioning strategy][] use:
27
27
  [`rspec-rails` 4.x]: https://github.com/rspec/rspec-rails/tree/4-1-maintenance
28
28
  [`rspec-rails` 5.x]: https://github.com/rspec/rspec-rails/tree/5-1-maintenance
29
29
  [`rspec-rails` 6.x]: https://github.com/rspec/rspec-rails/tree/6-1-maintenance
30
- [`rspec-rails` 7.x]: https://github.com/rspec/rspec-rails/tree/7-0-maintenance
30
+ [`rspec-rails` 7.x]: https://github.com/rspec/rspec-rails/tree/7-1-maintenance
31
31
  [RSpec Rails new versioning strategy]: https://github.com/rspec/rspec-rails/blob/main/rfcs/versioning-strategy.md
32
32
 
33
33
  ## Installation
34
34
 
35
- **IMPORTANT** This README / branch refers to the 7.0.x stable release series, only bugfixes from this series will
35
+ **IMPORTANT** This README / branch refers to the 7.1.x stable release series, only bugfixes from this series will
36
36
  be added here. See the [`main` branch on Github](https://github.com/rspec/rspec-rails/tree/main) if you want or
37
37
  require the latest unstable features.
38
38
 
@@ -46,11 +46,8 @@ require the latest unstable features.
46
46
  end
47
47
 
48
48
  # Or, run against the main branch
49
- # (requires main-branch versions of all related RSpec libraries)
50
49
  group :development, :test do
51
- %w[rspec-core rspec-expectations rspec-mocks rspec-rails rspec-support].each do |lib|
52
- gem lib, git: "https://github.com/rspec/#{lib}.git", branch: 'main'
53
- end
50
+ gem 'rspec-rails', git: 'https://github.com/rspec/rspec-rails'
54
51
  end
55
52
  ```
56
53
 
@@ -89,7 +86,7 @@ read the [`rspec-rails` upgrade notes][] to find out what to watch out for.
89
86
 
90
87
  Be sure to check the general [RSpec upgrade notes][] as well.
91
88
 
92
- [`rspec-rails` upgrade notes]: https://rspec.info/features/7-0/rspec-rails/upgrade
89
+ [`rspec-rails` upgrade notes]: https://rspec.info/features/7-1/rspec-rails/upgrade
93
90
  [RSpec upgrade notes]: https://rspec.info/upgrading-from-rspec-2/
94
91
 
95
92
  ## Usage
@@ -211,22 +208,22 @@ to test the various parts of a Rails system:
211
208
  Follow the links above for examples of how each matcher is used.
212
209
 
213
210
  [the matchers that come standard in RSpec]: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers
214
- [`be_a_new`]: https://rspec.info/features/7-0/rspec-rails/matchers/new-record-matcher
215
- [`render_template`]: https://rspec.info/features/7-0/rspec-rails/matchers/render-template-matcher
216
- [`redirect_to`]: https://rspec.info/features/7-0/rspec-rails/matchers/redirect-to-matcher
217
- [`route_to`]: https://rspec.info/features/7-0/rspec-rails/routing-specs/route-to-matcher
218
- [`be_routable`]: https://rspec.info/features/7-0/rspec-rails/routing-specs/be-routable-matcher
219
- [`have_http_status`]: https://rspec.info/features/7-0/rspec-rails/matchers/have-http-status-matcher
220
- [`match_array`]: https://rspec.info/features/7-0/rspec-rails/matchers/relation-match-array
221
- [`have_been_enqueued`]: https://rspec.info/features/7-0/rspec-rails/matchers/have-been-enqueued-matcher
222
- [`have_enqueued_job`]: https://rspec.info/features/7-0/rspec-rails/matchers/have-enqueued-job-matcher
211
+ [`be_a_new`]: https://rspec.info/features/7-1/rspec-rails/matchers/new-record-matcher
212
+ [`render_template`]: https://rspec.info/features/7-1/rspec-rails/matchers/render-template-matcher
213
+ [`redirect_to`]: https://rspec.info/features/7-1/rspec-rails/matchers/redirect-to-matcher
214
+ [`route_to`]: https://rspec.info/features/7-1/rspec-rails/routing-specs/route-to-matcher
215
+ [`be_routable`]: https://rspec.info/features/7-1/rspec-rails/routing-specs/be-routable-matcher
216
+ [`have_http_status`]: https://rspec.info/features/7-1/rspec-rails/matchers/have-http-status-matcher
217
+ [`match_array`]: https://rspec.info/features/7-1/rspec-rails/matchers/relation-match-array
218
+ [`have_been_enqueued`]: https://rspec.info/features/7-1/rspec-rails/matchers/have-been-enqueued-matcher
219
+ [`have_enqueued_job`]: https://rspec.info/features/7-1/rspec-rails/matchers/have-enqueued-job-matcher
223
220
 
224
221
  ### What else does RSpec Rails add?
225
222
 
226
223
  For a comprehensive look at RSpec Rails’ features,
227
224
  read the [official Cucumber documentation][].
228
225
 
229
- [official Cucumber documentation]: https://rspec.info/features/7-0/rspec-rails
226
+ [official Cucumber documentation]: https://rspec.info/features/7-1/rspec-rails
230
227
 
231
228
  ## What tests should I write?
232
229
 
@@ -271,20 +268,20 @@ RSpec.describe User, type: :model do
271
268
  ...
272
269
  ```
273
270
 
274
- [request]: https://rspec.info/features/7-0/rspec-rails/request-specs/request-spec
275
- [feature]: https://rspec.info/features/7-0/rspec-rails/feature-specs/feature-spec
276
- [system]: https://rspec.info/features/7-0/rspec-rails/system-specs/system-specs
277
- [model]: https://rspec.info/features/7-0/rspec-rails/model-specs
278
- [controller]: https://rspec.info/features/7-0/rspec-rails/controller-specs
279
- [mailer]: https://rspec.info/features/7-0/rspec-rails/mailer-specs
280
- [job]: https://rspec.info/features/7-0/rspec-rails/job-specs/job-spec
281
- [view]: https://rspec.info/features/7-0/rspec-rails/view-specs/view-spec
282
- [routing]: https://rspec.info/features/7-0/rspec-rails/routing-specs
283
- [helper]: https://rspec.info/features/7-0/rspec-rails/helper-specs/helper-spec
271
+ [request]: https://rspec.info/features/7-1/rspec-rails/request-specs/request-spec
272
+ [feature]: https://rspec.info/features/7-1/rspec-rails/feature-specs/feature-spec
273
+ [system]: https://rspec.info/features/7-1/rspec-rails/system-specs/system-specs
274
+ [model]: https://rspec.info/features/7-1/rspec-rails/model-specs
275
+ [controller]: https://rspec.info/features/7-1/rspec-rails/controller-specs
276
+ [mailer]: https://rspec.info/features/7-1/rspec-rails/mailer-specs
277
+ [job]: https://rspec.info/features/7-1/rspec-rails/job-specs/job-spec
278
+ [view]: https://rspec.info/features/7-1/rspec-rails/view-specs/view-spec
279
+ [routing]: https://rspec.info/features/7-1/rspec-rails/routing-specs
280
+ [helper]: https://rspec.info/features/7-1/rspec-rails/helper-specs/helper-spec
284
281
  [`ActionDispatch::IntegrationTest`]: https://api.rubyonrails.org/classes/ActionDispatch/IntegrationTest.html
285
282
  [`ActionDispatch::SystemTestCase`]: https://api.rubyonrails.org/classes/ActionDispatch/SystemTestCase.html
286
283
  [`ActionController::TestCase`]: https://api.rubyonrails.org/classes/ActionController/TestCase.html
287
- [in the appropriate folder]: https://rspec.info/features/7-0/rspec-rails/directory-structure
284
+ [in the appropriate folder]: https://rspec.info/features/7-1/rspec-rails/directory-structure
288
285
 
289
286
  ### System specs, feature specs, request specs–what’s the difference?
290
287
 
@@ -67,20 +67,22 @@ RSpec.configure do |config|
67
67
  # config.use_transactional_fixtures = true
68
68
 
69
69
  <% end -%>
70
- # RSpec Rails can automatically mix in different behaviours to your tests
71
- # based on their file location, for example enabling you to call `get` and
72
- # `post` in specs under `spec/controllers`.
70
+ # RSpec Rails uses metadata to mix in different behaviours to your tests,
71
+ # for example enabling you to call `get` and `post` in request specs. e.g.:
73
72
  #
74
- # You can disable this behaviour by removing the line below, and instead
75
- # explicitly tag your specs with their type, e.g.:
76
- #
77
- # RSpec.describe UsersController, type: :controller do
73
+ # RSpec.describe UsersController, type: :request do
78
74
  # # ...
79
75
  # end
80
76
  #
81
77
  # The different available types are documented in the features, such as in
82
- # https://rspec.info/features/7-0/rspec-rails
83
- config.infer_spec_type_from_file_location!
78
+ # https://rspec.info/features/7-1/rspec-rails
79
+ #
80
+ # You can also this infer these behaviours automatically by location, e.g.
81
+ # /spec/models would pull in the same behaviour as `type: :model` but this
82
+ # behaviour is considered legacy and will be removed in a future version.
83
+ #
84
+ # To enable this behaviour uncomment the line below.
85
+ # config.infer_spec_type_from_file_location!
84
86
 
85
87
  # Filter lines from Rails gems in backtraces.
86
88
  config.filter_rails_from_backtrace!
@@ -51,6 +51,10 @@ module RSpec
51
51
  exactly(:thrice)
52
52
  end
53
53
 
54
+ def description
55
+ "have broadcasted #{base_description}"
56
+ end
57
+
54
58
  def failure_message
55
59
  "expected to broadcast #{base_message}".tap do |msg|
56
60
  if @unmatching_msgs.any?
@@ -140,18 +144,21 @@ module RSpec
140
144
  end
141
145
  end
142
146
 
143
- def base_message
147
+ def base_description
144
148
  "#{message_expectation_modifier} #{@expected_number} messages to #{stream}".tap do |msg|
145
149
  msg << " with #{data_description(@data)}" unless @data.nil?
146
- msg << ", but broadcast #{@matching_msgs_count}"
147
150
  end
148
151
  end
149
152
 
153
+ def base_message
154
+ "#{base_description}, but broadcast #{@matching_msgs_count}"
155
+ end
156
+
150
157
  def data_description(data)
151
158
  if data.is_a?(RSpec::Matchers::Composable)
152
159
  data.description
153
160
  else
154
- data
161
+ data.inspect
155
162
  end
156
163
  end
157
164
 
@@ -3,6 +3,8 @@ require "rspec/rails/matchers/action_cable/have_broadcasted_to"
3
3
  module RSpec
4
4
  module Rails
5
5
  module Matchers
6
+ extend RSpec::Matchers::DSL
7
+
6
8
  # Namespace for various implementations of ActionCable features
7
9
  #
8
10
  # @api private
@@ -50,7 +52,10 @@ module RSpec
50
52
 
51
53
  ActionCable::HaveBroadcastedTo.new(target, channel: described_class)
52
54
  end
53
- alias_method :broadcast_to, :have_broadcasted_to
55
+
56
+ alias_matcher :broadcast_to, :have_broadcasted_to do |desc|
57
+ desc.gsub("have broadcasted", "broadcast")
58
+ end
54
59
 
55
60
  private
56
61
 
@@ -178,6 +178,8 @@ module RSpec
178
178
  end
179
179
 
180
180
  def detect_args_signature_mismatch(jobs)
181
+ return if skip_signature_verification?
182
+
181
183
  jobs.each do |job|
182
184
  args = deserialize_arguments(job)
183
185
 
@@ -189,6 +191,13 @@ module RSpec
189
191
  nil
190
192
  end
191
193
 
194
+ def skip_signature_verification?
195
+ return true unless defined?(::RSpec::Mocks) && (::RSpec::Mocks.respond_to?(:configuration))
196
+
197
+ !RSpec::Mocks.configuration.verify_partial_doubles? ||
198
+ RSpec::Mocks.configuration.temporarily_suppress_partial_double_verification
199
+ end
200
+
192
201
  def check_args_signature_mismatch(job_class, job_method, args)
193
202
  signature = Support::MethodSignature.new(job_class.public_instance_method(job_method))
194
203
  verifier = Support::StrictSignatureVerifier.new(signature, args)
@@ -93,6 +93,7 @@ module RSpec
93
93
 
94
94
  def detect_args_signature_mismatch(jobs)
95
95
  return if @method_name.nil?
96
+ return if skip_signature_verification?
96
97
 
97
98
  mailer_class = mailer_class_name.constantize
98
99
 
@@ -128,13 +129,13 @@ module RSpec
128
129
  end
129
130
 
130
131
  def unmatching_mail_jobs_message
131
- msg = "Queued deliveries:"
132
+ messages = ["Queued deliveries:"]
132
133
 
133
134
  unmatching_mail_jobs.each do |job|
134
- msg << "\n #{mail_job_message(job)}"
135
+ messages << " #{mail_job_message(job)}"
135
136
  end
136
137
 
137
- msg
138
+ messages.join("\n")
138
139
  end
139
140
 
140
141
  def mail_job_message(job)
@@ -3,7 +3,7 @@ module RSpec
3
3
  # Version information for RSpec Rails.
4
4
  module Version
5
5
  # Current version of RSpec Rails, in semantic versioning format.
6
- STRING = '7.0.2'
6
+ STRING = '7.1.1'
7
7
  end
8
8
  end
9
9
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,21 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.2
4
+ version: 7.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chelimsky
8
8
  - Andy Lindeman
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain:
12
11
  - |
13
12
  -----BEGIN CERTIFICATE-----
14
- MIIF1TCCA72gAwIBAgIJAPXjfUbCjdXUMA0GCSqGSIb3DQEBBQUAMIGAMQswCQYD
13
+ MIIFvjCCA6agAwIBAgIJAPXjfUbCjdXVMA0GCSqGSIb3DQEBCwUAMIGAMQswCQYD
15
14
  VQQGEwJVUzETMBEGA1UECAwKV2FzaGluZ3RvbjEQMA4GA1UEBwwHU2VhdHRsZTEO
16
15
  MAwGA1UECgwFUlNwZWMxEzARBgNVBAMMCnJzcGVjLmluZm8xJTAjBgkqhkiG9w0B
17
- CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMTQxMjIzMDkzNTIyWhcNMjQx
18
- MjIyMDkzNTIyWjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
16
+ CQEWFnJzcGVjQGdvb2dsZWdyb3Vwcy5jb20wHhcNMjUwMjA2MTE0NjU2WhcNMjYw
17
+ MjA2MTE0NjU2WjCBgDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24x
19
18
  EDAOBgNVBAcMB1NlYXR0bGUxDjAMBgNVBAoMBVJTcGVjMRMwEQYDVQQDDApyc3Bl
20
19
  Yy5pbmZvMSUwIwYJKoZIhvcNAQkBFhZyc3BlY0Bnb29nbGVncm91cHMuY29tMIIC
21
20
  IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsSmjgcHaKlD0jizRJowi2bGI
@@ -29,22 +28,21 @@ cert_chain:
29
28
  Xeh3EVdWY3vMB1pkhPwlsenpcmj5gOzrd54lELOVbCGHCf48iSqeflY2Lhe0pvzK
30
29
  blXCJBDmtrebvus291rM/dHcbEfK1SVd5Wut/n131iouf6dnNCFskFygDcgBbthC
31
30
  gpEMqf80lEmhX59VUsm0Pv6OEo+ZPHBvXPiJA6DShQh9t3YtpwyA8uVDMbT/i32u
32
- 2FUsqZbbJcCmkBrGposCAwEAAaNQME4wHQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrW
33
- Vv35J+TeMB8GA1UdIwQYMBaAFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMAwGA1UdEwQF
34
- MAMBAf8wDQYJKoZIhvcNAQEFBQADggIBAIqbQSWH2aAF537DKwAMB8nMFsoe24MD
35
- gtuQAyjTtbH+QBE4N2RdQF/sU7Y3PYR7nqdrCsYc3RxyqM5XXi7I3IYdpfe1RuxY
36
- +pyPzVQsPPDhMlJlCrwJsADnxlpxZlAgxYSLKOan55ihscaAWA90wqRUrf/ZJM36
37
- 8LWCPVn5teIt5aaxZWX68RMxa+AXvpbtJOBwXLkIFk3apD8CX4DhelIdw67DbkUe
38
- ghUd/u62qrnqBTVgditt7OoWIZjzh24/Fda5d0MxZyvLILGOrf5bN4cTbe/q9Cid
39
- Xrik7Upm+mu3y3yQIfrw85xybHq6iNXyYHvCdSrFfCIKrGpd/0CAdmYnJlx59Fk/
40
- UbD3Eyx4psBSkU+WKO0Uf+3zNI7N/nVeNIwU/Ft+l8l7/K+427656c+ZGWDO0Gt/
41
- BeEOSTDKP7qQ1T+JvMrBcBQo+i0cnRT10J1aoV90BhxsvWTRizIbugbaqR6Tq3bj
42
- Akt00cIlNSplL6DenIAKSh5kF7s0tRD0tC3bNkZmNjNGkdoGEcUODEpTB3RHKKiu
43
- e6k2Jg6m00z5vGFQhOnROG/QaUzMA3A3mFBe1RHFo07xd0pFeoeWL3vF69Gx9Jwp
44
- ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
45
- F3MdtaDehhjC
31
+ 2FUsqZbbJcCmkBrGposCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
32
+ HQYDVR0OBBYEFPPvQ5XT0Nvuhi6k+hrWVv35J+TeMA0GCSqGSIb3DQEBCwUAA4IC
33
+ AQBGBr0ll2yLrkO6IeK5Q7qZFnANaUCKfi6Of9VztZJXgKAU5KAQxyOidGktoA5N
34
+ lp+bFKudRkW8jSehqoNaNBdSZ9Bc07EGMXIhUFJZF9rq7Z2SKPwUm6EaSsBK13QR
35
+ U4K6wuaw5ZJSFzklapoGOJRGnFlnNtlhNFY6+tTwCeblwZbcuYGyGY8+Rg7GbyVl
36
+ 3Tr4Gi1aS/qG/MDXKdE8HWm39dmaAMdbw6dg1VBd0JrX2VqH7xvE1dM/D3OlKrNp
37
+ gNFRNJig3Y8qPjocZR0cGkhgZoC9wribWxHSNawZm4CoV3fja2HNx9QyM7BaB+as
38
+ yuqAiBbA7vBcyc8nKATip3mxbyXYXoDD7nmO8JCPP7O/WsgG+U/B2a0kPdvYFoxE
39
+ Q0Js3GtFCuMvL+0rifqdxBOLtu0Pw9q4RvToTJIl2IR6eTgCb82B1hw9qKf7PjuL
40
+ BoEsYjjDhGw6FZvcJG8O6uj7aB+z4aF21YR74UGL7sq/RIPNNez5JI95jTGfqCPy
41
+ 6yo0w3zja3yg28QK3Fj+tbOHeSLv9SDQWi/1jiPprGzbxGvbVvjvX11YZc46vkmY
42
+ AwP+qZPPf97FXXZGEGIYhhHpnj+Ltx9nCetRPiZ4rvYBcXgCWVQSg6eiEofrMwn/
43
+ AKMCABhZ1Y2eATsfMgdkmIZk7JIPZiSi6eUxPiCMP9M/pw==
46
44
  -----END CERTIFICATE-----
47
- date: 2024-11-09 00:00:00.000000000 Z
45
+ date: 2025-02-06 00:00:00.000000000 Z
48
46
  dependencies:
49
47
  - !ruby/object:Gem::Dependency
50
48
  name: actionpack
@@ -176,14 +174,14 @@ dependencies:
176
174
  name: cucumber
177
175
  requirement: !ruby/object:Gem::Requirement
178
176
  requirements:
179
- - - "~>"
177
+ - - ">"
180
178
  - !ruby/object:Gem::Version
181
179
  version: '7.0'
182
180
  type: :development
183
181
  prerelease: false
184
182
  version_requirements: !ruby/object:Gem::Requirement
185
183
  requirements:
186
- - - "~>"
184
+ - - ">"
187
185
  - !ruby/object:Gem::Version
188
186
  version: '7.0'
189
187
  description: rspec-rails integrates the Rails testing helpers into RSpec.
@@ -296,11 +294,10 @@ licenses:
296
294
  - MIT
297
295
  metadata:
298
296
  bug_tracker_uri: https://github.com/rspec/rspec-rails/issues
299
- changelog_uri: https://github.com/rspec/rspec-rails/blob/v7.0.2/Changelog.md
297
+ changelog_uri: https://github.com/rspec/rspec-rails/blob/v7.1.1/Changelog.md
300
298
  documentation_uri: https://rspec.info/documentation/
301
299
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
302
300
  source_code_uri: https://github.com/rspec/rspec-rails
303
- post_install_message:
304
301
  rdoc_options:
305
302
  - "--charset=UTF-8"
306
303
  require_paths:
@@ -316,8 +313,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
316
313
  - !ruby/object:Gem::Version
317
314
  version: '0'
318
315
  requirements: []
319
- rubygems_version: 3.5.22
320
- signing_key:
316
+ rubygems_version: 3.6.2
321
317
  specification_version: 4
322
318
  summary: RSpec for Rails
323
319
  test_files: []
metadata.gz.sig CHANGED
Binary file