Skip to content

Commit

Permalink
Merge pull request #2304 from rspec/fix-enqueued-at-with-time
Browse files Browse the repository at this point in the history
Fix comparison of times for `#at` in job matchers.
  • Loading branch information
JonRowe committed Mar 28, 2020
2 parents bef9822 + f345e82 commit ee37445
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
8 changes: 6 additions & 2 deletions lib/rspec/rails/matchers/active_job.rb
Expand Up @@ -30,8 +30,12 @@ def on_queue(queue)
self
end

def at(date)
@at = date
def at(time_or_date)
case time_or_date
when Time then @at = Time.at(time_or_date.to_f)
else
@at = time_or_date
end
self
end

Expand Down
7 changes: 7 additions & 0 deletions spec/rspec/rails/matchers/active_job_spec.rb
Expand Up @@ -216,6 +216,13 @@ def self.name; "LoggingJob"; end
}.to have_enqueued_job.at(date)
end

it "passes with provided at time" do
time = Time.now + 1.day
expect {
hello_job.set(wait_until: time).perform_later
}.to have_enqueued_job.at(time)
end

it "accepts composable matchers as an at date" do
future = 1.minute.from_now
slightly_earlier = 58.seconds.from_now
Expand Down

0 comments on commit ee37445

Please sign in to comment.