Fix MRF policies to also work with Update
[akkoma] / test / pleroma / user_search_test.exs
index de1df2e9c362264295c492b44426e285d29934bd..2af19b6de35a4a08624cd23eab193f395a73e6ca 100644 (file)
@@ -1,9 +1,8 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.UserSearchTest do
-  alias Pleroma.Repo
   alias Pleroma.User
   use Pleroma.DataCase
 
@@ -18,7 +17,7 @@ defmodule Pleroma.UserSearchTest do
     setup do: clear_config([:instance, :limit_to_local_content])
 
     test "returns a resolved user as the first result" do
-      Pleroma.Config.put([:instance, :limit_to_local_content], false)
+      clear_config([:instance, :limit_to_local_content], false)
       user = insert(:user, %{nickname: "no_relation", ap_id: "https://lain.com/users/lain"})
       _user = insert(:user, %{nickname: "com_user"})
 
@@ -65,6 +64,14 @@ defmodule Pleroma.UserSearchTest do
       assert found_user.id == user.id
     end
 
+    test "excludes deactivated users from results" do
+      user = insert(:user, %{nickname: "john t1000"})
+      insert(:user, %{is_active: false, nickname: "john t800"})
+
+      [found_user] = User.search("john")
+      assert found_user.id == user.id
+    end
+
     # Note: as in Mastodon, `is_discoverable` doesn't anyhow relate to user searchability
     test "includes non-discoverable users in results" do
       insert(:user, %{nickname: "john 3000", is_discoverable: false})
@@ -151,8 +158,8 @@ defmodule Pleroma.UserSearchTest do
       follower = insert(:user, %{name: "Doe"})
       friend = insert(:user, %{name: "Doe"})
 
-      {:ok, follower} = User.follow(follower, u1)
-      {:ok, u1} = User.follow(u1, friend)
+      {:ok, follower, u1} = User.follow(follower, u1)
+      {:ok, u1, friend} = User.follow(u1, friend)
 
       assert [friend.id, follower.id, u2.id] --
                Enum.map(User.search("doe", resolve: false, for_user: u1), & &1.id) == []
@@ -165,9 +172,9 @@ defmodule Pleroma.UserSearchTest do
       following_jimi = insert(:user, %{name: "Lizz Wright"})
       follower_lizz = insert(:user, %{name: "Jimi"})
 
-      {:ok, lizz} = User.follow(lizz, following_lizz)
-      {:ok, _jimi} = User.follow(jimi, following_jimi)
-      {:ok, _follower_lizz} = User.follow(follower_lizz, lizz)
+      {:ok, lizz, following_lizz} = User.follow(lizz, following_lizz)
+      {:ok, _jimi, _following_jimi} = User.follow(jimi, following_jimi)
+      {:ok, _follower_lizz, _lizz} = User.follow(follower_lizz, lizz)
 
       assert Enum.map(User.search("jimi", following: true, for_user: lizz), & &1.id) == [
                following_lizz.id
@@ -199,7 +206,7 @@ defmodule Pleroma.UserSearchTest do
     end
 
     test "find only local users for authenticated users when `limit_to_local_content` is `:all`" do
-      Pleroma.Config.put([:instance, :limit_to_local_content], :all)
+      clear_config([:instance, :limit_to_local_content], :all)
 
       %{id: id} = insert(:user, %{name: "lain"})
       insert(:user, %{name: "ebn", nickname: "lain@mastodon.social", local: false})
@@ -209,7 +216,7 @@ defmodule Pleroma.UserSearchTest do
     end
 
     test "find all users for unauthenticated users when `limit_to_local_content` is `false`" do
-      Pleroma.Config.put([:instance, :limit_to_local_content], false)
+      clear_config([:instance, :limit_to_local_content], false)
 
       u1 = insert(:user, %{name: "lain"})
       u2 = insert(:user, %{name: "ebn", nickname: "lain@mastodon.social", local: false})