rspec-rails 5.1.2 → 6.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/Changelog.md +103 -6
  4. data/README.md +37 -36
  5. data/lib/generators/rspec/channel/channel_generator.rb +1 -1
  6. data/lib/generators/rspec/controller/controller_generator.rb +4 -4
  7. data/lib/generators/rspec/feature/feature_generator.rb +1 -1
  8. data/lib/generators/rspec/generator/generator_generator.rb +1 -1
  9. data/lib/generators/rspec/helper/helper_generator.rb +1 -1
  10. data/lib/generators/rspec/install/install_generator.rb +19 -2
  11. data/lib/generators/rspec/install/templates/spec/rails_helper.rb +12 -7
  12. data/lib/generators/rspec/integration/integration_generator.rb +10 -3
  13. data/lib/generators/rspec/job/job_generator.rb +1 -1
  14. data/lib/generators/rspec/mailbox/mailbox_generator.rb +1 -1
  15. data/lib/generators/rspec/mailer/mailer_generator.rb +3 -3
  16. data/lib/generators/rspec/model/model_generator.rb +3 -3
  17. data/lib/generators/rspec/request/request_generator.rb +10 -3
  18. data/lib/generators/rspec/scaffold/scaffold_generator.rb +4 -4
  19. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +15 -0
  20. data/lib/generators/rspec/scaffold/templates/edit_spec.rb +8 -4
  21. data/lib/generators/rspec/scaffold/templates/index_spec.rb +2 -1
  22. data/lib/generators/rspec/scaffold/templates/new_spec.rb +1 -1
  23. data/lib/generators/rspec/scaffold/templates/request_spec.rb +15 -0
  24. data/lib/generators/rspec/scaffold/templates/show_spec.rb +1 -1
  25. data/lib/generators/rspec/system/system_generator.rb +1 -1
  26. data/lib/generators/rspec/view/view_generator.rb +2 -2
  27. data/lib/generators/rspec.rb +18 -1
  28. data/lib/rspec/rails/adapters.rb +11 -0
  29. data/lib/rspec/rails/configuration.rb +43 -14
  30. data/lib/rspec/rails/example/rails_example_group.rb +8 -0
  31. data/lib/rspec/rails/example/system_example_group.rb +58 -11
  32. data/lib/rspec/rails/example/view_example_group.rb +6 -5
  33. data/lib/rspec/rails/feature_check.rb +6 -2
  34. data/lib/rspec/rails/file_fixture_support.rb +3 -0
  35. data/lib/rspec/rails/fixture_file_upload_support.rb +20 -31
  36. data/lib/rspec/rails/fixture_support.rb +43 -15
  37. data/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +6 -3
  38. data/lib/rspec/rails/matchers/active_job.rb +4 -4
  39. data/lib/rspec/rails/matchers/have_enqueued_mail.rb +3 -2
  40. data/lib/rspec/rails/matchers/have_http_status.rb +1 -1
  41. data/lib/rspec/rails/matchers/routing_matchers.rb +2 -2
  42. data/lib/rspec/rails/matchers/send_email.rb +122 -0
  43. data/lib/rspec/rails/matchers.rb +1 -0
  44. data/lib/rspec/rails/vendor/capybara.rb +1 -3
  45. data/lib/rspec/rails/version.rb +1 -1
  46. data/lib/rspec/rails/view_assigns.rb +0 -18
  47. data/lib/rspec/rails/view_rendering.rb +13 -11
  48. data/lib/rspec-rails.rb +12 -8
  49. data.tar.gz.sig +0 -0
  50. metadata +28 -39
  51. metadata.gz.sig +0 -0
  52. /data/lib/generators/rspec/{integration → request}/templates/request_spec.rb +0 -0
@@ -96,8 +96,11 @@ module RSpec
96
96
  private
97
97
 
98
98
  def stream
99
- @stream ||= if @target.is_a?(String)
99
+ @stream ||= case @target
100
+ when String
100
101
  @target
102
+ when Symbol
103
+ @target.to_s
101
104
  else
102
105
  check_channel_presence
103
106
  @channel.broadcasting_for(@target)
@@ -109,7 +112,7 @@ module RSpec
109
112
  decoded = ActiveSupport::JSON.decode(msg)
110
113
  decoded = decoded.with_indifferent_access if decoded.is_a?(Hash)
111
114
 
112
- if @data.nil? || @data === decoded
115
+ if @data.nil? || values_match?(@data, decoded)
113
116
  @block.call(decoded)
114
117
  true
115
118
  else
@@ -159,7 +162,7 @@ module RSpec
159
162
  def check_channel_presence
