Skip to content

Commit

Permalink
add persist_event tests
Browse files Browse the repository at this point in the history
plus cleanup, restructure
  • Loading branch information
electronicbites committed Jun 11, 2024
1 parent 2b488c3 commit 6b5ccb7
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 10 deletions.
60 changes: 50 additions & 10 deletions test/radiator/event_store_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,65 @@ defmodule Radiator.EventStoreTest do
use Radiator.DataCase

alias Radiator.EventStore
alias Radiator.EventStore.EventData

describe "event_data" do
alias Radiator.EventStore.EventData
alias Radiator.AccountsFixtures
import Radiator.EventStoreFixtures

alias Radiator.AccountsFixtures
import Radiator.EventStoreFixtures
describe "persist_event/1" do
test "persists node_inserted_event" do
user = AccountsFixtures.user_fixture()
event = node_inserted_event_fixture(user_id: user.id)

@invalid_attrs %{data: nil, uuid: nil, event_type: nil}
num_events = EventStore.list_event_data() |> length()
EventStore.persist_event(event)
assert EventStore.list_event_data() |> length() == num_events + 1
end

test "list_event_data/0 returns all event_data" do
test "persists node_content_changed_event" do
user = AccountsFixtures.user_fixture()
event = node_content_changed_event_fixture(user_id: user.id)

num_events = EventStore.list_event_data() |> length()
EventStore.persist_event(event)
assert EventStore.list_event_data() |> length() == num_events + 1
end

test "persists node_deleted_event" do
user = AccountsFixtures.user_fixture()
event = node_deleted_event_fixture(user_id: user.id)

num_events = EventStore.list_event_data() |> length()
EventStore.persist_event(event)
assert EventStore.list_event_data() |> length() == num_events + 1
end

test "persists node_moved_event" do
user = AccountsFixtures.user_fixture()
event = node_moved_event_fixture(user_id: user.id)

num_events = EventStore.list_event_data() |> length()
EventStore.persist_event(event)
assert EventStore.list_event_data() |> length() == num_events + 1
end
end

describe "list_event_data/0" do
test "returns all event_data" do
event = event_data_fixture()
assert EventStore.list_event_data() == [event]
end
end

test "get_event!/1 returns the event_data with given id" do
describe "get_event_data!/1" do
test "returns the event_data with given id" do
event = event_data_fixture()
assert EventStore.get_event_data!(event.uuid) == event
end
end

test "create_event/1 with valid data creates a event" do
describe "create_event_data/1" do
test " with valid data creates a event" do
user = AccountsFixtures.user_fixture()

valid_attrs = %{
Expand All @@ -38,8 +77,9 @@ defmodule Radiator.EventStoreTest do
assert event.user_id == valid_attrs.user_id
end

test "create_event/1 with invalid data returns error changeset" do
assert {:error, %Ecto.Changeset{}} = EventStore.create_event_data(@invalid_attrs)
test "with invalid data returns error changeset" do
invalid_attrs = %{data: nil, uuid: nil, event_type: nil}
assert {:error, %Ecto.Changeset{}} = EventStore.create_event_data(invalid_attrs)
end
end
end
54 changes: 54 additions & 0 deletions test/support/fixtures/event_store_fixtures.ex
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ defmodule Radiator.EventStoreFixtures do
"""
alias Radiator.AccountsFixtures

alias Radiator.Outline.Event.{
NodeContentChangedEvent,
NodeDeletedEvent,
NodeInsertedEvent,
NodeMovedEvent
}

alias Radiator.OutlineFixtures

@doc """
Generate a event data.
"""
Expand All @@ -23,4 +32,49 @@ defmodule Radiator.EventStoreFixtures do

event
end

def node_inserted_event_fixture(user_id: user_id) do
node = OutlineFixtures.node_fixture()

%NodeInsertedEvent{
node: node,
user_id: user_id,
event_id: Ecto.UUID.generate()
}
end

def node_content_changed_event_fixture(user_id: user_id) do
node = OutlineFixtures.node_fixture()

%NodeContentChangedEvent{
node_id: node.uuid,
content: node.content,
user_id: user_id,
event_id: Ecto.UUID.generate()
}
end

def node_deleted_event_fixture(user_id: user_id) do
node = OutlineFixtures.node_fixture()

%NodeDeletedEvent{
node_id: node.uuid,
user_id: user_id,
event_id: Ecto.UUID.generate()
}
end

def node_moved_event_fixture(user_id: user_id) do
node = OutlineFixtures.node_fixture()
parent = OutlineFixtures.node_fixture(episode_id: node.episode_id)
prev = OutlineFixtures.node_fixture(episode_id: node.episode_id)

%NodeMovedEvent{
node_id: node.uuid,
user_id: user_id,
parent_id: parent.uuid,
prev_id: prev.uuid,
event_id: Ecto.UUID.generate()
}
end
end

0 comments on commit 6b5ccb7

Please sign in to comment.