file locations consistency
[akkoma] / test / list_test.exs
index 3c07e56b29ca82d7eeca41bc9bc56cbc56f17eee..b5572cbae916368be2a744299933334219aa936a 100644 (file)
@@ -1,9 +1,12 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.ListTest do
-  alias Pleroma.{User, Repo}
+  alias Pleroma.Repo
   use Pleroma.DataCase
 
   import Pleroma.Factory
-  import Ecto.Query
 
   test "creating a list" do
     user = insert(:user)
@@ -12,6 +15,13 @@ defmodule Pleroma.ListTest do
     assert title == "title"
   end
 
+  test "validates title" do
+    user = insert(:user)
+
+    assert {:error, changeset} = Pleroma.List.create("", user)
+    assert changeset.errors == [title: {"can't be blank", [validation: :required]}]
+  end
+
   test "getting a list not belonging to the user" do
     user = insert(:user)
     other_user = insert(:user)
@@ -32,7 +42,7 @@ defmodule Pleroma.ListTest do
     user = insert(:user)
     other_user = insert(:user)
     {:ok, list} = Pleroma.List.create("title", user)
-    {:ok, %{following: following}} = Pleroma.List.follow(list, other_user)
+    {:ok, %{following: _following}} = Pleroma.List.follow(list, other_user)
     {:ok, %{following: following}} = Pleroma.List.unfollow(list, other_user)
     assert [] == following
   end
@@ -91,23 +101,49 @@ defmodule Pleroma.ListTest do
     refute list_three in lists
   end
 
-  test "getting onwered lists the user belongs" do
+  test "getting own lists a given user belongs to" do
     owner = insert(:user)
     not_owner = insert(:user)
     member_1 = insert(:user)
     member_2 = insert(:user)
-    {:ok, ownered_list} = Pleroma.List.create("ownered", owner)
-    {:ok, not_ownered_list} = Pleroma.List.create("not ownered", not_owner)
-    {:ok, ownered_list} = Pleroma.List.follow(ownered_list, member_1)
-    {:ok, ownered_list} = Pleroma.List.follow(ownered_list, member_2)
-    {:ok, not_ownered_list} = Pleroma.List.follow(not_ownered_list, member_1)
-    {:ok, not_ownered_list} = Pleroma.List.follow(not_ownered_list, member_2)
-
-    lists_1 = Pleroma.List.get_lists_account_belongs(owner, member_1.id)
-    assert ownered_list in lists_1
-    refute not_ownered_list in lists_1
-    lists_2 = Pleroma.List.get_lists_account_belongs(owner, member_2.id)
-    assert ownered_list in lists_2
-    refute not_ownered_list in lists_2
+    {:ok, owned_list} = Pleroma.List.create("owned", owner)
+    {:ok, not_owned_list} = Pleroma.List.create("not owned", not_owner)
+    {:ok, owned_list} = Pleroma.List.follow(owned_list, member_1)
+    {:ok, owned_list} = Pleroma.List.follow(owned_list, member_2)
+    {:ok, not_owned_list} = Pleroma.List.follow(not_owned_list, member_1)
+    {:ok, not_owned_list} = Pleroma.List.follow(not_owned_list, member_2)
+
+    lists_1 = Pleroma.List.get_lists_account_belongs(owner, member_1)
+    assert owned_list in lists_1
+    refute not_owned_list in lists_1
+    lists_2 = Pleroma.List.get_lists_account_belongs(owner, member_2)
+    assert owned_list in lists_2
+    refute not_owned_list in lists_2
+  end
+
+  test "get by ap_id" do
+    user = insert(:user)
+    {:ok, list} = Pleroma.List.create("foo", user)
+    assert Pleroma.List.get_by_ap_id(list.ap_id) == list
+  end
+
+  test "memberships" do
+    user = insert(:user)
+    member = insert(:user)
+    {:ok, list} = Pleroma.List.create("foo", user)
+    {:ok, list} = Pleroma.List.follow(list, member)
+
+    assert Pleroma.List.memberships(member) == [list.ap_id]
+  end
+
+  test "member?" do
+    user = insert(:user)
+    member = insert(:user)
+
+    {:ok, list} = Pleroma.List.create("foo", user)
+    {:ok, list} = Pleroma.List.follow(list, member)
+
+    assert Pleroma.List.member?(list, member)
+    refute Pleroma.List.member?(list, user)
   end
 end