Alia

Alia

Oban Job Testing in Elixir

Hello everyone!

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?

First Post!

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

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.

Last Post!

stefanchrobot

stefanchrobot

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?

Where Next?

Popular in Questions Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

Other popular topics Top

chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31586 112
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40165 209
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 44778 311
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42716 114
New

We're in Beta

About us Mission Statement