defmodule ExshomeTest.TestHelpers do
@moduledoc """
Helpers to work with tests.
"""
defmacro assert_receive_dependency(message, timeout \\ nil) do
quote do
ExUnit.Assertions.assert_receive(
{Exshome.Dependency, unquote(message)},
unquote(timeout)
)
end
end
defmacro assert_receive_app_page_dependency(message, timeout \\ nil) do
quote do
ExUnit.Assertions.assert_receive(
{ExshomeTest.Hooks.AppPage, Exshome.Dependency, unquote(message)},
unquote(timeout)
)
end
end
defmacro assert_receive_event(event, timeout \\ nil) do
quote do
ExUnit.Assertions.assert_receive(
{Exshome.Event, unquote(event)},
unquote(timeout)
)
end
end
defmacro refute_receive_dependency(message, timeout \\ nil) do
quote do
ExUnit.Assertions.refute_receive(
{Exshome.Dependency, unquote(message)},
unquote(timeout)
)
end
end
def flush_messages do
receive do
_ -> flush_messages()
after
0 -> nil
end
end
end