farmbot_os/farmbot_core/test/alert_handler_test.exs

43 lines
945 B
Elixir

defmodule FarmbotCore.AlertHandlerTest do
use ExUnit.Case, async: true
alias FarmbotCore.AlertHandler
alias FarmbotCore.Asset.Private.Alert
import Farmbot.TestSupport.AssetFixtures
test "handle up" do
{:ok, handler} = AlertHandler.start_link([], [])
this = self()
foo = fn x ->
send(this, x)
:ok
end
e = alert()
:ok = AlertHandler.register_up(handler, "farmbot_os.firmware.missing", foo)
AlertHandler.handle_up(handler, e)
assert_received ^e
end
test "handle down" do
{:ok, handler} = AlertHandler.start_link([], [])
this = self()
foo = fn x ->
send(this, x)
:ok
end
e = %Alert{
priority: 0,
local_id: Ecto.UUID.generate(),
problem_tag: "farmbot_os.firmware.missing"
}
:ok = AlertHandler.register_down(handler, "farmbot_os.firmware.missing", foo)
AlertHandler.handle_down(handler, e)
assert_received ^e
end
end