From a1a25029da74949a79c73d400b6f2bc0bf1dc01a Mon Sep 17 00:00:00 2001 From: Lain Soykaf Date: Sun, 12 Nov 2023 16:19:54 +0400 Subject: B DatabaseSearch: Fix local-only search. --- test/pleroma/search/database_search_test.ex | 62 ---------------------------- test/pleroma/search/database_search_test.exs | 62 ++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 62 deletions(-) delete mode 100644 test/pleroma/search/database_search_test.ex create mode 100644 test/pleroma/search/database_search_test.exs (limited to 'test') diff --git a/test/pleroma/search/database_search_test.ex b/test/pleroma/search/database_search_test.ex deleted file mode 100644 index c123d0b84..000000000 --- a/test/pleroma/search/database_search_test.ex +++ /dev/null @@ -1,62 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2022 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Search.DatabaseSearchTest do - alias Pleroma.Search.DatabaseSearch - alias Pleroma.Web.CommonAPI - import Pleroma.Factory - - use Pleroma.DataCase, async: true - - test "it finds something" do - user = insert(:user) - {:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"}) - - [result] = DatabaseSearch.search(nil, "wednesday") - - assert result.id == post.id - end - - test "it finds local-only posts for authenticated users" do - user = insert(:user) - reader = insert(:user) - {:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes", visibility: "local"}) - - [result] = Search.search(reader, "wednesday") - - assert result.id == post.id - end - - test "it does not find local-only posts for anonymous users" do - user = insert(:user) - {:ok, _post} = CommonAPI.post(user, %{status: "it's wednesday my dudes", visibility: "local"}) - - assert [] = Search.search(nil, "wednesday") - end - - test "using plainto_tsquery on postgres < 11" do - old_version = :persistent_term.get({Pleroma.Repo, :postgres_version}) - :persistent_term.put({Pleroma.Repo, :postgres_version}, 10.0) - on_exit(fn -> :persistent_term.put({Pleroma.Repo, :postgres_version}, old_version) end) - - user = insert(:user) - {:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"}) - {:ok, _post2} = CommonAPI.post(user, %{status: "it's wednesday my bros"}) - - # plainto doesn't understand complex queries - assert [result] = DatabaseSearch.search(nil, "wednesday -dudes") - - assert result.id == post.id - end - - test "using websearch_to_tsquery" do - user = insert(:user) - {:ok, _post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"}) - {:ok, other_post} = CommonAPI.post(user, %{status: "it's wednesday my bros"}) - - assert [result] = DatabaseSearch.search(nil, "wednesday -dudes") - - assert result.id == other_post.id - end -end diff --git a/test/pleroma/search/database_search_test.exs b/test/pleroma/search/database_search_test.exs new file mode 100644 index 000000000..6c47ff425 --- /dev/null +++ b/test/pleroma/search/database_search_test.exs @@ -0,0 +1,62 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2022 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Search.DatabaseSearchTest do + alias Pleroma.Search.DatabaseSearch, as: Search + alias Pleroma.Web.CommonAPI + import Pleroma.Factory + + use Pleroma.DataCase, async: true + + test "it finds something" do + user = insert(:user) + {:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"}) + + [result] = Search.search(nil, "wednesday") + + assert result.id == post.id + end + + test "it finds local-only posts for authenticated users" do + user = insert(:user) + reader = insert(:user) + {:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes", visibility: "local"}) + + [result] = Search.search(reader, "wednesday") + + assert result.id == post.id + end + + test "it does not find local-only posts for anonymous users" do + user = insert(:user) + {:ok, _post} = CommonAPI.post(user, %{status: "it's wednesday my dudes", visibility: "local"}) + + assert [] = Search.search(nil, "wednesday") + end + + test "using plainto_tsquery on postgres < 11" do + old_version = :persistent_term.get({Pleroma.Repo, :postgres_version}) + :persistent_term.put({Pleroma.Repo, :postgres_version}, 10.0) + on_exit(fn -> :persistent_term.put({Pleroma.Repo, :postgres_version}, old_version) end) + + user = insert(:user) + {:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"}) + {:ok, _post2} = CommonAPI.post(user, %{status: "it's wednesday my bros"}) + + # plainto doesn't understand complex queries + assert [result] = Search.search(nil, "wednesday -dudes") + + assert result.id == post.id + end + + test "using websearch_to_tsquery" do + user = insert(:user) + {:ok, _post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"}) + {:ok, other_post} = CommonAPI.post(user, %{status: "it's wednesday my bros"}) + + assert [result] = Search.search(nil, "wednesday -dudes") + + assert result.id == other_post.id + end +end -- cgit v1.2.3