method
assert_enqueued_with
v6.1.7.7 -
Show latest stable
-
0 notes -
Class: TestHelper
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (6)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (38)
- 6.1.3.1 (9)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (11)
- 7.1.3.4 (0)
- What's this?
assert_enqueued_with(job: nil, args: nil, at: nil, queue: nil, &block)
public
Asserts that the job has been enqueued with the given arguments.
def test_assert_enqueued_with MyJob.perform_later(1,2,3) assert_enqueued_with(job: MyJob, args: [1,2,3]) MyJob.set(wait_until: Date.tomorrow.noon, queue: "my_queue").perform_later assert_enqueued_with(at: Date.tomorrow.noon, queue: "my_queue") end
The given arguments may also be specified as matcher procs that return a boolean value indicating whether a job’s attribute meets certain criteria.
For example, a proc can be used to match a range of times:
def test_assert_enqueued_with at_matcher = ->(job_at) { (Date.yesterday..Date.tomorrow).cover?(job_at) } MyJob.set(wait_until: Date.today.noon).perform_later assert_enqueued_with(job: MyJob, at: at_matcher) end
A proc can also be used to match a subset of a job’s args:
def test_assert_enqueued_with args_matcher = ->(job_args) { job_args[0].key?(:foo) } MyJob.perform_later(foo: "bar", other_arg: "No need to check in the test") assert_enqueued_with(job: MyJob, args: args_matcher) end
If a block is passed, asserts that the block will cause the job to be enqueued with the given arguments.
def test_assert_enqueued_with assert_enqueued_with(job: MyJob, args: [1,2,3]) do MyJob.perform_later(1,2,3) end assert_enqueued_with(job: MyJob, at: Date.tomorrow.noon) do MyJob.set(wait_until: Date.tomorrow.noon).perform_later end end