Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def sign_in(conn, %{"email" => email, "password" => password}) do
- case Whatever.Auth.authenticate_user(email, password) do
- {:ok, user} ->
- conn
- |> put_session(:current_user_id, user.id)
- |> put_status(:ok)
- |> render(WhateverWeb.UserView, "sign_in.json", user: user)
- {:error, message} ->
- conn
- |> delete_session(:current_user_id)
- |> put_status(:unauthorized)
- |> render(WhateverWeb.ErrorView, "401.json", message: message)
- end
- end
- 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
- > {"data":{"user":{"id":2,"email":"user@test.com"}}}%
- def sign_in(conn, user) do
- conn
- |> bypass_through(Whatever.Router, :api)
- |> post("/api/users/sign_in", %{email: user.email, password: user.password})
- |> put_session(:current_user_id, user.id)
- |> send_resp(:ok, "")
- |> recycle()
- end
- test "renders user when user credentials are good", %{conn: conn, user: user} do
- conn
- |> assign(:current_user_id, user.id) # or use sign_in(user.email, user.password)
- |> recycle()
- conn = delete conn, user_path(conn, :sign_out)
- assert json_response(conn, 200)["data"] == %{
- "message" => "Signed out"}
- end
- 1) test sign_out user renders user when user credentials are good (WhateverWeb.UserControllerTest)
- test/whatever_web/controllers/user_controller_test.exs:107
- ** (RuntimeError) expected response with status 200, got: 401, with body:
- {"errors":{"detail":"Unauthorized"}}
Add Comment
Please, Sign In to add comment