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.
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 assert_enqueued,
Verify that the jobs were not enqueued with refute_enqueued,
Inspect all enqueued jobs with all_enqueued,
Run a job synchronously and verify the result of the job with perform_job,
Run jobs and verify how many succeeded or failed with drain_queue.
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?