Merge branch 'bug/fix-issue-when-updating-event' into 'master'
Fix issue when updating event and introduce background jobs See merge request framasoft/mobilizon!300
This commit is contained in:
@@ -7,7 +7,7 @@ defmodule Mobilizon.EventsTest do
|
||||
alias Mobilizon.Events
|
||||
alias Mobilizon.Events.{Comment, Event, Participant, Session, Tag, TagRelation, Track}
|
||||
alias Mobilizon.Storage.Page
|
||||
alias Mobilizon.Service.Search
|
||||
alias Mobilizon.Service.Workers.BuildSearchWorker
|
||||
|
||||
@event_valid_attrs %{
|
||||
begins_on: "2010-04-17 14:00:00Z",
|
||||
@@ -23,7 +23,7 @@ defmodule Mobilizon.EventsTest do
|
||||
setup do
|
||||
actor = insert(:actor)
|
||||
event = insert(:event, organizer_actor: actor, visibility: :public)
|
||||
Search.insert_search_event(event)
|
||||
BuildSearchWorker.insert_search_event(event)
|
||||
{:ok, actor: actor, event: event}
|
||||
end
|
||||
|
||||
@@ -63,7 +63,7 @@ defmodule Mobilizon.EventsTest do
|
||||
assert title == hd(Events.build_events_for_search(event.title).elements).title
|
||||
|
||||
%Event{} = event2 = insert(:event, title: "Special event")
|
||||
Search.insert_search_event(event2)
|
||||
BuildSearchWorker.insert_search_event(event2)
|
||||
|
||||
assert event2.title ==
|
||||
Events.build_events_for_search("Special").elements |> hd() |> Map.get(:title)
|
||||
@@ -76,7 +76,7 @@ defmodule Mobilizon.EventsTest do
|
||||
tag1 = insert(:tag, title: "coucou")
|
||||
tag2 = insert(:tag, title: "hola")
|
||||
%Event{} = event3 = insert(:event, title: "Nothing like it", tags: [tag1, tag2])
|
||||
Search.insert_search_event(event3)
|
||||
BuildSearchWorker.insert_search_event(event3)
|
||||
|
||||
assert event3.title ==
|
||||
Events.build_events_for_search("hola").elements |> hd() |> Map.get(:title)
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
use MobilizonWeb.ConnCase
|
||||
use Bamboo.Test
|
||||
use Oban.Testing, repo: Mobilizon.Storage.Repo
|
||||
alias Mobilizon.Events
|
||||
alias MobilizonWeb.{AbsintheHelpers, Email}
|
||||
alias Mobilizon.Service.Workers.BuildSearchWorker
|
||||
import Mobilizon.Factory
|
||||
|
||||
@event %{
|
||||
@@ -105,6 +107,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
organizer_actor_id: "#{actor.id}",
|
||||
category: "birthday"
|
||||
) {
|
||||
id,
|
||||
title,
|
||||
uuid
|
||||
}
|
||||
@@ -117,6 +120,8 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
|> post("/api", AbsintheHelpers.mutation_skeleton(mutation))
|
||||
|
||||
assert json_response(res, 200)["data"]["createEvent"]["title"] == "come to my event"
|
||||
{id, ""} = json_response(res, 200)["data"]["createEvent"]["id"] |> Integer.parse()
|
||||
assert_enqueued(worker: BuildSearchWorker, args: %{event_id: id, op: :insert_search_event})
|
||||
end
|
||||
|
||||
test "create_event/3 creates an event and escapes title and description", %{
|
||||
@@ -132,6 +137,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
begins_on: $begins_on,
|
||||
organizer_actor_id: $organizer_actor_id
|
||||
) {
|
||||
id,
|
||||
title,
|
||||
description,
|
||||
uuid
|
||||
@@ -159,6 +165,9 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
|
||||
assert res["data"]["createEvent"]["description"] ==
|
||||
"<b>My description</b> <img src=\"http://placekitten.com/g/200/300\" />"
|
||||
|
||||
{id, ""} = res["data"]["createEvent"]["id"] |> Integer.parse()
|
||||
assert_enqueued(worker: BuildSearchWorker, args: %{event_id: id, op: :insert_search_event})
|
||||
end
|
||||
|
||||
test "create_event/3 creates an event as a draft", %{conn: conn, actor: actor, user: user} do
|
||||
@@ -192,6 +201,12 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
|
||||
event_uuid = json_response(res, 200)["data"]["createEvent"]["uuid"]
|
||||
event_id = json_response(res, 200)["data"]["createEvent"]["id"]
|
||||
{event_id_int, ""} = Integer.parse(event_id)
|
||||
|
||||
refute_enqueued(
|
||||
worker: BuildSearchWorker,
|
||||
args: %{event_id: event_id_int, op: :insert_search_event}
|
||||
)
|
||||
|
||||
query = """
|
||||
{
|
||||
@@ -275,6 +290,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
showEndTime: false
|
||||
}
|
||||
) {
|
||||
id,
|
||||
title,
|
||||
description,
|
||||
begins_on,
|
||||
@@ -318,6 +334,12 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
assert event["options"]["maximumAttendeeCapacity"] == 30
|
||||
assert event["options"]["showRemainingAttendeeCapacity"] == true
|
||||
assert event["options"]["showEndTime"] == false
|
||||
{event_id_int, ""} = Integer.parse(event["id"])
|
||||
|
||||
assert_enqueued(
|
||||
worker: BuildSearchWorker,
|
||||
args: %{event_id: event_id_int, op: :insert_search_event}
|
||||
)
|
||||
end
|
||||
|
||||
test "create_event/3 creates an event with tags", %{conn: conn, actor: actor, user: user} do
|
||||
@@ -675,6 +697,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
locality: "#{address.locality}"
|
||||
}
|
||||
) {
|
||||
id,
|
||||
uuid,
|
||||
url,
|
||||
title,
|
||||
@@ -734,6 +757,13 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
|
||||
%{"slug" => "tag2-updated", "title" => "tag2_updated"}
|
||||
]
|
||||
|
||||
{event_id_int, ""} = Integer.parse(event_res["id"])
|
||||
|
||||
assert_enqueued(
|
||||
worker: BuildSearchWorker,
|
||||
args: %{event_id: event_id_int, op: :update_search_event}
|
||||
)
|
||||
|
||||
{:ok, new_event} = Mobilizon.Events.get_event(event.id)
|
||||
|
||||
assert_delivered_email(
|
||||
|
||||
@@ -474,7 +474,7 @@ defmodule MobilizonWeb.Resolvers.ParticipantResolverTest do
|
||||
query = """
|
||||
{
|
||||
event(uuid: "#{event.uuid}") {
|
||||
participants(page: 1, limit: 1, roles: "participant,moderator,administrator,creator", actorId: "#{
|
||||
participants(page: 2, limit: 1, roles: "participant,moderator,administrator,creator", actorId: "#{
|
||||
actor.id
|
||||
}") {
|
||||
role,
|
||||
@@ -493,11 +493,7 @@ defmodule MobilizonWeb.Resolvers.ParticipantResolverTest do
|
||||
|
||||
sorted_participants =
|
||||
json_response(res, 200)["data"]["event"]["participants"]
|
||||
|> Enum.sort_by(
|
||||
&(&1
|
||||
|> Map.get("actor")
|
||||
|> Map.get("preferredUsername"))
|
||||
)
|
||||
|> Enum.filter(&(&1["role"] == "PARTICIPANT"))
|
||||
|
||||
assert sorted_participants == [
|
||||
%{
|
||||
@@ -511,7 +507,7 @@ defmodule MobilizonWeb.Resolvers.ParticipantResolverTest do
|
||||
query = """
|
||||
{
|
||||
event(uuid: "#{event.uuid}") {
|
||||
participants(page: 2, limit: 1, roles: "participant,moderator,administrator,creator", actorId: "#{
|
||||
participants(page: 1, limit: 1, roles: "participant,moderator,administrator,creator", actorId: "#{
|
||||
actor.id
|
||||
}") {
|
||||
role,
|
||||
@@ -594,10 +590,12 @@ defmodule MobilizonWeb.Resolvers.ParticipantResolverTest do
|
||||
actor_id: not_approved.id
|
||||
})
|
||||
|
||||
rejected = insert(:actor)
|
||||
|
||||
Events.create_participant(%{
|
||||
role: :rejected,
|
||||
event_id: event.id,
|
||||
actor_id: not_approved.id
|
||||
actor_id: rejected.id
|
||||
})
|
||||
|
||||
query = """
|
||||
|
||||
@@ -2,7 +2,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
use MobilizonWeb.ConnCase
|
||||
alias MobilizonWeb.AbsintheHelpers
|
||||
import Mobilizon.Factory
|
||||
alias Mobilizon.Service.Search
|
||||
alias Mobilizon.Service.Workers.BuildSearchWorker
|
||||
|
||||
setup %{conn: conn} do
|
||||
user = insert(:user)
|
||||
@@ -17,7 +17,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
insert(:actor, user: user, preferred_username: "test_person")
|
||||
insert(:actor, type: :Group, preferred_username: "test_group")
|
||||
event = insert(:event, title: "test_event")
|
||||
Search.insert_search_event(event)
|
||||
BuildSearchWorker.insert_search_event(event)
|
||||
|
||||
query = """
|
||||
{
|
||||
@@ -51,7 +51,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
actor = insert(:actor, user: user, preferred_username: "test_person")
|
||||
insert(:actor, type: :Group, preferred_username: "test_group")
|
||||
event = insert(:event, title: "test_event")
|
||||
Search.insert_search_event(event)
|
||||
BuildSearchWorker.insert_search_event(event)
|
||||
|
||||
query = """
|
||||
{
|
||||
@@ -84,7 +84,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
insert(:actor, user: user, preferred_username: "test_person")
|
||||
group = insert(:actor, type: :Group, preferred_username: "test_group")
|
||||
event = insert(:event, title: "test_event")
|
||||
Search.insert_search_event(event)
|
||||
BuildSearchWorker.insert_search_event(event)
|
||||
|
||||
query = """
|
||||
{
|
||||
@@ -118,9 +118,9 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
event1 = insert(:event, title: "Pineapple fashion week")
|
||||
event2 = insert(:event, title: "I love pineAPPLE")
|
||||
event3 = insert(:event, title: "Hello")
|
||||
Search.insert_search_event(event1)
|
||||
Search.insert_search_event(event2)
|
||||
Search.insert_search_event(event3)
|
||||
BuildSearchWorker.insert_search_event(event1)
|
||||
BuildSearchWorker.insert_search_event(event2)
|
||||
BuildSearchWorker.insert_search_event(event3)
|
||||
|
||||
query = """
|
||||
{
|
||||
@@ -161,9 +161,9 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
event1 = insert(:event, title: "Pineapple fashion week")
|
||||
event2 = insert(:event, title: "I love pineAPPLE")
|
||||
event3 = insert(:event, title: "Hello")
|
||||
Search.insert_search_event(event1)
|
||||
Search.insert_search_event(event2)
|
||||
Search.insert_search_event(event3)
|
||||
BuildSearchWorker.insert_search_event(event1)
|
||||
BuildSearchWorker.insert_search_event(event2)
|
||||
BuildSearchWorker.insert_search_event(event3)
|
||||
|
||||
query = """
|
||||
{
|
||||
@@ -198,7 +198,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
insert(:actor, user: user, preferred_username: "person", name: "Torréfaction du Kafé")
|
||||
insert(:actor, type: :Group, preferred_username: "group", name: "Kafé group")
|
||||
event = insert(:event, title: "Tour du monde des Kafés")
|
||||
Search.insert_search_event(event)
|
||||
BuildSearchWorker.insert_search_event(event)
|
||||
|
||||
# Elaborate query
|
||||
query = """
|
||||
@@ -230,7 +230,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
|
||||
insert(:actor, user: user, preferred_username: "person", name: "Torréfaction du Kafé")
|
||||
group = insert(:actor, type: :Group, preferred_username: "group", name: "Kafé group")
|
||||
event = insert(:event, title: "Tour du monde des Kafés")
|
||||
Search.insert_search_event(event)
|
||||
BuildSearchWorker.insert_search_event(event)
|
||||
|
||||
# Elaborate query
|
||||
query = """
|
||||
|
||||
Reference in New Issue
Block a user