Tests for needs_reset base case
parent
d9fddde3e7
commit
27fb2d210c
|
@ -27,13 +27,7 @@ defimpl FarmbotCore.AssetWorker, for: FarmbotCore.Asset.Device do
|
|||
|> AST.Factory.rpc_request("RESET_DEVICE_NOW")
|
||||
|> AST.Factory.factory_reset("farmbot_os")
|
||||
|
||||
case FarmbotCeleryScript.execute(ast, make_ref()) do
|
||||
:ok ->
|
||||
:ok
|
||||
|
||||
{:error, reason} ->
|
||||
FarmbotCore.Logger.error(1, "error executing #{state.pin_binding}: #{reason}")
|
||||
end
|
||||
:ok = FarmbotCeleryScript.execute(ast, make_ref())
|
||||
|
||||
{:noreply, state}
|
||||
end
|
||||
|
@ -42,6 +36,10 @@ defimpl FarmbotCore.AssetWorker, for: FarmbotCore.Asset.Device do
|
|||
{:noreply, state}
|
||||
end
|
||||
|
||||
def handle_info({:step_complete, _ref, _}, state) do
|
||||
{:noreply, state}
|
||||
end
|
||||
|
||||
def handle_cast({:new_data, new_device}, old_device) do
|
||||
_ = log_changes(new_device, old_device)
|
||||
send(self(), :check_factory_reset)
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
defmodule FarmbotCore.DeviceWorkerTest do
|
||||
use ExUnit.Case, async: false
|
||||
alias Farmbot.TestSupport.AssetFixtures
|
||||
alias FarmbotCore.Asset.Device
|
||||
alias FarmbotCore.AssetWorker
|
||||
alias Farmbot.TestSupport.CeleryScript.TestSysCalls
|
||||
|
||||
describe "devices" do
|
||||
test "updates device triggering " do
|
||||
{:ok, _} = TestSysCalls.checkout()
|
||||
test_pid = self()
|
||||
params = %{needs_reset: true}
|
||||
assert %Device{} = dev = AssetFixtures.device(params)
|
||||
|
||||
:ok =
|
||||
TestSysCalls.handle(TestSysCalls, fn
|
||||
kind, args ->
|
||||
send(test_pid, {kind, args})
|
||||
:ok
|
||||
end)
|
||||
|
||||
{:ok, _pid} = AssetWorker.start_link(dev, [])
|
||||
assert_receive {:factory_reset, ["farmbot_os"]}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,6 +1,14 @@
|
|||
defmodule Farmbot.TestSupport.AssetFixtures do
|
||||
alias FarmbotCore.Asset
|
||||
alias FarmbotCore.Asset.{Repo, FarmEvent, FbosConfig, Regimen, Sequence}
|
||||
|
||||
alias FarmbotCore.Asset.{
|
||||
Device,
|
||||
FarmEvent,
|
||||
FbosConfig,
|
||||
Regimen,
|
||||
Repo,
|
||||
Sequence
|
||||
}
|
||||
|
||||
def regimen_instance(regimen_params, farm_event_params, params \\ %{}) do
|
||||
regimen = regimen(regimen_params)
|
||||
|
@ -92,4 +100,14 @@ defmodule Farmbot.TestSupport.AssetFixtures do
|
|||
|> FarmEvent.changeset(params)
|
||||
|> Repo.insert!()
|
||||
end
|
||||
|
||||
def device(params \\ %{}) do
|
||||
defaults = %{id: :rand.uniform(1_000_000), monitor: false}
|
||||
params = Map.merge(defaults, params)
|
||||
|
||||
Device
|
||||
|> struct()
|
||||
|> Device.changeset(params)
|
||||
|> Ecto.Changeset.apply_changes()
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue