Skip to content

Commit 92f5ef5

Browse files
authored
Merge branch '4-0-dev' into fix-build-4-0-dev
2 parents 9b56320 + c11a1b6 commit 92f5ef5

File tree

5 files changed

+33
-3
lines changed

5 files changed

+33
-3
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,10 @@ matrix:
8787
- rvm: 2.4.6
8888
env: RAILS_VERSION='~> 4.2.0'
8989
- rvm: 2.4.6
90-
env: RAILS_VERSION=4-2-stable
90+
env: RAILS_VERSION='~> 4.2.0'
9191
- rvm: 2.3.8
9292
env: RAILS_VERSION='~> 4.2.0'
9393
- rvm: 2.3.8
94-
env: RAILS_VERSION=4-2-stable
94+
env: RAILS_VERSION='~> 4.2.0'
9595

9696
fast_finish: true

Changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Enhancements:
99
* Add ActionCable spec helpers and test type (Vladimir Dementyev, #2113)
1010
* Add support for partial args when using `have_enqueued_mail`
1111
(Ignatius Reza, #2125)
12+
* Add support for time arguments for `have_enqueued_job` (@alpaca-tc, #2157)
1213

1314
Bug Fixes:
1415

lib/rspec/rails/matchers/active_job.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,9 @@ def job_match?(job)
140140

141141
def arguments_match?(job)
142142
if @args.any?
143+
args = serialize_and_deserialize_arguments(@args)
143144
deserialized_args = deserialize_arguments(job)
144-
RSpec::Mocks::ArgumentListMatcher.new(*@args).args_match?(*deserialized_args)
145+
RSpec::Mocks::ArgumentListMatcher.new(*args).args_match?(*deserialized_args)
145146
else
146147
true
147148
end
@@ -172,6 +173,13 @@ def set_expected_number(relativity, count)
172173
end
173174
end
174175

176+
def serialize_and_deserialize_arguments(args)
177+
serialized = ::ActiveJob::Arguments.serialize(args)
178+
::ActiveJob::Arguments.deserialize(serialized)
179+
rescue ::ActiveJob::SerializationError
180+
args
181+
end
182+
175183
def deserialize_arguments(job)
176184
::ActiveJob::Arguments.deserialize(job[:args])
177185
rescue ::ActiveJob::DeserializationError

script/downgrade_bundler_on_old_rails

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ source script/functions.sh
88
if ruby -e "exit(ENV['RAILS_VERSION'].scan(/\d+\.\d+.\d+/)[0].to_f < 5)"; then
99
# On Rails versions less than 5, Bundler 2.0 is not supported
1010
echo "Warning dowgrading to older version of Bundler"
11+
echo "Current bundler versions installed: `gem list | grep '^bundler ('`"
1112

1213
gem uninstall -aIx bundler || echo "Warning error occured removing bundler via gem"
1314

1415
rvm @global do gem uninstall -aIx bundler || echo "Warning error occured removing bundler via rvm"
1516

17+
echo "Bundler version list after uninstall: `gem list | grep '^bundler ('`"
18+
1619
gem install bundler -v '1.17.3'
1720
fi

spec/rspec/rails/matchers/active_job_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,24 @@ def self.name; "LoggingJob"; end
328328
expect(arg).to eq("asdf")
329329
}
330330
end
331+
332+
if Rails.version.to_f >= 6.0
333+
it "passes with Time" do
334+
usec_time = Time.iso8601('2016-07-01T00:00:00.000001Z')
335+
336+
expect {
337+
hello_job.perform_later(usec_time)
338+
}.to have_enqueued_job(hello_job).with(usec_time)
339+
end
340+
341+
it "passes with ActiveSupport::TimeWithZone" do
342+
usec_time = Time.iso8601('2016-07-01T00:00:00.000001Z').in_time_zone
343+
344+
expect {
345+
hello_job.perform_later(usec_time)
346+
}.to have_enqueued_job(hello_job).with(usec_time)
347+
end
348+
end
331349
end
332350

333351
describe "have_been_enqueued" do

0 commit comments

Comments
 (0)