mirror of
https://github.com/ash-project/ash_oban.git
synced 2024-09-20 13:23:08 +12:00
26 lines
624 B
Elixir
26 lines
624 B
Elixir
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)
|
|
|
|
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
|