Update the API Authentication.
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-08-24 16:18:11 +03:00
parent 32ea2c4ff8
commit 8697be9f17
12 changed files with 196 additions and 1 deletions
@@ -4,6 +4,13 @@ defmodule LinkShortener.AccountsFixtures do
entities via the `LinkShortener.Accounts` context.
"""
alias LinkShortener.Accounts
alias LinkShortener.Accounts.User
alias LinkShortenerWeb.Auth.Guardian
@doc """
Generate a unique user email.
"""
def unique_user_email, do: "user#{System.unique_integer()}@example.com"
def valid_user_password, do: "hello world!"
@@ -23,6 +30,18 @@ defmodule LinkShortener.AccountsFixtures do
user
end
def user_token_fixture(attrs \\ %{}) do
user_params = %{
email: "user@mail.com",
password: "some password"
}
{:ok, %User{} = user} = Accounts.register_user(user_params)
{:ok, token, _claims} = Guardian.encode_and_sign(user)
token
end
def extract_user_token(fun) do
{:ok, captured_email} = fun.(&"[TOKEN]#{&1}[TOKEN]")
[_, token | _] = String.split(captured_email.text_body, "[TOKEN]")