   A fake implementation of `Serum.DevServer.Service` behaviour for testing.
   """
 
-  use Agent
+  use GenServer
   alias Serum.DevServer.Service
 
   @behaviour Service

  @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


  @impl Service
  @spec source_dir() :: binary()
  def source_dir, do: GenServer.call(__MODULE__, :src)

  @impl Service
  @spec site_dir() :: binary()
  def site_dir, do: GenServer.call(__MODULE__, :site)

  @impl Service
  @spec port() :: pos_integer()
