How do you set the headers in a Phoenix.ConnTest unit test?

I’m trying to set the header with an addition value in a phoenix unit (integration) test:

 @tag integration: true
  test "should record the incoming request made to forwarding service" do
    conn_with_api_header = build_conn()
      |> Plug.Conn.put_req_header("x-mashape-key", "some_test_key" )

    conn = post(conn_with_api_header, "/api/cards")
  end

When I run the test I’m getting the following error:
** (ArgumentError) argument error
code: conn = post(conn_with_api_header, “/api/cards”)
stacktrace:
:erlang.iolist_to_binary([{“x-mashape-key”, “some_test_key”}])

Does anyone know how to set or add entries to the header when testing endpoints? I didn’t see anything in the docs that allows this option.

:waving_hand:

I don’t see any errors with your posted code … Can you post the full stacktrace? Maybe the error comes from your application code.

Wow, you nailed it without even seeing the code! My test was actually doing the correct thing and I was assuming my test was wrong shakes head. After looking at the rest of the call stack I realize I was looking in the wrong place:

(httpoison) lib/httpoison/base.ex:787: HTTPoison.Base.request/6
(proxy_host) lib/proxy_host_web/controllers/proxy_controller.ex:65: ProxyHostWeb.ProxyController.make_http_call/3
(proxy_host) lib/proxy_host_web/controllers/proxy_controller.ex:101: ProxyHostWeb.ProxyController.respond_by_mode/4
(proxy_host) lib/proxy_host_web/controllers/proxy_controller.ex:123: ProxyHostWeb.ProxyController.index/4
(proxy_host) lib/proxy_host_web/controllers/proxy_controller.ex:1: ProxyHostWeb.ProxyController.action/2
(proxy_host) lib/proxy_host_web/controllers/proxy_controller.ex:1: ProxyHostWeb.ProxyController.phoenix_controller_pipeline/2
(proxy_host) lib/proxy_host_web/endpoint.ex:1: ProxyHostWeb.Endpoint.instrument/4
(phoenix) lib/phoenix/router.ex:275: Phoenix.Router.call/1
(proxy_host) lib/proxy_host_web/endpoint.ex:1: ProxyHostWeb.Endpoint.plug_builder_call/2
(proxy_host) lib/proxy_host_web/endpoint.ex:1: ProxyHostWeb.Endpoint.call/2
(phoenix) lib/phoenix/test/conn_test.ex:235: Phoenix.ConnTest.dispatch/5
test/integration_test.exs:23: (test)

I guess I was looking at it myopically when I saw the argument error.