Would something like this conn = %{conn | body_params: body}
work for you?
setup %{conn: conn} do
body_params = %{"some" => "message"}
signature =
body_params
|> Poison.encode!()
|> Plug.Crypto.MessageVerifier.sign("s3cret", :sha256)
conn =
conn
|> put_req_header("accept", "application/json")
|> put_req_header("content-type", "application/json")
|> put_req_header("x-request-signature", signature)
|> put_body_params(body_params)
{:ok, conn: conn}
end
defp put_body_params(conn, body_params) do
%{conn | body_params: body_params}
end
Or as a workaround you might put your body in conn.private
.