Merge branch 'feature/related_events' into 'master'

Feature/related events

See merge request framasoft/mobilizon!113
This commit is contained in:
Thomas Citharel
2019-04-23 11:31:20 +02:00
13 changed files with 267 additions and 41 deletions

View File

@@ -20,7 +20,7 @@ defmodule Mobilizon.EventsTest do
setup do
actor = insert(:actor)
event = insert(:event, organizer_actor: actor)
event = insert(:event, organizer_actor: actor, visibility: :public)
{:ok, actor: actor, event: event}
end

View File

@@ -322,5 +322,59 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
assert hd(json_response(res, 200)["errors"])["message"] =~ "cannot delete"
end
test "list_related_events/3 should give related events", %{
conn: conn,
actor: actor
} do
tag1 = insert(:tag, title: "Elixir", slug: "elixir")
tag2 = insert(:tag, title: "PostgreSQL", slug: "postgresql")
event = insert(:event, title: "Initial event", organizer_actor: actor, tags: [tag1, tag2])
event2 =
insert(:event,
title: "Event from same actor",
organizer_actor: actor,
visibility: :public,
begins_on: Timex.shift(DateTime.utc_now(), days: 3)
)
event3 =
insert(:event,
title: "Event with same tags",
tags: [tag1, tag2],
visibility: :public,
begins_on: Timex.shift(DateTime.utc_now(), days: 3)
)
query = """
{
event(uuid: "#{event.uuid}") {
uuid,
title,
tags {
id
},
related_events {
uuid,
title,
tags {
id
}
}
}
}
"""
res =
conn
|> get("/api", AbsintheHelpers.query_skeleton(query, "event"))
assert hd(json_response(res, 200)["data"]["event"]["related_events"])["uuid"] == event2.uuid
assert hd(tl(json_response(res, 200)["data"]["event"]["related_events"]))["uuid"] ==
event3.uuid
end
end
end

View File

@@ -95,7 +95,7 @@ defmodule Mobilizon.Factory do
def event_factory do
actor = build(:actor)
start = Timex.now()
start = Timex.shift(DateTime.utc_now(), hours: 2)
uuid = Ecto.UUID.generate()
%Mobilizon.Events.Event{
@@ -108,6 +108,7 @@ defmodule Mobilizon.Factory do
category: sequence("something"),
physical_address: build(:address),
visibility: :public,
tags: build_list(3, :tag),
url: "#{actor.url}/#{uuid}",
uuid: uuid
}