TestServer.HTTPServer behaviour (TestServer v0.1.21)
View SourceHTTP server adapter module.
Usage
defmodule MyApp.MyHTTPServer do
@behaviour TestServer.HTTPServer
@impl TestServer.HTTPServer
def start(instance, port, scheme, tls_options, server_options) do
my_http_server_options =
server_options
|> Keyword.put(:port, port)
|> Keyword.put_new(:ipfamily, options[:ipfamily])
case MyHTTPServer.start(my_http_server_options) do
{:ok, pid} -> {:ok, pid, my_http_server_options}
{:error, error} -> {:error, error}
end
end
@impl TestServer.HTTPServer
def stop(instance, server_options), do: MyHTTPServer.stop()
@impl TestServer.HTTPServer
def get_socket_pid(conn), do: conn.owner
end
Summary
Types
@type instance() :: pid()
@type options() :: [tls: keyword(), ipfamily: :inet | :inet6]
@type port_number() :: :inet.port_number()
@type scheme() :: :http | :https
@type server_options() :: keyword()
Callbacks
@callback get_socket_pid(Plug.Conn.t()) :: pid()
@callback start(instance(), port_number(), scheme(), options(), server_options()) :: {:ok, pid(), server_options()} | {:error, any()}
@callback stop(instance(), server_options()) :: :ok | {:error, any()}