Как я могу указать формат в Phoenix.ConnTest?
У меня довольно простой код в контроллере Phoenix. Он делает некоторые вещи и возвращает контент в зависимости от формата:
def delete(conn, _params) do
# some stuff here
if get_format(conn) == "json" do
conn |> put_status(200) |> json(%{})
else
conn |> redirect(to: "/")
end
end
Он работает нормально, но у меня проблема с его тестированием. Я не могу проверить возврат HTML. Как мне это сделать? dispatch / 5 не имеет ничего общего с форматом.
1 ответ
Решение
Формат определяется через accept
заголовок для подключения, а не для get
или что угодно. Для форматов JSON и HTML это должно быть application/json
или же html/text
соответственно.
Вы можете использовать это conn
в ваших тестах:
conn = build_conn
|> Plug.Conn.put_req_header("accept", "text/html")