Current section

Files

Jump to
bandit test support req_helpers.ex
Raw

test/support/req_helpers.ex

defmodule ReqHelpers do
@moduledoc false
defmacro __using__(_) do
quote location: :keep do
def req_http1_client(context) do
start_finch(context)
[req: build_req(context)]
end
def req_h2_client(context) do
start_finch(context, protocol: :http2)
[req: build_req(context)]
end
defp start_finch(context, overrides \\ []) do
options =
[
conn_opts: [
transport_opts: [
verify: :verify_peer,
cacertfile: Path.join(__DIR__, "../support/ca.pem")
]
]
]
|> Keyword.merge(overrides)
start_supervised!({Finch, name: context.test, pools: %{default: options}})
end
defp build_req(context) do
Req.Request.new([])
|> Req.Request.append_request_steps(base_url: &Req.Steps.put_base_url/1)
|> Req.Request.register_options([:base_url, :finch])
|> Req.Request.merge_options(
base_url: context.base,
finch: context.test
)
end
end
end
end