160
163
  return if @channel.present? && @channel.respond_to?(:channel_name)
161
164
 
162
- error_msg = "Broadcasting channel can't be infered. Please, specify it with `from_channel`"
165
+ error_msg = "Broadcasting channel can't be inferred. Please, specify it with `from_channel`"
163
166
  raise ArgumentError, error_msg
164
167
  end
165
168
  end
@@ -181,7 +181,7 @@ module RSpec
181
181
  |`Time.current.change(usec: 0)`
182
182
  |
183
183
  |Note: RSpec cannot do this for you because jobs can be scheduled with usec
184
- |precision and we do not know wether it is on purpose or not.
184
+ |precision and we do not know whether it is on purpose or not.
185
185
  |
186
186
  |
187
187
  WARNING
@@ -230,11 +230,11 @@ module RSpec
230
230
  def matches?(proc)
231
231
  raise ArgumentError, "have_enqueued_job and enqueue_job only support block expectations" unless Proc === proc
232
232
 
233
- original_enqueued_jobs_count = queue_adapter.enqueued_jobs.count
233
+ original_enqueued_jobs = Set.new(queue_adapter.enqueued_jobs)
234
234
  proc.call
235
- in_block_jobs = queue_adapter.enqueued_jobs.drop(original_enqueued_jobs_count)
235
+ enqueued_jobs = Set.new(queue_adapter.enqueued_jobs)
236
236
 
237
- check(in_block_jobs)
237
+ check(enqueued_jobs - original_enqueued_jobs)
238
238
  end
239
239
 
240
240
  def does_not_match?(proc)
@@ -134,7 +134,7 @@ module RSpec
134
134
  end
135
135
 
136
136
  # Ruby 3.1 changed how params were serialized on Rails 6.1
137
- # so we override the active job implementation and customise it here.
137
+ # so we override the active job implementation and customize it here.
138
138
  def deserialize_arguments(job)
139
139
  args = super
140
140
 
@@ -158,7 +158,7 @@ module RSpec
158
158
  end
159
159
 
160
160
  def legacy_mail?(job)
161
- job[:job] <= ActionMailer::DeliveryJob
161
+ RSpec::Rails::FeatureCheck.has_action_mailer_legacy_delivery_job? && job[:job] <= ActionMailer::DeliveryJob
162
162
  end
163
163
 
164
164
  def parameterized_mail?(job)
@@ -169,6 +169,7 @@ module RSpec
169
169
  RSpec::Rails::FeatureCheck.has_action_mailer_unified_delivery? && job[:job] <= ActionMailer::MailDeliveryJob
170
170
  end
171
171
  end
172
+
172
173
  # @api public
173
174
  # Passes if an email has been enqueued inside block.
174
175
  # May chain with to specify expected arguments.
@@ -305,7 +305,7 @@ module RSpec
305
305
 
306
306
  private
307
307
 
308
- # @return [String] formating the expected status and associated code(s)
308
+ # @return [String] formatting the expected status and associated code(s)
309
309
  def type_message
310
310
  @type_message ||= (expected == :error ? "an error" : "a #{expected}") +
311
311
  " status code (#{type_codes})"
@@ -26,7 +26,7 @@ module RSpec
26
26
  path, query = *verb_to_path_map.values.first.split('?')
27
27
  @scope.assert_recognizes(
28
28
  @expected,
29
- {method: verb_to_path_map.keys.first, path: path},
29
+ { method: verb_to_path_map.keys.first, path: path },
30
30
  Rack::Utils.parse_nested_query(query)
31
31
  )
32
32
  end
@@ -115,7 +115,7 @@ module RSpec
115
115
  # Shorthand method for matching this type of route.
116
116
  %w[get post put patch delete options head].each do |method|
117
117
  define_method method do |path|
118
- {method.to_sym => path}
118
+ { method.to_sym => path }
119
119
  end
120
120
  end
121
121
  end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSpec
