   @impl Service
   @spec subscribe() :: :ok
   def subscribe, do: :ok
+
+  @impl GenServer
+  def init(args) do
+    Process.flag(:trap_exit, true)
+
+    {:ok, args}
+  end
+
+  @impl GenServer
+  def handle_call(msg, from, state)
+  def handle_call(:src, _, {src, _} = state), do: {:reply, src, state}
+  def handle_call(:site, _, {_, site} = state), do: {:reply, site, state}
+
+  @impl GenServer
+  def terminate(_reason, {_, site}), do: File.rm_rf!(site)
 end

  @doc false
  @spec start_link(binary(), binary()) :: {:ok, pid()} | {:error, term()}
  def start_link(src, site) do
    Agent.start_link(fn -> {src, site} end, name: __MODULE__)
  end

  @impl Service

  A fake implementation of `Serum.DevServer.Service` behaviour for testing.
  """

  use GenServer
  alias Serum.DevServer.Service

  @behaviour Service
