Guest User

Untitled

a guest
May 9th, 2018
3,542
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. def sign_in(conn, %{"email" => email, "password" => password}) do
  2. case Whatever.Auth.authenticate_user(email, password) do
  3. {:ok, user} ->
  4. conn
  5. |> put_session(:current_user_id, user.id)
  6. |> put_status(:ok)
  7. |> render(WhateverWeb.UserView, "sign_in.json", user: user)
  8.  
  9. {:error, message} ->
  10. conn
  11. |> delete_session(:current_user_id)
  12. |> put_status(:unauthorized)
  13. |> render(WhateverWeb.ErrorView, "401.json", message: message)
  14. end
  15. end
  16.  
  17. curl -H "Content-Type: application/json" -X POST -d '{"email":"user@test.com","password":"pass"}' http://localhost:4000/api/users/sign_in -c cookies.txt -b cookies.txt -i
  18. > {"data":{"user":{"id":2,"email":"user@test.com"}}}%
  19.  
  20. def sign_in(conn, user) do
  21. conn
  22. |> bypass_through(Whatever.Router, :api)
  23. |> post("/api/users/sign_in", %{email: user.email, password: user.password})
  24. |> put_session(:current_user_id, user.id)
  25. |> send_resp(:ok, "")
  26. |> recycle()
  27. end
  28.  
  29. test "renders user when user credentials are good", %{conn: conn, user: user} do
  30. conn
  31. |> assign(:current_user_id, user.id) # or use sign_in(user.email, user.password)
  32. |> recycle()
  33. conn = delete conn, user_path(conn, :sign_out)
  34. assert json_response(conn, 200)["data"] == %{
  35. "message" => "Signed out"}
  36. end
  37.  
  38. 1) test sign_out user renders user when user credentials are good (WhateverWeb.UserControllerTest)
  39. test/whatever_web/controllers/user_controller_test.exs:107
  40. ** (RuntimeError) expected response with status 200, got: 401, with body:
  41. {"errors":{"detail":"Unauthorized"}}
Add Comment
Please, Sign In to add comment