I am here with a new query in my mind.
Is there any assert in test cases when Oban job is completed like there are many helper functions to check the Oban Job testing. Similarly, I want to check that the job is completed OR in progress or something else.
I checked the Oban Testing Documentation but nothing was found similar.
Any guess about it?
I’m not sure I understand. When you’re in a test, Oban is not running in the background. You can use
Oban.drain_queue to synchronously run jobs that are queued up, but there isn’t a lot of point in asserting on what jobs are doing because well, they aren’t doing anything on their own during tests.
I think the point of the Oban test helpers is to test the jobs from the “outside”, that is, make assertions on the observable effects. So you can:
- Verify that the jobs were enqueued with
- Verify that the jobs were not enqueued with
- Inspect all enqueued jobs with
- Run a job synchronously and verify the result of the job with
- Run jobs and verify how many succeeded or failed with
You could in theory get notified about the job status by plugging into Telemetry, but I think it would be better to restructure the way you make assertions.
Can please share more details about the kind of behaviour you are trying to test? Maybe there’s a different way to do it?