Current section
Files
Jump to
Current section
Files
lib/campaign_flow/mock_server/supervisor.ex
defmodule CampaignFlow.MockServer.Supervisor do
@moduledoc """
Supervisor for the mock Campaign Flow server.
"""
use Supervisor
def start_link(opts \\ []) do
name = Keyword.get(opts, :name, __MODULE__)
Supervisor.start_link(__MODULE__, opts, name: name)
end
@impl true
def init(_opts) do
children =
[
{Task.Supervisor, name: CampaignFlow.MockServer.TaskSupervisor}
] ++ maybe_retry_scheduler()
Supervisor.init(children, strategy: :one_for_all)
end
# The RetryScheduler is unnecessary in :sync mode — tests drive
# delivery directly via MockServer.Test.deliver_pending_webhooks/0 or
# rely on the inline sync delivery path.
defp maybe_retry_scheduler do
case Application.get_env(:campaign_flow, :mock_server, [])[:webhook_delivery_mode] do
:sync -> []
_ -> [CampaignFlow.MockServer.Webhooks.RetryScheduler]
end
end
end