44 lines
1.2 KiB
Elixir
44 lines
1.2 KiB
Elixir
defmodule Mobilizon.Service.Workers.EventDelayedNotificationWorkerTest do
|
|
@moduledoc """
|
|
Test the event delayed notification worker
|
|
"""
|
|
|
|
alias Mobilizon.Events.Event
|
|
alias Mobilizon.Service.Workers.EventDelayedNotificationWorker
|
|
alias Oban.Job
|
|
|
|
use Mobilizon.DataCase
|
|
import Mobilizon.Factory
|
|
|
|
test "Run notify of new event" do
|
|
group = insert(:group)
|
|
event = insert(:event, attributed_to: group)
|
|
|
|
assert :ok ==
|
|
EventDelayedNotificationWorker.perform(%Job{
|
|
args: %{"action" => "notify_of_new_event", "event_uuid" => event.uuid}
|
|
})
|
|
end
|
|
|
|
test "Run notify of updates to event" do
|
|
group = insert(:group)
|
|
event = insert(:event, attributed_to: group)
|
|
old_event = %Event{event | title: "Previous title"}
|
|
|
|
old_event =
|
|
for {key, val} <- Map.from_struct(old_event), into: %{}, do: {Atom.to_string(key), val}
|
|
|
|
changes = %{"title" => "New title"}
|
|
|
|
assert {:ok, :ok} ==
|
|
EventDelayedNotificationWorker.perform(%Job{
|
|
args: %{
|
|
"action" => "notify_of_event_update",
|
|
"event_uuid" => event.uuid,
|
|
"old_event" => old_event,
|
|
"changes" => changes
|
|
}
|
|
})
|
|
end
|
|
end
|