4
+ module Rails
5
+ module Matchers
6
+ # @api private
7
+ #
8
+ # Matcher class for `send_email`. Should not be instantiated directly.
9
+ #
10
+ # @see RSpec::Rails::Matchers#send_email
11
+ class SendEmail < RSpec::Rails::Matchers::BaseMatcher
12
+ # @api private
13
+ # Define the email attributes that should be included in the inspection output.
14
+ INSPECT_EMAIL_ATTRIBUTES = %i[subject from to cc bcc].freeze
15
+
16
+ def initialize(criteria)
17
+ @criteria = criteria
18
+ end
19
+
20
+ # @api private
21
+ def supports_value_expectations?
22
+ false
23
+ end
24
+
25
+ # @api private
26
+ def supports_block_expectations?
27
+ true
28
+ end
29
+
30
+ def matches?(block)
31
+ define_matched_emails(block)
32
+
33
+ @matched_emails.one?
34
+ end
35
+
36
+ # @api private
37
+ # @return [String]
38
+ def failure_message
39
+ result =
40
+ if multiple_match?
41
+ "More than 1 matching emails were sent."
42
+ else
43
+ "No matching emails were sent."
44
+ end
45
+ "#{result}#{sent_emails_message}"
46
+ end
47
+
48
+ # @api private
49
+ # @return [String]
50
+ def failure_message_when_negated
51
+ "Expected not to send an email but it was sent."
52
+ end
53
+
54
+ private
55
+
56
+ def diffable?
57
+ true
58
+ end
59
+
60
+ def deliveries
61
+ ActionMailer::Base.deliveries
62
+ end
63
+
64
+ def define_matched_emails(block)
65
+ before = deliveries.dup
66
+
67
+ block.call
68
+
69
+ after = deliveries
70
+
71
+ @diff = after - before
72
+ @matched_emails = @diff.select(&method(:matched_email?))
73
+ end
74
+
75
+ def matched_email?(email)
76
+ @criteria.all? do |attr, value|
77
+ expected =
78
+ case attr
79
+ when :to, :from, :cc, :bcc then Array(value)
80
+ else
81
+ value
82
+ end
83
+
84
+ values_match?(expected, email.public_send(attr))
85
+ end
86
+ end
87
+
88
+ def multiple_match?
89
+ @matched_emails.many?
90
+ end
91
+
92
+ def sent_emails_message
93
+ if @diff.empty?
94
+ "\n\nThere were no any emails sent inside the expectation block."
95
+ else
96
+ sent_emails =
97
+ @diff.map do |email|
98
+ inspected = INSPECT_EMAIL_ATTRIBUTES.map { |attr| "#{attr}: #{email.public_send(attr)}" }.join(", ")
99
+ "- #{inspected}"
100
+ end.join("\n")
101
+ "\n\nThe following emails were sent:\n#{sent_emails}"
102
+ end
103
+ end
104
+ end
105
+
106
+ # @api public
107
+ # Check email sending with specific parameters.
108
+ #
109
+ # @example Positive expectation
110
+ # expect { action }.to send_email
111
+ #
112
+ # @example Negative expectations
113
+ # expect { action }.not_to send_email
114
+ #
115
+ # @example More precise expectation with attributes to match
116
+ # expect { action }.to send_email(to: 'test@example.com', subject: 'Confirm email')
117
+ def send_email(criteria = {})
118
+ SendEmail.new(criteria)
119
+ end
120
+ end
121
+ end
122
+ end
@@ -20,6 +20,7 @@ require 'rspec/rails/matchers/be_a_new'
20
20
  require 'rspec/rails/matchers/relation_match_array'
21
21
  require 'rspec/rails/matchers/be_valid'
22
22
  require 'rspec/rails/matchers/have_http_status'
23
+ require 'rspec/rails/matchers/send_email'
23
24
 
24
25
  if RSpec::Rails::FeatureCheck.has_active_job?
25
26
  require 'rspec/rails/matchers/active_job'
@@ -12,9 +12,7 @@ if defined?(Capybara)
12
12
  RSpec.configure do |c|
13
13
  if defined?(Capybara::DSL)
14
14
  c.include Capybara::DSL, type: :feature
15
- if defined?(ActionPack) && ActionPack::VERSION::STRING >= "5.1"
16
- c.include Capybara::DSL, type: :system
17
- end
15
+ c.include Capybara::DSL, type: :system
18
16
  end
19
17
 
20
18
  if defined?(Capybara::RSpecMatchers)
@@ -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 = '5.1.2'
6
+ STRING = '6.1.1'
7
7
  end
8
8
  end
9
9
  end
@@ -13,26 +13,8 @@ module RSpec
13
13
  end
14
14
 
15
15
  # Compat-shim for AbstractController::Rendering#view_assigns
16
- #
17
- # _assigns was deprecated in favor of view_assigns after
18
- # Rails-3.0.0 was released. Since we are not able to predict when
19
- # the _assigns/view_assigns patch will be released (I thought it
20
- # would have been in 3.0.1, but 3.0.1 bypassed this change for a
21
- # security fix), this bit ensures that we do the right thing without
22
- # knowing anything about the Rails version we are dealing with.
23
- #
24
- # Once that change _is_ released, this can be changed to something
25
- # that checks for the Rails version when the module is being
26
- # interpreted, as it was before commit dd0095.
27
16
  def view_assigns
