+# 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)
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)
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
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