Stage 3.4

This commit is contained in:
2026-04-20 16:40:44 +03:00
parent 42a047a938
commit b24cbc97f3
25 changed files with 2520 additions and 123 deletions

View File

@@ -2,7 +2,6 @@
-include_lib("eunit/include/eunit.hrl").
-include("records.hrl").
%% Setup и cleanup
setup() ->
mnesia:start(),
mnesia:create_table(calendar, [
@@ -16,7 +15,6 @@ cleanup(_) ->
mnesia:stop(),
ok.
%% Группа тестов
core_calendar_test_() ->
{foreach,
fun setup/0,
@@ -29,18 +27,19 @@ core_calendar_test_() ->
{"Delete calendar test", fun test_delete_calendar/0}
]}.
%% Тесты
test_create_calendar() ->
OwnerId = <<"owner123">>,
Title = <<"Test Calendar">>,
Description = <<"Test Description">>,
Confirmation = auto,
{ok, Calendar} = core_calendar:create(OwnerId, Title, Description),
{ok, Calendar} = core_calendar:create(OwnerId, Title, Description, Confirmation),
?assertEqual(OwnerId, Calendar#calendar.owner_id),
?assertEqual(Title, Calendar#calendar.title),
?assertEqual(Description, Calendar#calendar.description),
?assertEqual(personal, Calendar#calendar.type),
?assertEqual(Confirmation, Calendar#calendar.confirmation),
?assertEqual(active, Calendar#calendar.status),
?assert(is_binary(Calendar#calendar.id)),
?assert(Calendar#calendar.created_at =/= undefined),
@@ -48,7 +47,7 @@ test_create_calendar() ->
test_get_by_id() ->
OwnerId = <<"owner123">>,
{ok, Calendar} = core_calendar:create(OwnerId, <<"Test">>, <<"Desc">>),
{ok, Calendar} = core_calendar:create(OwnerId, <<"Test">>, <<"Desc">>, manual),
{ok, Found} = core_calendar:get_by_id(Calendar#calendar.id),
?assertEqual(Calendar#calendar.id, Found#calendar.id),
@@ -59,33 +58,33 @@ test_list_by_owner() ->
OwnerId = <<"owner123">>,
OtherOwner = <<"other456">>,
{ok, _} = core_calendar:create(OwnerId, <<"Calendar 1">>, <<"">>),
{ok, _} = core_calendar:create(OwnerId, <<"Calendar 2">>, <<"">>),
{ok, _} = core_calendar:create(OtherOwner, <<"Other Calendar">>, <<"">>),
{ok, _} = core_calendar:create(OwnerId, <<"Calendar 1">>, <<"">>, manual),
{ok, _} = core_calendar:create(OwnerId, <<"Calendar 2">>, <<"">>, auto),
{ok, _} = core_calendar:create(OtherOwner, <<"Other Calendar">>, <<"">>, manual),
{ok, Calendars} = core_calendar:list_by_owner(OwnerId),
?assertEqual(2, length(Calendars)).
test_update_calendar() ->
OwnerId = <<"owner123">>,
{ok, Calendar} = core_calendar:create(OwnerId, <<"Original">>, <<"">>),
{ok, Calendar} = core_calendar:create(OwnerId, <<"Original">>, <<"">>, manual),
timer:sleep(2000),
Updates = [{title, <<"Updated">>}, {description, <<"New Desc">>}],
Updates = [{title, <<"Updated">>}, {description, <<"New Desc">>}, {confirmation, auto}],
{ok, Updated} = core_calendar:update(Calendar#calendar.id, Updates),
?assertEqual(<<"Updated">>, Updated#calendar.title),
?assertEqual(<<"New Desc">>, Updated#calendar.description),
?assertEqual(auto, Updated#calendar.confirmation),
?assert(Updated#calendar.updated_at > Calendar#calendar.updated_at),
{error, not_found} = core_calendar:update(<<"nonexistent">>, Updates).
test_delete_calendar() ->
OwnerId = <<"owner123">>,
{ok, Calendar} = core_calendar:create(OwnerId, <<"Test">>, <<"">>),
{ok, Calendar} = core_calendar:create(OwnerId, <<"Test">>, <<"">>, manual),
{ok, Deleted} = core_calendar:delete(Calendar#calendar.id),
?assertEqual(deleted, Deleted#calendar.status),
% Удалённый календарь не возвращается в списке активных
{ok, ActiveCalendars} = core_calendar:list_by_owner(OwnerId),
?assertEqual(0, length(ActiveCalendars)).