Packages
openmaize
0.19.2
3.0.1
retired
3.0.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.1
2.5.0
2.4.0
2.3.2
2.3.1
2.3.0
2.2.0
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.0.1
1.0.0
1.0.0-beta.5
1.0.0-beta.4
1.0.0-beta.3
1.0.0-beta.2
1.0.0-beta.1
1.0.0-beta.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.8.1
0.8.0
0.7.5
0.7.4
0.7.2
0.7.1
0.7.0
0.6.7
0.6.6
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
Authentication library for Elixir using Plug
Current section
Files
Jump to
Current section
Files
priv/templates/html/authorize_test.exs
defmodule <%= base %>.AuthorizeTest do
use <%= base %>.ConnCase
import Openmaize.DB
import OpenmaizeJWT.Create
alias <%= base %>.{Repo, User}
@valid_attrs %{email: "tony@mail.com", password: "mangoes&g0oseberries"}
@invalid_attrs %{email: "tony@mail.com", password: "maaaangoes&g00zeberries"}
{:ok, user_token} = %{id: 3, email: "tony@mail.com", role: "user"}
|> generate_token({0, 1440})
@user_token user_token
setup do
conn = conn()
|> put_req_cookie("access_token", @user_token)
{:ok, conn: conn}
end
# The first three tests can be used to test routes protected by
# the role_check plug or the custom action (authorize_action) function
test "correct user role is successfully authorized", %{conn: conn} do
conn = get conn, "/users"
assert html_response(conn, 200)
end
test "authorization for incorrect role fails", %{conn: conn} do
conn = get conn, "/admin"
assert redirected_to(conn) == "/users"
end
test "authorization for nil user fails" do
conn = conn() |> get("/users")
assert redirected_to(conn) == "/login"
end
# Test routes protected by the id_check plug
test "id check succeeds", %{conn: conn} do
conn = get conn, "/users/3"
assert html_response(conn, 200)
end
test "id check fails for incorrect id", %{conn: conn} do
conn = get conn, "/users/30"
assert redirected_to(conn) == "/users"
end
test "id check fails for nil user" do
conn = conn() |> get("/users/3")
assert redirected_to(conn) == "/login"
end
test "login succeeds" do
# Remove the Repo.get_by line if you are not using email confirmation
Repo.get_by(User, %{email: "tony@mail.com"}) |> user_confirmed
conn = post conn, "/login", user: @valid_attrs
assert redirected_to(conn) == "/users"
end
test "login fails" do
# Remove the Repo.get_by line if you are not using email confirmation
Repo.get_by(User, %{email: "reg@mail.com"}) |> user_confirmed
conn = post conn, "/login", user: @invalid_attrs
assert redirected_to(conn) == "/login"
end
test "logout succeeds" do
{:ok, user_token} = %{id: 3, email: "tony@mail.com", role: "user"}
|> generate_token({0, 1440})
conn = conn()
|> put_req_cookie("access_token", user_token)
|> delete("/logout")
assert redirected_to(conn) == "/"
end
end