You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
link_shortener/test/link_shortener/accounts/accounts_test.exs

62 lines
2.0 KiB

defmodule LinkShortener.AccountsTest do
use LinkShortener.DataCase
alias LinkShortener.Accounts
describe "users" do
alias LinkShortener.Accounts.User
import LinkShortener.AccountsFixtures
@invalid_attrs %{email: nil, password: nil}
test "list_users/0 returns all users" do
user = user_fixture()
assert Accounts.list_users() == [user]
end
test "get_user!/1 returns the user with given id" do
user = user_fixture()
assert Accounts.get_user!(user.id) == user
end
test "create_user/1 with valid data creates a user" do
valid_attrs = %{email: "some email", password: "some encrypted_password"}
assert {:ok, %User{} = user} = Accounts.create_user(valid_attrs)
assert user.email == "some email"
assert user.encrypted_password != "some encrypted_password"
end
test "create_user/1 with invalid data returns error changeset" do
assert {:error, %Ecto.Changeset{}} = Accounts.create_user(@invalid_attrs)
end
test "update_user/2 with valid data updates the user" do
user = user_fixture()
update_attrs = %{email: "some updated email", password: "some updated encrypted_password"}
assert {:ok, %User{} = user} = Accounts.update_user(user, update_attrs)
assert user.email == "some updated email"
assert user.encrypted_password != "some updated encrypted_password"
end
test "update_user/2 with invalid data returns error changeset" do
user = user_fixture()
assert {:error, %Ecto.Changeset{}} = Accounts.update_user(user, @invalid_attrs)
assert user == Accounts.get_user!(user.id)
end
test "delete_user/1 deletes the user" do
user = user_fixture()
assert {:ok, %User{}} = Accounts.delete_user(user)
assert_raise Ecto.NoResultsError, fn -> Accounts.get_user!(user.id) end
end
test "change_user/1 returns a user changeset" do
user = user_fixture()
assert %Ecto.Changeset{} = Accounts.change_user(user)
end
end
end