farmbot_os/farmbot_core/test/asset_monitor_test.exs

62 lines
1.5 KiB
Elixir

defmodule FarmbotCore.AssetMonitorTest do
use ExUnit.Case, async: false
alias FarmbotCore.{Asset.Repo, AssetMonitor, AssetSupervisor}
import Farmbot.TestSupport.AssetFixtures
describe "regimen instances" do
test "adding a regimen instance starts a process" do
farm_event_params = %{
start_time: DateTime.utc_now(),
end_time: DateTime.utc_now(),
repeat: 1,
time_unit: "never"
}
pr = regimen_instance(%{}, farm_event_params, %{monitor: true})
AssetMonitor.force_checkup()
assert {id, _, _, _} = AssetSupervisor.whereis_child(pr)
assert id == pr.local_id
Repo.delete!(pr)
AssetMonitor.force_checkup()
assert {id, :undefined, _, _} = AssetSupervisor.whereis_child(pr)
assert id == pr.local_id
end
end
describe "farm events" do
test "adding a farm event starts a process" do
seq = sequence()
now = DateTime.utc_now()
start_time = Timex.shift(now, minutes: -20)
end_time = Timex.shift(now, minutes: 10)
params = %{
monitor: true,
start_time: start_time,
end_time: end_time,
repeat: 5,
time_unit: "hourly"
}
event = sequence_event(seq, params)
AssetMonitor.force_checkup()
assert {id, _, _, _} = AssetSupervisor.whereis_child(event)
assert id == event.local_id
Repo.delete!(event)
AssetMonitor.force_checkup()
assert {id, :undefined, _, _} = AssetSupervisor.whereis_child(event)
assert id == event.local_id
end
end
end