all developments of milestone 1
This commit is contained in:
@@ -2,13 +2,24 @@ defmodule Mobilizon.GraphQL.Resolvers.ConfigTest do
|
||||
use Mobilizon.Web.ConnCase
|
||||
alias Mobilizon.Actors
|
||||
alias Mobilizon.Actors.Actor
|
||||
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.GraphQL.AbsintheHelpers
|
||||
|
||||
describe "Resolver: Get config" do
|
||||
test "get_config/3 returns the instance config", context do
|
||||
Cachex.clear("full_config")
|
||||
Mobilizon.Config.clear_config_cache()
|
||||
Config.put([:instance, :name], "Test instance")
|
||||
Config.put([:instance, :registrations_open], true)
|
||||
Config.put([:instance, :demo], false)
|
||||
Config.put([:instance, :duration_of_long_event], 0)
|
||||
|
||||
Config.put(
|
||||
[:instance, :description],
|
||||
"Change this to a proper description of your instance"
|
||||
)
|
||||
|
||||
Config.put([:instance, :federating], true)
|
||||
|
||||
query = """
|
||||
{
|
||||
@@ -48,5 +59,99 @@ defmodule Mobilizon.GraphQL.Resolvers.ConfigTest do
|
||||
{:ok, %Actor{id: actor_id}} = Actors.get_or_create_internal_actor("anonymous")
|
||||
assert res["data"]["config"]["anonymous"]["actor_id"] == to_string(actor_id)
|
||||
end
|
||||
|
||||
test "get_config/3 returns the instance config default", context do
|
||||
Cachex.clear("full_config")
|
||||
Mobilizon.Config.clear_config_cache()
|
||||
Config.put([:instance, :name], "Test instance")
|
||||
Config.put([:instance, :registrations_open], true)
|
||||
Config.put([:instance, :demo], false)
|
||||
Config.put([:instance, :duration_of_long_event], 0)
|
||||
|
||||
Config.put(
|
||||
[:instance, :description],
|
||||
"Change this to a proper description of your instance"
|
||||
)
|
||||
|
||||
Config.put([:instance, :federating], true)
|
||||
|
||||
query = """
|
||||
{
|
||||
config {
|
||||
name,
|
||||
registrationsOpen,
|
||||
registrations_allowlist,
|
||||
contact,
|
||||
demo_mode,
|
||||
long_events,
|
||||
description,
|
||||
long_description,
|
||||
slogan,
|
||||
languages,
|
||||
timezones,
|
||||
rules,
|
||||
version,
|
||||
federating
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
res =
|
||||
context.conn
|
||||
|> AbsintheHelpers.graphql_query(query: query)
|
||||
|
||||
assert res["data"]["config"]["name"] == "Test instance"
|
||||
assert res["data"]["config"]["registrationsOpen"] == true
|
||||
assert res["data"]["config"]["registrations_allowlist"] == false
|
||||
assert res["data"]["config"]["contact"] == nil
|
||||
assert res["data"]["config"]["demo_mode"] == false
|
||||
assert res["data"]["config"]["long_events"] == false
|
||||
|
||||
assert res["data"]["config"]["description"] ==
|
||||
"Change this to a proper description of your instance"
|
||||
|
||||
assert res["data"]["config"]["long_description"] == nil
|
||||
assert res["data"]["config"]["slogan"] == nil
|
||||
assert res["data"]["config"]["languages"] == []
|
||||
assert length(res["data"]["config"]["timezones"]) == 596
|
||||
assert res["data"]["config"]["rules"] == nil
|
||||
assert String.slice(res["data"]["config"]["version"], 0, 5) == "5.0.0"
|
||||
assert res["data"]["config"]["federating"] == true
|
||||
end
|
||||
|
||||
test "get_config/3 returns the instance config changed", context do
|
||||
Cachex.clear("full_config")
|
||||
Mobilizon.Config.clear_config_cache()
|
||||
Config.put([:instance, :name], "My instance")
|
||||
Config.put([:instance, :registrations_open], false)
|
||||
Config.put([:instance, :demo], true)
|
||||
Config.put([:instance, :duration_of_long_event], 30)
|
||||
Config.put([:instance, :description], "My description")
|
||||
Config.put([:instance, :federating], false)
|
||||
|
||||
query = """
|
||||
{
|
||||
config {
|
||||
name,
|
||||
registrationsOpen,
|
||||
demo_mode,
|
||||
long_events,
|
||||
description,
|
||||
federating
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
res =
|
||||
context.conn
|
||||
|> AbsintheHelpers.graphql_query(query: query)
|
||||
|
||||
assert res["data"]["config"]["name"] == "My instance"
|
||||
assert res["data"]["config"]["registrationsOpen"] == false
|
||||
assert res["data"]["config"]["demo_mode"] == true
|
||||
assert res["data"]["config"]["long_events"] == true
|
||||
assert res["data"]["config"]["description"] == "My description"
|
||||
assert res["data"]["config"]["federating"] == false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,11 +4,11 @@ defmodule Mobilizon.GraphQL.Resolvers.SearchTest do
|
||||
import Mobilizon.Factory
|
||||
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.Events.Event
|
||||
alias Mobilizon.Federation.ActivityPub.Relay
|
||||
alias Mobilizon.Service.Workers
|
||||
|
||||
alias Mobilizon.GraphQL.AbsintheHelpers
|
||||
alias Mobilizon.Service.Workers
|
||||
|
||||
setup %{conn: conn} do
|
||||
user = insert(:user)
|
||||
@@ -18,8 +18,8 @@ defmodule Mobilizon.GraphQL.Resolvers.SearchTest do
|
||||
|
||||
describe "search events/3" do
|
||||
@search_events_query """
|
||||
query SearchEvents($location: String, $radius: Float, $tags: String, $term: String, $beginsOn: DateTime, $endsOn: DateTime, $searchTarget: SearchTarget) {
|
||||
searchEvents(location: $location, radius: $radius, tags: $tags, term: $term, beginsOn: $beginsOn, endsOn: $endsOn, searchTarget: $searchTarget) {
|
||||
query SearchEvents($location: String, $radius: Float, $tags: String, $term: String, $beginsOn: DateTime, $endsOn: DateTime, $longevents:Boolean, $searchTarget: SearchTarget) {
|
||||
searchEvents(location: $location, radius: $radius, tags: $tags, term: $term, beginsOn: $beginsOn, endsOn: $endsOn, longevents: $longevents, searchTarget: $searchTarget) {
|
||||
total,
|
||||
elements {
|
||||
id
|
||||
@@ -149,6 +149,7 @@ defmodule Mobilizon.GraphQL.Resolvers.SearchTest do
|
||||
end
|
||||
|
||||
test "finds events by begins_on and ends_on", %{conn: conn} do
|
||||
Config.put([:instance, :duration_of_long_event], 0)
|
||||
now = DateTime.utc_now()
|
||||
|
||||
# TODO
|
||||
@@ -183,6 +184,214 @@ defmodule Mobilizon.GraphQL.Resolvers.SearchTest do
|
||||
event.uuid
|
||||
end
|
||||
|
||||
test "finds 4 events : long event disabled", %{conn: conn} do
|
||||
Config.put([:instance, :duration_of_long_event], 0)
|
||||
now = DateTime.utc_now()
|
||||
|
||||
event1 =
|
||||
insert(:event,
|
||||
title: "Cours 10j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 14)
|
||||
)
|
||||
|
||||
event2 =
|
||||
insert(:event,
|
||||
title: "Long 29j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 33)
|
||||
)
|
||||
|
||||
event3 =
|
||||
insert(:event,
|
||||
title: "Long 31j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 35)
|
||||
)
|
||||
|
||||
event4 =
|
||||
insert(:event,
|
||||
title: "Long 40j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 44)
|
||||
)
|
||||
|
||||
Workers.BuildSearch.insert_search_event(event1)
|
||||
Workers.BuildSearch.insert_search_event(event2)
|
||||
Workers.BuildSearch.insert_search_event(event3)
|
||||
Workers.BuildSearch.insert_search_event(event4)
|
||||
|
||||
res =
|
||||
AbsintheHelpers.graphql_query(conn,
|
||||
query: @search_events_query,
|
||||
variables: %{longevents: false}
|
||||
)
|
||||
|
||||
assert res["errors"] == nil
|
||||
assert res["data"]["searchEvents"]["total"] == 4
|
||||
|
||||
assert res["data"]["searchEvents"]["elements"]
|
||||
|> Enum.map(& &1["uuid"]) == [
|
||||
event1.uuid,
|
||||
event2.uuid,
|
||||
event3.uuid,
|
||||
event4.uuid
|
||||
]
|
||||
|
||||
res =
|
||||
AbsintheHelpers.graphql_query(conn,
|
||||
query: @search_events_query,
|
||||
variables: %{longevents: true}
|
||||
)
|
||||
|
||||
assert res["errors"] == nil
|
||||
assert res["data"]["searchEvents"]["total"] == 4
|
||||
|
||||
assert res["data"]["searchEvents"]["elements"]
|
||||
|> Enum.map(& &1["uuid"]) == [
|
||||
event1.uuid,
|
||||
event2.uuid,
|
||||
event3.uuid,
|
||||
event4.uuid
|
||||
]
|
||||
end
|
||||
|
||||
test "finds 4 events : long event enabled 30 days", %{conn: conn} do
|
||||
Config.put([:instance, :duration_of_long_event], 30)
|
||||
now = DateTime.utc_now()
|
||||
|
||||
event1 =
|
||||
insert(:event,
|
||||
title: "Cours 10j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 15)
|
||||
)
|
||||
|
||||
event2 =
|
||||
insert(:event,
|
||||
title: "Long 30j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 35)
|
||||
)
|
||||
|
||||
event3 =
|
||||
insert(:event,
|
||||
title: "Long 31j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 36)
|
||||
)
|
||||
|
||||
event4 =
|
||||
insert(:event,
|
||||
title: "Long 40j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 45)
|
||||
)
|
||||
|
||||
Workers.BuildSearch.insert_search_event(event1)
|
||||
Workers.BuildSearch.insert_search_event(event2)
|
||||
Workers.BuildSearch.insert_search_event(event3)
|
||||
Workers.BuildSearch.insert_search_event(event4)
|
||||
|
||||
res =
|
||||
AbsintheHelpers.graphql_query(conn,
|
||||
query: @search_events_query,
|
||||
variables: %{longevents: false}
|
||||
)
|
||||
|
||||
assert res["errors"] == nil
|
||||
assert res["data"]["searchEvents"]["total"] == 2
|
||||
|
||||
assert res["data"]["searchEvents"]["elements"]
|
||||
|> Enum.map(& &1["uuid"]) == [
|
||||
event1.uuid,
|
||||
event2.uuid
|
||||
]
|
||||
|
||||
res =
|
||||
AbsintheHelpers.graphql_query(conn,
|
||||
query: @search_events_query,
|
||||
variables: %{longevents: true}
|
||||
)
|
||||
|
||||
assert res["errors"] == nil
|
||||
assert res["data"]["searchEvents"]["total"] == 2
|
||||
|
||||
assert res["data"]["searchEvents"]["elements"]
|
||||
|> Enum.map(& &1["uuid"]) == [
|
||||
event3.uuid,
|
||||
event4.uuid
|
||||
]
|
||||
end
|
||||
|
||||
test "finds 4 events : long event enabled 15 days", %{conn: conn} do
|
||||
Config.put([:instance, :duration_of_long_event], 15)
|
||||
now = DateTime.utc_now()
|
||||
|
||||
event1 =
|
||||
insert(:event,
|
||||
title: "Cours 10j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 15)
|
||||
)
|
||||
|
||||
event2 =
|
||||
insert(:event,
|
||||
title: "Long 30j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 35)
|
||||
)
|
||||
|
||||
event3 =
|
||||
insert(:event,
|
||||
title: "Long 31j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 36)
|
||||
)
|
||||
|
||||
event4 =
|
||||
insert(:event,
|
||||
title: "Long 40j",
|
||||
begins_on: DateTime.add(now, 3600 * 24 * 5),
|
||||
ends_on: DateTime.add(now, 3600 * 24 * 45)
|
||||
)
|
||||
|
||||
Workers.BuildSearch.insert_search_event(event1)
|
||||
Workers.BuildSearch.insert_search_event(event2)
|
||||
Workers.BuildSearch.insert_search_event(event3)
|
||||
Workers.BuildSearch.insert_search_event(event4)
|
||||
|
||||
res =
|
||||
AbsintheHelpers.graphql_query(conn,
|
||||
query: @search_events_query,
|
||||
variables: %{longevents: false}
|
||||
)
|
||||
|
||||
assert res["errors"] == nil
|
||||
assert res["data"]["searchEvents"]["total"] == 1
|
||||
|
||||
assert res["data"]["searchEvents"]["elements"]
|
||||
|> Enum.map(& &1["uuid"]) == [
|
||||
event1.uuid
|
||||
]
|
||||
|
||||
res =
|
||||
AbsintheHelpers.graphql_query(conn,
|
||||
query: @search_events_query,
|
||||
variables: %{longevents: true}
|
||||
)
|
||||
|
||||
assert res["errors"] == nil
|
||||
assert res["data"]["searchEvents"]["total"] == 3
|
||||
|
||||
assert res["data"]["searchEvents"]["elements"]
|
||||
|> Enum.map(& &1["uuid"]) == [
|
||||
event2.uuid,
|
||||
event3.uuid,
|
||||
event4.uuid
|
||||
]
|
||||
end
|
||||
|
||||
test "finds events with multiple criteria", %{conn: conn} do
|
||||
{lon, lat} = {45.75, 4.85}
|
||||
point = %Geo.Point{coordinates: {lon, lat}, srid: 4326}
|
||||
|
||||
Reference in New Issue
Block a user