rspec-rails 4.0.0.beta2 → 4.0.0.beta3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +105 -83
- data/README.md +1 -1
- data/lib/generators/rspec/channel/channel_generator.rb +12 -0
- data/lib/generators/rspec/channel/templates/channel_spec.rb.erb +7 -0
- data/lib/generators/rspec/controller/controller_generator.rb +11 -2
- data/lib/generators/rspec/controller/templates/routing_spec.rb +13 -0
- data/lib/generators/rspec/mailbox/mailbox_generator.rb +14 -0
- data/lib/generators/rspec/mailbox/templates/mailbox_spec.rb.erb +7 -0
- data/lib/generators/rspec/model/templates/fixtures.yml +1 -1
- data/lib/rspec/rails/configuration.rb +15 -5
- data/lib/rspec/rails/example.rb +2 -0
- data/lib/rspec/rails/example/channel_example_group.rb +93 -0
- data/lib/rspec/rails/example/feature_example_group.rb +1 -1
- data/lib/rspec/rails/example/mailbox_example_group.rb +80 -0
- data/lib/rspec/rails/example/mailer_example_group.rb +1 -1
- data/lib/rspec/rails/example/system_example_group.rb +14 -2
- data/lib/rspec/rails/example/view_example_group.rb +29 -8
- data/lib/rspec/rails/feature_check.rb +16 -0
- data/lib/rspec/rails/matchers.rb +10 -0
- data/lib/rspec/rails/matchers/action_cable.rb +65 -0
- data/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +170 -0
- data/lib/rspec/rails/matchers/action_cable/have_streams.rb +58 -0
- data/lib/rspec/rails/matchers/action_mailbox.rb +64 -0
- data/lib/rspec/rails/matchers/active_job.rb +16 -5
- data/lib/rspec/rails/matchers/have_enqueued_mail.rb +44 -22
- data/lib/rspec/rails/matchers/routing_matchers.rb +1 -1
- data/lib/rspec/rails/version.rb +1 -1
- metadata +15 -4
- metadata.gz.sig +0 -0
@@ -14,20 +14,19 @@ module RSpec
|
|
14
14
|
include RSpec::Mocks::ExampleMethods
|
15
15
|
|
16
16
|
def initialize(mailer_class, method_name)
|
17
|
-
super(
|
17
|
+
super(nil)
|
18
18
|
@mailer_class = mailer_class
|
19
19
|
@method_name = method_name
|
20
20
|
@mail_args = []
|
21
|
-
@args = mailer_args
|
22
21
|
end
|
23
22
|
|
24
23
|
def description
|
25
|
-
"enqueues #{
|
24
|
+
"enqueues #{mailer_class_name}.#{@method_name}"
|
26
25
|
end
|
27
26
|
|
28
27
|
def with(*args, &block)
|
29
28
|
@mail_args = args
|
30
|
-
block.nil? ? super
|
29
|
+
block.nil? ? super : super(&yield_mail_args(block))
|
31
30
|
end
|
32
31
|
|
33
32
|
def matches?(block)
|
@@ -50,7 +49,7 @@ module RSpec
|
|
50
49
|
private
|
51
50
|
|
52
51
|
def base_message
|
53
|
-
|
52
|
+
[mailer_class_name, @method_name].compact.join('.').tap do |msg|
|
54
53
|
msg << " #{expected_count_message}"
|
55
54
|
msg << " with #{@mail_args}," if @mail_args.any?
|
56
55
|
msg << " on queue #{@queue}," if @queue
|
@@ -63,24 +62,31 @@ module RSpec
|
|
63
62
|
"#{message_expectation_modifier} #{@expected_number} #{@expected_number == 1 ? 'time' : 'times'}"
|
64
63
|
end
|
65
64
|
|
66
|
-
def
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
65
|
+
def mailer_class_name
|
66
|
+
@mailer_class ? @mailer_class.name : 'ActionMailer::Base'
|
67
|
+
end
|
68
|
+
|
69
|
+
def job_match?(job)
|
70
|
+
legacy_mail?(job) || parameterized_mail?(job) || unified_mail?(job)
|
71
|
+
end
|
71
72
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
73
|
+
def arguments_match?(job)
|
74
|
+
@args =
|
75
|
+
if @mail_args.any?
|
76
|
+
base_mailer_args + @mail_args
|
77
|
+
elsif @mailer_class && @method_name
|
78
|
+
base_mailer_args + [any_args]
|
79
|
+
elsif @mailer_class
|
80
|
+
[mailer_class_name, any_args]
|
81
|
+
else
|
82
|
+
[]
|
83
|
+
end
|
77
84
|
|
78
|
-
|
79
|
-
end
|
85
|
+
super(job)
|
80
86
|
end
|
81
87
|
|
82
88
|
def base_mailer_args
|
83
|
-
[
|
89
|
+
[mailer_class_name, @method_name.to_s, MAILER_JOB_METHOD]
|
84
90
|
end
|
85
91
|
|
86
92
|
def yield_mail_args(block)
|
@@ -95,7 +101,7 @@ module RSpec
|
|
95
101
|
|
96
102
|
def unmatching_mail_jobs
|
97
103
|
@unmatching_jobs.select do |job|
|
98
|
-
job
|
104
|
+
job_match?(job)
|
99
105
|
end
|
100
106
|
end
|
101
107
|
|
@@ -121,8 +127,16 @@ module RSpec
|
|
121
127
|
"#{mailer_method} #{msg_parts.join(', ')}".strip
|
122
128
|
end
|
123
129
|
|
124
|
-
def
|
125
|
-
ActionMailer::DeliveryJob
|
130
|
+
def legacy_mail?(job)
|
131
|
+
job[:job] == ActionMailer::DeliveryJob
|
132
|
+
end
|
133
|
+
|
134
|
+
def parameterized_mail?(job)
|
135
|
+
RSpec::Rails::FeatureCheck.has_action_mailer_parameterized? && job[:job] == ActionMailer::Parameterized::DeliveryJob
|
136
|
+
end
|
137
|
+
|
138
|
+
def unified_mail?(job)
|
139
|
+
RSpec::Rails::FeatureCheck.has_action_mailer_unified_delivery? && job[:job] == ActionMailer::MailDeliveryJob
|
126
140
|
end
|
127
141
|
end
|
128
142
|
# @api public
|
@@ -135,6 +149,14 @@ module RSpec
|
|
135
149
|
# @example
|
136
150
|
# expect {
|
137
151
|
# MyMailer.welcome(user).deliver_later
|
152
|
+
# }.to have_enqueued_mail
|
153
|
+
#
|
154
|
+
# expect {
|
155
|
+
# MyMailer.welcome(user).deliver_later
|
156
|
+
# }.to have_enqueued_mail(MyMailer)
|
157
|
+
#
|
158
|
+
# expect {
|
159
|
+
# MyMailer.welcome(user).deliver_later
|
138
160
|
# }.to have_enqueued_mail(MyMailer, :welcome)
|
139
161
|
#
|
140
162
|
# # Using alias
|
@@ -162,7 +184,7 @@ module RSpec
|
|
162
184
|
# expect {
|
163
185
|
# MyMailer.welcome(user).deliver_later(queue: :urgent_mail)
|
164
186
|
# }.to have_enqueued_mail(MyMailer, :welcome).on_queue(:urgent_mail)
|
165
|
-
def have_enqueued_mail(mailer_class, mail_method_name)
|
187
|
+
def have_enqueued_mail(mailer_class = nil, mail_method_name = nil)
|
166
188
|
HaveEnqueuedMail.new(mailer_class, mail_method_name)
|
167
189
|
end
|
168
190
|
alias_method :have_enqueued_email, :have_enqueued_mail
|
@@ -57,7 +57,7 @@ module RSpec
|
|
57
57
|
#
|
58
58
|
# expect(:get => "/things/special").to route_to("things#special")
|
59
59
|
#
|
60
|
-
# @see
|
60
|
+
# @see https://api.rubyonrails.org/classes/ActionDispatch/Assertions/RoutingAssertions.html#method-i-assert_recognizes
|
61
61
|
def route_to(*expected)
|
62
62
|
RouteToMatcher.new(self, *expected)
|
63
63
|
end
|
data/lib/rspec/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.
|
4
|
+
version: 4.0.0.beta3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Chelimsky
|
@@ -44,7 +44,7 @@ cert_chain:
|
|
44
44
|
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
|
45
45
|
F3MdtaDehhjC
|
46
46
|
-----END CERTIFICATE-----
|
47
|
-
date: 2019-
|
47
|
+
date: 2019-10-18 00:00:00.000000000 Z
|
48
48
|
dependencies:
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: activesupport
|
@@ -199,8 +199,11 @@ files:
|
|
199
199
|
- LICENSE.md
|
200
200
|
- README.md
|
201
201
|
- lib/generators/rspec.rb
|
202
|
+
- lib/generators/rspec/channel/channel_generator.rb
|
203
|
+
- lib/generators/rspec/channel/templates/channel_spec.rb.erb
|
202
204
|
- lib/generators/rspec/controller/controller_generator.rb
|
203
205
|
- lib/generators/rspec/controller/templates/controller_spec.rb
|
206
|
+
- lib/generators/rspec/controller/templates/routing_spec.rb
|
204
207
|
- lib/generators/rspec/controller/templates/view_spec.rb
|
205
208
|
- lib/generators/rspec/feature/feature_generator.rb
|
206
209
|
- lib/generators/rspec/feature/templates/feature_singular_spec.rb
|
@@ -215,6 +218,8 @@ files:
|
|
215
218
|
- lib/generators/rspec/integration/templates/request_spec.rb
|
216
219
|
- lib/generators/rspec/job/job_generator.rb
|
217
220
|
- lib/generators/rspec/job/templates/job_spec.rb.erb
|
221
|
+
- lib/generators/rspec/mailbox/mailbox_generator.rb
|
222
|
+
- lib/generators/rspec/mailbox/templates/mailbox_spec.rb.erb
|
218
223
|
- lib/generators/rspec/mailer/mailer_generator.rb
|
219
224
|
- lib/generators/rspec/mailer/templates/fixture
|
220
225
|
- lib/generators/rspec/mailer/templates/mailer_spec.rb
|
@@ -243,10 +248,12 @@ files:
|
|
243
248
|
- lib/rspec/rails/adapters.rb
|
244
249
|
- lib/rspec/rails/configuration.rb
|
245
250
|
- lib/rspec/rails/example.rb
|
251
|
+
- lib/rspec/rails/example/channel_example_group.rb
|
246
252
|
- lib/rspec/rails/example/controller_example_group.rb
|
247
253
|
- lib/rspec/rails/example/feature_example_group.rb
|
248
254
|
- lib/rspec/rails/example/helper_example_group.rb
|
249
255
|
- lib/rspec/rails/example/job_example_group.rb
|
256
|
+
- lib/rspec/rails/example/mailbox_example_group.rb
|
250
257
|
- lib/rspec/rails/example/mailer_example_group.rb
|
251
258
|
- lib/rspec/rails/example/model_example_group.rb
|
252
259
|
- lib/rspec/rails/example/rails_example_group.rb
|
@@ -261,6 +268,10 @@ files:
|
|
261
268
|
- lib/rspec/rails/fixture_file_upload_support.rb
|
262
269
|
- lib/rspec/rails/fixture_support.rb
|
263
270
|
- lib/rspec/rails/matchers.rb
|
271
|
+
- lib/rspec/rails/matchers/action_cable.rb
|
272
|
+
- lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb
|
273
|
+
- lib/rspec/rails/matchers/action_cable/have_streams.rb
|
274
|
+
- lib/rspec/rails/matchers/action_mailbox.rb
|
264
275
|
- lib/rspec/rails/matchers/active_job.rb
|
265
276
|
- lib/rspec/rails/matchers/base_matcher.rb
|
266
277
|
- lib/rspec/rails/matchers/be_a_new.rb
|
@@ -284,7 +295,7 @@ licenses:
|
|
284
295
|
- MIT
|
285
296
|
metadata:
|
286
297
|
bug_tracker_uri: https://github.com/rspec/rspec-rails/issues
|
287
|
-
changelog_uri: https://github.com/rspec/rspec-rails/blob/v4.0.0.
|
298
|
+
changelog_uri: https://github.com/rspec/rspec-rails/blob/v4.0.0.beta3/Changelog.md
|
288
299
|
documentation_uri: https://rspec.info/documentation/
|
289
300
|
mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
|
290
301
|
source_code_uri: https://github.com/rspec/rspec-rails
|
@@ -304,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
304
315
|
- !ruby/object:Gem::Version
|
305
316
|
version: 1.3.1
|
306
317
|
requirements: []
|
307
|
-
rubygems_version: 3.0.
|
318
|
+
rubygems_version: 3.0.6
|
308
319
|
signing_key:
|
309
320
|
specification_version: 4
|
310
321
|
summary: RSpec for Rails
|
metadata.gz.sig
CHANGED
Binary file
|