ash_oban/lib/test.ex

27 lines
624 B
Elixir
Raw Normal View History

defmodule AshOban.Test do
@moduledoc "Helpers for testing ash_oban triggers"
def schedule_and_run_triggers(resource) do
triggers =
AshOban.Info.oban_triggers(resource)
Enum.each(triggers, fn trigger ->
AshOban.schedule(resource, trigger)
end)
2023-08-05 09:07:44 +12:00
queues =
triggers
|> Enum.map(& &1.queue)
|> Enum.uniq()
# we drain each queue twice to do schedulers and then workers
Enum.reduce(queues ++ queues, %{}, fn queue, acc ->
[queue: queue]
|> Oban.drain_queue()
|> Map.merge(acc, fn _key, left, right ->
left + right
end)
end)
end
end