Использование данных ответа в тесте контроллера - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть следующий тест, в котором я использую данные из предыдущего запроса:

test "renders user when data is valid", %{conn: conn} do
  conn = post conn, user_path(conn, :create), user: @create_attrs
  assert %{"jwt" => jwt} = json_response(conn, 201)["data"]

  conn = get (conn |> put_req_header("Authorization", "Bearer #{jwt}")), user_path(conn, :show)

  assert %{"id" => _, "email" => "some email", "password_hash" => "some password_hash"} = json_response(conn, 201)["data"]

end

Однако этот тест не проходит с:

** (Plug.Conn.AlreadySentError) the response was already sent

Как я могу использовать connздесь

1 Ответ

0 голосов
/ 24 сентября 2018

Используйте исходный conn для получения желаемых результатов из запроса GET (я заменил conn на conn1 для POST:

test "renders user when data is valid", %{conn: conn} do
  conn1 = post conn, user_path(conn, :create), user: @create_attrs
  assert %{"jwt" => jwt} = json_response(conn1, 201)["data"]

  conn = get (conn |> put_req_header("Authorization", "Bearer #{jwt}")), user_path(conn, :show)

  assert %{"id" => _, "email" => "some email", "password_hash" => "some password_hash"} = json_response(conn, 201)["data"]
end
...