Skip to content

Commit

Permalink
clear timers between test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
joaquinco committed Aug 15, 2024
1 parent 7fac535 commit 80590c8
Show file tree
Hide file tree
Showing 10 changed files with 24 additions and 15 deletions.
2 changes: 1 addition & 1 deletion test/example_app/test/send_notification_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule ExampleAppWeb.SendNotificationTest do
use ExUnit.Case, async: true
use BoomNotifier.Case, async: true
use Wallaby.Feature

def select_email(session, item), do: visit(session, Wallaby.Element.attr(item, "href"))
Expand Down
9 changes: 9 additions & 0 deletions test/support/case.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
defmodule BoomNotifier.Case do
use ExUnit.CaseTemplate

setup_all do
on_exit(fn ->
TestUtils.cancel_notification_sender_timers()
end)
end
end
6 changes: 6 additions & 0 deletions test/support/test_utils.ex
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ defmodule TestUtils do
Agent.update(:boom_notifier, fn _ -> %{} end)
end

def cancel_notification_sender_timers() do
:sys.get_state(Process.whereis(BoomNotifier.NotificationSender))
|> Map.values()
|> Enum.each(&Process.cancel_timer/1)
end

def flush_messages(timeout \\ 10) do
receive do
_message -> flush_messages()
Expand Down
2 changes: 1 addition & 1 deletion test/unit/error_info_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule ErrorInfoTest do
use ExUnit.Case
use BoomNotifier.Case

import Plug.Conn
import Phoenix.ConnTest
Expand Down
2 changes: 1 addition & 1 deletion test/unit/error_storage_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule ErrorStorageTest do
use ExUnit.Case
use BoomNotifier.Case

alias BoomNotifier.ErrorInfo
alias BoomNotifier.ErrorStorage
Expand Down
2 changes: 1 addition & 1 deletion test/unit/mailer_notifier_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule MailerNotifierTest do
use ExUnit.Case
use BoomNotifier.Case
use Plug.Test

import TestUtils
Expand Down
10 changes: 2 additions & 8 deletions test/unit/notification_sender_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule BoomNotifier.NotificationSenderTest do
use ExUnit.Case
use BoomNotifier.Case

import TestUtils

Expand Down Expand Up @@ -48,18 +48,12 @@ defmodule BoomNotifier.NotificationSenderTest do
end
end

def cancel_timers() do
:sys.get_state(Process.whereis(NotificationSender))
|> Map.values()
|> Enum.each(&Process.cancel_timer/1)
end

setup do
self() |> Process.register(@pid_name)
clear_error_storage()

on_exit(&flush_messages/0)
on_exit(&cancel_timers/0)
on_exit(&cancel_notification_sender_timers/0)

:ok
end
Expand Down
2 changes: 1 addition & 1 deletion test/unit/notifier_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule NotifierTest do
use ExUnit.Case
use BoomNotifier.Case
use Plug.Test

import ExUnit.CaptureLog
Expand Down
2 changes: 1 addition & 1 deletion test/unit/use_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule BoomNotifier.UseTest do
use ExUnit.Case
use BoomNotifier.Case

@already_sent {:plug_conn, :sent}

Expand Down
2 changes: 1 addition & 1 deletion test/unit/webhook_notifier_test.exs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule WebhookNotifierTest do
use ExUnit.Case, async: false
use BoomNotifier.Case
use Plug.Test

doctest BoomNotifier
Expand Down

0 comments on commit 80590c8

Please sign in to comment.