File size: 1,164 Bytes
6778ee0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | defmodule ObanErrorReporterTest do
use ExUnit.Case, async: true
describe "handle_event/4" do
setup do
:telemetry.attach_many(
"oban-errors-test",
[[:oban, :job, :exception], [:oban, :notifier, :exception], [:oban, :plugin, :exception]],
&ObanErrorReporter.handle_event/4,
%{}
)
on_exit(fn -> :ok = :telemetry.detach("oban-errors-test") end)
end
@tag :capture_log
test "doesn't detach on failure" do
:ok =
:telemetry.execute(
[:oban, :job, :exception],
_bad_measurements = %{},
_bad_metadata = %{job: :bad_job}
)
handlers = :telemetry.list_handlers([:oban, :job, :exception])
assert Enum.any?(handlers, &(&1.id == "oban-errors-test"))
end
test "logs an error on failure" do
log =
ExUnit.CaptureLog.capture_log(fn ->
:ok =
:telemetry.execute(
[:oban, :job, :exception],
_bad_measurements = %{},
_bad_metadata = %{job: :bad_job}
)
end)
assert log =~ "(BadMapError)"
assert log =~ ":bad_job"
end
end
end
|