diff --git a/test/cannery/invites_test.exs b/test/cannery/invites_test.exs index f3efd47..dfba41f 100644 --- a/test/cannery/invites_test.exs +++ b/test/cannery/invites_test.exs @@ -1,74 +1,76 @@ defmodule Cannery.InvitesTest do + @moduledoc """ + This module tests the Invites context + """ + use Cannery.DataCase - alias Cannery.{AccountsFixtures, Invites} + alias Cannery.{Invites, Invites.Invite} alias Ecto.Changeset + @moduletag :invites_test + + @valid_attrs %{ + "name" => "some name", + "token" => "some token" + } + @update_attrs %{ + "name" => "some updated name", + "token" => "some updated token" + } + @invalid_attrs %{ + "name" => nil, + "token" => nil + } + describe "invites" do - alias Cannery.Invites.Invite - - @valid_attrs %{ - "name" => "some name", - "token" => "some token" - } - @update_attrs %{ - "name" => "some updated name", - "token" => "some updated token" - } - @invalid_attrs %{ - "name" => nil, - "token" => nil - } - - def invite_fixture(attrs \\ %{}) do - {:ok, invite} = - AccountsFixtures.user_fixture() - |> Invites.create_invite(attrs |> Enum.into(@valid_attrs)) - - invite + setup do + current_user = admin_fixture() + {:ok, invite} = Invites.create_invite(current_user, @valid_attrs) + [invite: invite, current_user: current_user] end - test "list_invites/0 returns all invites" do - invite = invite_fixture() - assert Invites.list_invites() == [invite] + test "list_invites/0 returns all invites", %{invite: invite, current_user: current_user} do + assert Invites.list_invites(current_user) == [invite] end - test "get_invite!/1 returns the invite with given id" do - invite = invite_fixture() - assert Invites.get_invite!(invite.id) == invite + test "get_invite!/1 returns the invite with given id", + %{invite: invite, current_user: current_user} do + assert Invites.get_invite!(invite.id, current_user) == invite end - test "create_invite/1 with valid data creates a invite" do - assert {:ok, %Invite{} = invite} = Invites.create_invite(@valid_attrs) + test "create_invite/1 with valid data creates a invite", + %{current_user: current_user} do + assert {:ok, %Invite{} = invite} = Invites.create_invite(current_user, @valid_attrs) assert invite.name == "some name" - assert invite.token == "some token" end - test "create_invite/1 with invalid data returns error changeset" do - assert {:error, %Changeset{}} = Invites.create_invite(@invalid_attrs) + test "create_invite/1 with invalid data returns error changeset", + %{current_user: current_user} do + assert {:error, %Changeset{}} = Invites.create_invite(current_user, @invalid_attrs) end - test "update_invite/2 with valid data updates the invite" do - invite = invite_fixture() - assert {:ok, %Invite{} = invite} = Invites.update_invite(invite, @update_attrs) - assert invite.name == "some updated name" - assert invite.token == "some updated token" + test "update_invite/2 with valid data updates the invite", + %{invite: invite, current_user: current_user} do + assert {:ok, %Invite{} = new_invite} = + Invites.update_invite(invite, @update_attrs, current_user) + + assert new_invite.name == "some updated name" + assert new_invite.token == new_invite.token end - test "update_invite/2 with invalid data returns error changeset" do - invite = invite_fixture() - assert {:error, %Changeset{}} = Invites.update_invite(invite, @invalid_attrs) - assert invite == Invites.get_invite!(invite.id) + test "update_invite/2 with invalid data returns error changeset", + %{invite: invite, current_user: current_user} do + assert {:error, %Changeset{}} = Invites.update_invite(invite, @invalid_attrs, current_user) + assert invite == Invites.get_invite!(invite.id, current_user) end - test "delete_invite/1 deletes the invite" do - invite = invite_fixture() - assert {:ok, %Invite{}} = Invites.delete_invite(invite) - assert_raise Ecto.NoResultsError, fn -> Invites.get_invite!(invite.id) end + test "delete_invite/1 deletes the invite", %{invite: invite, current_user: current_user} do + assert {:ok, %Invite{}} = Invites.delete_invite(invite, current_user) + assert_raise Ecto.NoResultsError, fn -> Invites.get_invite!(invite.id, current_user) end end - test "change_invite/1 returns a invite changeset" do - invite = invite_fixture() + test "change_invite/1 returns a invite changeset", %{invite: invite} do assert %Changeset{} = Invites.change_invite(invite) end end