feat: create default personal calendar on email verification. Refs EventHub/EventHubBack#49
This commit is contained in:
@@ -47,11 +47,27 @@ test() ->
|
||||
#{<<"token">> := AuthToken} = jsx:decode(list_to_binary(LoginBody), [return_maps]),
|
||||
?assert(is_binary(AuthToken)),
|
||||
|
||||
% 6. Повторное использование того же токена – ошибка 404
|
||||
% 6. После активации — дефолтный приватный personal-календарь
|
||||
Calendars = api_test_runner:client_get(<<"/v1/calendars">>, AuthToken),
|
||||
?assertEqual(1, length(Calendars)),
|
||||
[DefaultCal] = Calendars,
|
||||
?assertEqual(<<"personal">>, maps:get(<<"type">>, DefaultCal)),
|
||||
?assertEqual(<<>>, maps:get(<<"short_name">>, DefaultCal)),
|
||||
ExpectedTitle = case string:split(Email, <<"@">>) of
|
||||
[Local, _] when byte_size(Local) > 0 -> Local;
|
||||
_ -> <<"Мой календарь">>
|
||||
end,
|
||||
?assertEqual(ExpectedTitle, maps:get(<<"title">>, DefaultCal)),
|
||||
|
||||
% 7. Повторное использование того же токена – ошибка 404
|
||||
{ok, 404, _, _} = api_test_runner:client_request(post, <<"/v1/verify">>, <<>>,
|
||||
jsx:encode(#{<<"token">> => Token})),
|
||||
|
||||
% 7. Невалидный токен – ошибка 404
|
||||
% 7. Повторное использование того же токена – ошибка 404
|
||||
{ok, 404, _, _} = api_test_runner:client_request(post, <<"/v1/verify">>, <<>>,
|
||||
jsx:encode(#{<<"token">> => Token})),
|
||||
|
||||
% 8. Невалидный токен – ошибка 404
|
||||
{ok, 404, _, _} = api_test_runner:client_request(post, <<"/v1/verify">>, <<>>,
|
||||
jsx:encode(#{<<"token">> => <<"invalid_token">>})),
|
||||
|
||||
|
||||
@@ -30,7 +30,8 @@ logic_calendar_test_() ->
|
||||
{"List calendars test", fun test_list_calendars/0},
|
||||
{"Update calendar test", fun test_update_calendar/0},
|
||||
{"Delete calendar test", fun test_delete_calendar/0},
|
||||
{"Access control test", fun test_access_control/0}
|
||||
{"Access control test", fun test_access_control/0},
|
||||
{"Ensure default calendar test", fun test_ensure_default_calendar/0}
|
||||
]}.
|
||||
|
||||
create_test_user() ->
|
||||
@@ -41,6 +42,7 @@ create_test_user() ->
|
||||
password_hash = <<"hash">>,
|
||||
role = user,
|
||||
status = active,
|
||||
nickname = <<>>,
|
||||
created_at = calendar:universal_time(),
|
||||
updated_at = calendar:universal_time()
|
||||
},
|
||||
@@ -121,4 +123,18 @@ test_access_control() ->
|
||||
|
||||
{ok, Frozen} = core_calendar:update(CommercialCalendar#calendar.id, [{status, frozen}]),
|
||||
?assertNot(logic_calendar:can_access(OtherId, Frozen)),
|
||||
?assertNot(logic_calendar:can_access(OwnerId, Frozen)).
|
||||
?assertNot(logic_calendar:can_access(OwnerId, Frozen)).
|
||||
|
||||
test_ensure_default_calendar() ->
|
||||
UserId = create_test_user(),
|
||||
ok = logic_calendar:ensure_default_calendar(UserId),
|
||||
{ok, Calendars} = logic_calendar:list_calendars(UserId),
|
||||
?assertEqual(1, length(Calendars)),
|
||||
Cal = hd(Calendars),
|
||||
?assertEqual(personal, Cal#calendar.type),
|
||||
?assertEqual(<<>>, Cal#calendar.short_name),
|
||||
?assertEqual(active, Cal#calendar.status),
|
||||
?assert(byte_size(Cal#calendar.title) > 0),
|
||||
ok = logic_calendar:ensure_default_calendar(UserId),
|
||||
{ok, Calendars2} = logic_calendar:list_calendars(UserId),
|
||||
?assertEqual(1, length(Calendars2)).
|
||||
Reference in New Issue
Block a user