summaryrefslogtreecommitdiff
path: root/test/silmataivas/users_test.exs
blob: 5044876d391476f1934ce2ee705a1ff6a5decf35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
defmodule Silmataivas.UsersTest do
  use Silmataivas.DataCase

  alias Silmataivas.Users

  describe "users" do
    alias Silmataivas.Users.User

    import Silmataivas.UsersFixtures

    @invalid_attrs %{user_id: nil, role: nil}

    test "list_users/0 includes newly created user" do
      user = user_fixture()
      users = Users.list_users()
      assert Enum.any?(users, fn u -> u.id == user.id end)
    end

    test "get_user!/1 returns the user with given id" do
      user = user_fixture()
      assert Users.get_user!(user.id) == user
    end

    test "create_user/1 with valid data creates a user" do
      valid_attrs = %{user_id: "some user_id", role: "user"}

      assert {:ok, %User{} = user} = Users.create_user(valid_attrs)
      assert user.user_id == "some user_id"
      assert user.role == "user"
    end

    test "create_user/1 with invalid data returns error changeset" do
      assert {:error, %Ecto.Changeset{}} = Users.create_user(@invalid_attrs)
    end

    test "update_user/2 with valid data updates the user" do
      user = user_fixture()
      update_attrs = %{user_id: "some updated user_id", role: "admin"}

      assert {:ok, %User{} = user} = Users.update_user(user, update_attrs)
      assert user.user_id == "some updated user_id"
      assert user.role == "admin"
    end

    test "update_user/2 with invalid data returns error changeset" do
      user = user_fixture()
      assert {:error, %Ecto.Changeset{}} = Users.update_user(user, @invalid_attrs)
      assert user == Users.get_user!(user.id)
    end

    test "delete_user/1 deletes the user" do
      user = user_fixture()
      assert {:ok, %User{}} = Users.delete_user(user)
      assert_raise Ecto.NoResultsError, fn -> Users.get_user!(user.id) end
    end

    test "change_user/1 returns a user changeset" do
      user = user_fixture()
      assert %Ecto.Changeset{} = Users.change_user(user)
    end
  end
end