+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 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)
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
assert owned_list in lists_2
refute not_owned_list in lists_2
end
+
+ test "get ap_id by user nickname and list id" do
+ nickname = "foo"
+ list_id = 42
+
+ expected = Pleroma.Web.Endpoint.url() <> "/users/#{nickname}/lists/#{list_id}"
+
+ assert Pleroma.List.ap_id(%Pleroma.User{nickname: nickname}, list_id) == expected
+ assert Pleroma.List.ap_id({nickname, list_id}) == expected
+ end
+
+ test "get by ap_id" do
+ user = insert(:user)
+ {:ok, list} = Pleroma.List.create("foo", user)
+ ap_id = Pleroma.List.ap_id(user, list.id)
+
+ assert Pleroma.List.get_by_ap_id(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)
+
+ list_ap_id = Pleroma.List.ap_id(user, list.id)
+
+ assert Pleroma.List.memberships(member) == [list_ap_id]
+ end
end