Рефакторинг обработчиков. Часть 3 #21
This commit is contained in:
51
test/api/users/user_calendars_tests.erl
Normal file
51
test/api/users/user_calendars_tests.erl
Normal file
@@ -0,0 +1,51 @@
|
||||
%%%-------------------------------------------------------------------
|
||||
%%% @doc Тесты клиентского API для управления календарями.
|
||||
%%% Покрывает POST /v1/calendars (создание) и GET /v1/calendars (список).
|
||||
%%% @end
|
||||
%%%-------------------------------------------------------------------
|
||||
-module(user_calendars_tests).
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
|
||||
-export([test/0]).
|
||||
|
||||
-spec test() -> ok.
|
||||
test() ->
|
||||
ct:pal("=== User Calendars Tests ==="),
|
||||
Token = api_test_runner:get_user_token(),
|
||||
|
||||
% Создаём один календарь для тестов
|
||||
#{<<"id">> := CalId} = api_test_runner:client_post(<<"/v1/calendars">>, Token,
|
||||
#{title => <<"TestCal">>, type => <<"personal">>}),
|
||||
|
||||
test_create_calendar(Token),
|
||||
test_list_calendars(Token),
|
||||
test_list_calendars_unauthorized(),
|
||||
|
||||
ct:pal("=== All user calendars tests passed ==="),
|
||||
ok.
|
||||
|
||||
test_create_calendar(Token) ->
|
||||
ct:pal(" TEST: Create a new calendar"),
|
||||
Resp = api_test_runner:client_request(post, <<"/v1/calendars">>, Token,
|
||||
jsx:encode(#{title => <<"NewCal">>, type => <<"personal">>})),
|
||||
{ok, 201, _, Body} = Resp,
|
||||
#{<<"id">> := Id, <<"title">> := Title} = jsx:decode(list_to_binary(Body), [return_maps]),
|
||||
?assert(is_binary(Id)),
|
||||
?assertEqual(<<"NewCal">>, Title),
|
||||
ct:pal(" OK: created calendar ~s", [Id]).
|
||||
|
||||
test_list_calendars(Token) ->
|
||||
ct:pal(" TEST: List user calendars"),
|
||||
Calendars = api_test_runner:client_get(<<"/v1/calendars">>, Token),
|
||||
?assert(is_list(Calendars)),
|
||||
?assert(length(Calendars) >= 1),
|
||||
First = hd(Calendars),
|
||||
?assert(maps:is_key(<<"id">>, First)),
|
||||
?assert(maps:is_key(<<"title">>, First)),
|
||||
ct:pal(" OK: ~p calendars found", [length(Calendars)]).
|
||||
|
||||
test_list_calendars_unauthorized() ->
|
||||
ct:pal(" TEST: List calendars without token (401)"),
|
||||
Resp = api_test_runner:client_request(get, <<"/v1/calendars">>, <<>>),
|
||||
?assertMatch({ok, 401, _, _}, Resp),
|
||||
ct:pal(" OK: got 401").
|
||||
Reference in New Issue
Block a user