1
0
Fork 0
mirror of https://framagit.org/framasoft/mobilizon.git synced 2024-12-27 18:31:07 +00:00
mobilizon/test/graphql/api/search_test.exs

79 lines
2.4 KiB
Elixir
Raw Normal View History

2020-01-26 20:11:16 +00:00
defmodule Mobilizon.GraphQL.API.SearchTest do
use ExUnit.Case, async: false
2019-09-22 14:26:23 +00:00
import Mock
alias Mobilizon.Actors
alias Mobilizon.Actors.Actor
2019-09-22 14:26:23 +00:00
alias Mobilizon.Events
alias Mobilizon.Events.Event
2019-09-08 22:52:49 +00:00
alias Mobilizon.Storage.Page
2020-01-26 20:11:16 +00:00
alias Mobilizon.GraphQL.API.Search
2020-01-22 01:14:42 +00:00
2020-01-26 20:11:16 +00:00
alias Mobilizon.Federation.ActivityPub
alias Mobilizon.Federation.ActivityPub.Actor, as: ActivityPubActor
test "search an user by username" do
with_mock ActivityPubActor,
find_or_make_actor_from_nickname: fn "toto@domain.tld" ->
{:ok, %Actor{id: 42, type: :Group}}
end do
assert {:ok, %Page{total: 1, elements: [%Actor{id: 42, type: :Group}]}} ==
Search.search_actors(%{term: "toto@domain.tld"}, 1, 10, :Group)
assert_called(ActivityPubActor.find_or_make_actor_from_nickname("toto@domain.tld"))
end
end
test "search something by URL" do
with_mock ActivityPub,
fetch_object_from_url: fn "https://social.tcit.fr/users/tcit" -> {:ok, %Actor{id: 42}} end do
2019-09-08 22:52:49 +00:00
assert {:ok, %Page{total: 1, elements: [%Actor{id: 42}]}} ==
Search.search_actors(%{term: "https://social.tcit.fr/users/tcit"}, 1, 10, :Person)
assert_called(ActivityPub.fetch_object_from_url("https://social.tcit.fr/users/tcit"))
end
end
test "search actors" do
with_mock Actors,
search_actors: fn "toto", _options, 1, 10 ->
2019-09-08 22:52:49 +00:00
%Page{total: 1, elements: [%Actor{id: 42}]}
end do
assert {:ok, %{total: 1, elements: [%Actor{id: 42}]}} =
Search.search_actors(%{term: "toto"}, 1, 10, :Person)
assert_called(
Actors.search_actors(
"toto",
[
actor_type: :Person,
radius: nil,
location: nil,
bbox: nil,
minimum_visibility: :public,
current_actor_id: nil,
exclude_my_groups: false,
exclude_stale_actors: true
],
1,
10
)
)
end
end
test "search events" do
with_mock Events,
build_events_for_search: fn %{term: "toto"}, 1, 10 ->
2019-09-08 22:52:49 +00:00
%Page{total: 1, elements: [%Event{title: "super toto event"}]}
end do
assert {:ok, %{total: 1, elements: [%Event{title: "super toto event"}]}} =
Search.search_events(%{term: "toto"}, 1, 10)
assert_called(Events.build_events_for_search(%{term: "toto"}, 1, 10))
end
end
end