diff --git a/lib/error_tracker/error_notifier.ex b/lib/error_tracker/error_notifier.ex index 8c64a920..9de2f4fa 100644 --- a/lib/error_tracker/error_notifier.ex +++ b/lib/error_tracker/error_notifier.ex @@ -30,7 +30,7 @@ defmodule ErrorTracker.ErrorNotifier do reason = truncate_reason(metadata.occurrence.reason) {_result, new_state} = - maybe_notify(metadata.occurrence, metadata.error.muted, "New Error! (#{reason})", state) + maybe_notify(metadata.occurrence, false, "New Error! (#{reason})", state) {:noreply, new_state} @@ -38,7 +38,7 @@ defmodule ErrorTracker.ErrorNotifier do reason = truncate_reason(metadata.occurrence.reason) {_result, new_state} = - maybe_notify(metadata.occurrence, metadata.error.muted, "Error: #{reason}", state) + maybe_notify(metadata.occurrence, metadata.muted, "Error: #{reason}", state) {:noreply, new_state} diff --git a/test/error_tracker/error_notifier_test.exs b/test/error_tracker/error_notifier_test.exs index 0f6ebc2b..3709eade 100644 --- a/test/error_tracker/error_notifier_test.exs +++ b/test/error_tracker/error_notifier_test.exs @@ -124,8 +124,9 @@ defmodule ErrorTracker.ErrorNotifierTest do # Second notification for same error: throttled :telemetry.execute([:error_tracker, :occurrence, :new], %{}, %{ - error: %ErrorTracker.Error{id: 1}, - occurrence: occurrence(%{error_id: 1}) + error: %Error{id: 1}, + occurrence: occurrence(%{error_id: 1}), + muted: false }) Process.sleep(50) @@ -138,13 +139,24 @@ defmodule ErrorTracker.ErrorNotifierTest do describe "skipping" do test "skips notification when error is muted" do Application.put_env(:music_library, ErrorNotifier, @config) + {:ok, pid} = ErrorNotifier.start_link([]) :telemetry.execute([:error_tracker, :error, :new], %{}, %{ - error: %Error{id: 1, muted: true}, + error: %Error{id: 1}, occurrence: occurrence(%{error_id: 1}) }) + Process.sleep(50) + assert_email_sent() + + :telemetry.execute([:error_tracker, :occurrence, :new], %{}, %{ + error: %Error{id: 2}, + occurrence: occurrence(%{error_id: 2}), + muted: true + }) + + Process.sleep(50) refute_email_sent() GenServer.stop(pid)