test/openagents/forge/supervisor_test.exs

58e6347eeb72 · 774 B

defmodule OpenAgents.Forge.SupervisorTest do
  use ExUnit.Case, async: false

  alias OpenAgents.Forge.{Builder, MirrorWatch, Supervisor}

  test "starts mirror drift repair while the deploy lane is fenced" do
    previous = Application.get_env(:openagents, :forge_deploy_lane_enabled)
    Application.put_env(:openagents, :forge_deploy_lane_enabled, false)

    on_exit(fn ->
      if is_nil(previous) do
        Application.delete_env(:openagents, :forge_deploy_lane_enabled)
      else
        Application.put_env(:openagents, :forge_deploy_lane_enabled, previous)
      end
    end)

    assert {:ok, {_flags, child_specs}} = Supervisor.init([])
    assert Enum.any?(child_specs, &(&1.id == MirrorWatch))
    refute Enum.any?(child_specs, &(&1.id == Builder))
  end
end