28
17
  super.merge(_encapsulated_assigns)
29
- rescue
30
- _assigns
31
- end
32
-
33
- # @private
34
- def _assigns
35
- super.merge(_encapsulated_assigns)
36
18
  end
37
19
 
38
20
  private
@@ -62,14 +62,8 @@ module RSpec
62
62
  end
63
63
  end
64
64
 
65
- if ::Rails::VERSION::STRING >= '6'
66
- def self.template_format(template)
67
- template.format
68
- end
69
- else
70
- def self.template_format(template)
71
- template.formats
72
- end
65
+ def self.template_format(template)
66
+ template.format
73
67
  end
74
68
 
75
69
  # Delegates all methods to the submitted resolver and for all methods
@@ -77,7 +71,15 @@ module RSpec
77
71
  # templates with modified source
78
72
  #
79
73
  # @private
80
- class ResolverDecorator
74
+ class ResolverDecorator < ::ActionView::Resolver
75
+ (::ActionView::Resolver.instance_methods - Object.instance_methods).each do |method|
76
+ undef_method method
77
+ end
78
+
79
+ (::ActionView::Resolver.methods - Object.methods).each do |method|
80
+ singleton_class.undef_method method
81
+ end
82
+
81
83
  def initialize(resolver)
82
84
  @resolver = resolver
83
85
  end
@@ -125,11 +127,11 @@ module RSpec
125
127
  # @private
126
128
  module EmptyTemplates
127
129
  def prepend_view_path(new_path)
128
- lookup_context.view_paths.unshift(*_path_decorator(*new_path))
130
+ super(_path_decorator(*new_path))
129
131
  end
130
132
 
131
133
  def append_view_path(new_path)
132
- lookup_context.view_paths.push(*_path_decorator(*new_path))
134
+ super(_path_decorator(*new_path))
133
135
  end
134
136
 
135
137
  private
data/lib/rspec-rails.rb CHANGED
@@ -8,11 +8,7 @@ module RSpec
8
8
  class Railtie < ::Rails::Railtie
9
9
  # As of Rails 5.1.0 you can register directories to work with `rake notes`
10
10
  require 'rails/source_annotation_extractor'
11
- if ::Rails::VERSION::STRING >= '6.0'
12
- ::Rails::SourceAnnotationExtractor::Annotation.register_directories("spec")
13
- else
14
- SourceAnnotationExtractor::Annotation.register_directories("spec")
15
- end
11
+ ::Rails::SourceAnnotationExtractor::Annotation.register_directories("spec")
16
12
  generators = config.app_generators
17
13
  generators.integration_tool :rspec
18
14
  generators.test_framework :rspec
@@ -51,10 +47,18 @@ module RSpec
51
47
  end
52
48
  end
53
49
 
54
- def config_default_preview_path(options)
55
- return unless options.preview_path.blank?
50
+ if ::Rails::VERSION::STRING >= "7.1.0"
51
+ def config_default_preview_path(options)
52
+ return unless options.preview_paths.empty?
53
+
54
+ options.preview_paths << "#{::Rails.root}/spec/mailers/previews"
55
+ end
56
+ else
57
+ def config_default_preview_path(options)
58
+ return unless options.preview_path.blank?
56
59
 
57
- options.preview_path = "#{::Rails.root}/spec/mailers/previews"
60
+ options.preview_path = "#{::Rails.root}/spec/mailers/previews"
61
+ end
58
62
  end
59
63
 
60
64
  def supports_action_mailer_previews?(config)
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.2
4
+ version: 6.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chelimsky
8
8
  - Andy Lindeman
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain:
12
12
  - |
@@ -44,7 +44,7 @@ cert_chain:
44
44
  ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
45
45
  F3MdtaDehhjC
46
46
  -----END CERTIFICATE-----
47
- date: 2022-04-24 00:00:00.000000000 Z
47
+ date: 2024-01-25 00:00:00.000000000 Z
48
48
  dependencies:
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: actionpack
@@ -52,98 +52,98 @@ dependencies:
52
52
  requirements:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
- version: '5.2'
55
+ version: '6.1'
56
56
  type: :runtime
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: '5.2'
62
+ version: '6.1'
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: activesupport
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: '5.2'
69
+ version: '6.1'
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: '5.2'
76
+ version: '6.1'
77
77
  - !ruby/object:Gem::Dependency
78
78
  name: railties
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: '5.2'
83
+ version: '6.1'
84
84
  type: :runtime
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: '5.2'
90
+ version: '6.1'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec-core
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '3.10'
97
+ version: '3.12'
98
98
  type: :runtime
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '3.10'
104
+ version: '3.12'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: rspec-expectations
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '3.10'
111
+ version: '3.12'
112
112
  type: :runtime
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '3.10'
118
+ version: '3.12'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: rspec-mocks
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '3.10'
125
+ version: '3.12'
126
126
  type: :runtime
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: '3.10'
132
+ version: '3.12'
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: rspec-support
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '3.10'
139
+ version: '3.12'
140
140
  type: :runtime
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '3.10'
146
+ version: '3.12'
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: ammeter
149
149
  requirement: !ruby/object:Gem::Requirement
@@ -176,28 +176,16 @@ dependencies:
176
176
  name: cucumber
177
177
  requirement: !ruby/object:Gem::Requirement
178
178
  requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- version: '3.2'
182
- - - "!="
183
- - !ruby/object:Gem::Version
184
- version: 4.0.0
185
- - - "<"
179
+ - - "~>"
186
180
  - !ruby/object:Gem::Version
187
- version: 8.0.0
181
+ version: '7.0'
188
182
  type: :development
189
183
  prerelease: false
190
184
  version_requirements: !ruby/object:Gem::Requirement
191
185
  requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '3.2'
195
- - - "!="
196
- - !ruby/object:Gem::Version
197
- version: 4.0.0
198
- - - "<"
186
+ - - "~>"
199
187
  - !ruby/object:Gem::Version
200
- version: 8.0.0
188
+ version: '7.0'
201
189
  description: rspec-rails is a testing framework for Rails 5+.
202
190
  email: rspec@googlegroups.com
203
191
  executables: []
@@ -228,7 +216,6 @@ files:
228
216
  - lib/generators/rspec/install/install_generator.rb
229
217
  - lib/generators/rspec/install/templates/spec/rails_helper.rb
230
218
  - lib/generators/rspec/integration/integration_generator.rb
231
- - lib/generators/rspec/integration/templates/request_spec.rb
232
219
  - lib/generators/rspec/job/job_generator.rb
233
220
  - lib/generators/rspec/job/templates/job_spec.rb.erb
234
221
  - lib/generators/rspec/mailbox/mailbox_generator.rb
@@ -241,6 +228,7 @@ files:
241
228
  - lib/generators/rspec/model/templates/fixtures.yml
242
229
  - lib/generators/rspec/model/templates/model_spec.rb
243
230
  - lib/generators/rspec/request/request_generator.rb
231
+ - lib/generators/rspec/request/templates/request_spec.rb
244
232
  - lib/generators/rspec/scaffold/scaffold_generator.rb
245
233
  - lib/generators/rspec/scaffold/templates/api_controller_spec.rb
246
234
  - lib/generators/rspec/scaffold/templates/api_request_spec.rb
@@ -296,6 +284,7 @@ files:
296
284
  - lib/rspec/rails/matchers/redirect_to.rb
297
285
  - lib/rspec/rails/matchers/relation_match_array.rb
298
286
  - lib/rspec/rails/matchers/routing_matchers.rb
287
+ - lib/rspec/rails/matchers/send_email.rb
299
288
  - lib/rspec/rails/tasks/rspec.rake
300
289
  - lib/rspec/rails/vendor/capybara.rb
301
290
  - lib/rspec/rails/version.rb
@@ -308,11 +297,11 @@ licenses:
308
297
  - MIT
309
298
  metadata:
310
299
  bug_tracker_uri: https://github.com/rspec/rspec-rails/issues
311
- changelog_uri: https://github.com/rspec/rspec-rails/blob/v5.1.2/Changelog.md
300
+ changelog_uri: https://github.com/rspec/rspec-rails/blob/v6.1.1/Changelog.md
312
301
  documentation_uri: https://rspec.info/documentation/
313
302
  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
314
303
  source_code_uri: https://github.com/rspec/rspec-rails
315
- post_install_message:
304
+ post_install_message:
316
305
  rdoc_options:
317
306
  - "--charset=UTF-8"
318
307
  require_paths:
@@ -321,15 +310,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
310
  requirements:
322
311
  - - ">="
323
312
  - !ruby/object:Gem::Version
324
- version: 2.2.0
313
+ version: 2.5.0
325
314
  required_rubygems_version: !ruby/object:Gem::Requirement
326
315
  requirements:
327
316
  - - ">="
328
317
  - !ruby/object:Gem::Version
329
318
  version: '0'
330
319
  requirements: []
331
- rubygems_version: 3.1.6
332
- signing_key:
320
+ rubygems_version: 3.5.3
321
+ signing_key:
333
322
  specification_version: 4
334
323
  summary: RSpec for Rails
335
324
  test_files: []
metadata.gz.sig CHANGED
Binary file