Add tests for user login.
continuous-integration/drone/push Build is failing Details
continuous-integration/drone/tag Build was killed Details

main 0.8.3
KKlochko 2 years ago
parent aff4973ea8
commit 06dfee5b57

@ -61,3 +61,5 @@
Add the authentication for API sing in. Add the authentication for API sing in.
** 0.8.2 <2023-08-10 Thu> ** 0.8.2 <2023-08-10 Thu>
Add the auth pipeline for the Link API path. Add the auth pipeline for the Link API path.
** 0.8.3 <2023-08-11 Fri>
Add tests for user login.

@ -6,7 +6,7 @@ defmodule LinkShortenerWeb.Api.V1.UserControllerTest do
alias LinkShortener.Accounts.User alias LinkShortener.Accounts.User
@create_attrs %{ @create_attrs %{
email: "some_email@mail.com", email: "user@mail.com",
password: "some password" password: "some password"
} }
@ -15,6 +15,11 @@ defmodule LinkShortenerWeb.Api.V1.UserControllerTest do
password: "some updated password" password: "some updated password"
} }
@invalid_password_attrs %{
email: "user@mail.com",
password: ""
}
@invalid_attrs %{ @invalid_attrs %{
email: nil, email: nil,
encrypted_password: nil encrypted_password: nil
@ -24,11 +29,11 @@ defmodule LinkShortenerWeb.Api.V1.UserControllerTest do
{:ok, conn: put_req_header(conn, "accept", "application/json")} {:ok, conn: put_req_header(conn, "accept", "application/json")}
end end
describe "create user" do describe "create user with sign up" do
test "renders user when data is valid", %{conn: conn} do test "renders user when data is valid", %{conn: conn} do
conn = post(conn, Routes.v1_user_path(conn, :create), user: @create_attrs) conn = post(conn, Routes.v1_user_path(conn, :create), user: @create_attrs)
assert %{ assert %{
"email" => "some_email@mail.com", "email" => "user@mail.com",
"token" => token "token" => token
} = json_response(conn, 201) } = json_response(conn, 201)
end end
@ -39,8 +44,26 @@ defmodule LinkShortenerWeb.Api.V1.UserControllerTest do
end end
end end
describe "user sign in" do
setup [:create_user]
test "renders user when data is valid", %{conn: conn} do
conn = post(conn, Routes.v1_user_path(conn, :signin), @create_attrs)
assert %{
"email" => email,
"token" => token,
} = json_response(conn, 201)
end
test "renders errors when data is invalid", %{conn: conn} do
conn = post(conn, Routes.v1_user_path(conn, :signin), @invalid_password_attrs)
assert "Unauthorized" == json_response(conn, 401)
end
end
defp create_user(_) do defp create_user(_) do
user = user_fixture() user = user_fixture(@create_attrs)
%{user: user} %{user: user}
end end
end end

@ -33,7 +33,7 @@ defmodule LinkShortener.AccountsFixtures do
def user_token_fixture(attrs \\ %{}) do def user_token_fixture(attrs \\ %{}) do
user_params = %{ user_params = %{
email: "user@mail.com", email: "user@mail.com",
password: "hello world 12345" password: "some password"
} }
{:ok, %User{} = user} = Accounts.register_user(user_params) {:ok, %User{} = user} = Accounts.register_user(user_params)

Loading…
Cancel
Save