Packages

Quickly create API clients using module attributes.

Current section

Files

Jump to
exrequester lib mock_request_performer.ex
Raw

lib/mock_request_performer.ex

defmodule EXRequester.Performer.Mock do
@moduledoc """
Implements `EXRequester.Performer` behaviour. Mocks an HTTP request by sending message to self
This class is used in tests
"""
@behaviour EXRequester.Performer
alias EXRequester.Request
def do_request(request, params) do
sent = ["#{request.method}": "#{Request.prepared_url(request, params)}"]
if Map.get(request, :headers_template) do
sent = sent ++ [headers: Request.prepared_headers(request, params)]
end
if Map.get(request, :body) do
sent = sent ++ [body: Request.prepared_body(request)]
end
send self(), {
:request,
sent
}
%EXRequester.Response{
status_code: 200,
body: "123",
headers: [k1: "v2"]
}
end
end