fix(backend): IP в аудите, closed_at тикетов и admin_activity в статистике. Refs EventHub/EventHubBack#27 #28 #29
CI / test (push) Successful in 15m13s
Deploy stage (core) / deploy-stage-core (push) Successful in 4m57s

This commit is contained in:
2026-07-13 14:53:51 +03:00
parent 4281342416
commit ff4ab23264
12 changed files with 320 additions and 38 deletions
+15 -10
View File
@@ -15,20 +15,24 @@ setup() ->
{attributes, record_info(fields, user)}, {ram_copies, [node()]}]),
{atomic, ok} = mnesia:create_table(ticket, [
{attributes, record_info(fields, ticket)}, {ram_copies, [node()]}]),
% Создаём админа и обычного пользователя
Admin = #user{id = <<"admin1">>, email = <<"a@a.a">>, password_hash = <<"h">>,
role = admin, status = active,
created_at = calendar:universal_time(), updated_at = calendar:universal_time()},
{atomic, ok} = mnesia:create_table(admin, [
{attributes, record_info(fields, admin)}, {ram_copies, [node()]}]),
Now = calendar:universal_time(),
Admin = #admin{id = <<"admin1">>, email = <<"a@a.a">>, password_hash = <<"h">>,
role = admin, status = active, nickname = <<>>, avatar_url = default,
timezone = <<"UTC">>, language = <<"ru">>, phone = <<>>,
preferences = #{}, last_login = Now, created_at = Now, updated_at = Now},
User = #user{id = <<"user1">>, email = <<"u@u.u">>, password_hash = <<"h">>,
role = user, status = active,
created_at = calendar:universal_time(), updated_at = calendar:universal_time()},
created_at = Now, updated_at = Now},
mnesia:dirty_write(Admin),
mnesia:dirty_write(User),
ok.
cleanup(_) ->
mnesia:delete_table(user),
mnesia:delete_table(ticket),
catch mnesia:delete_table(admin),
catch mnesia:delete_table(user),
catch mnesia:delete_table(ticket),
mnesia:stop().
%% ----------------------------------------------------------------
@@ -49,7 +53,7 @@ logic_ticket_test_() ->
%% --- Вспомогательная функция для создания тикета ---
report(ErrorMsg) ->
logic_ticket:report_error(ErrorMsg, <<"stack">>, #{}).
logic_ticket:report_error(ErrorMsg, <<"stack">>, #{<<"reporter_id">> => <<"user1">>}).
%% --- Тесты ---
@@ -87,13 +91,14 @@ test_assign_ticket() ->
test_resolve_ticket() ->
{ok, Ticket} = report(<<"E4">>),
{ok, Updated} = logic_ticket:resolve_ticket(<<"admin1">>, Ticket#ticket.id, <<"Fixed">>),
?assertEqual(closed, Updated#ticket.status),
?assertEqual(resolved, Updated#ticket.status),
?assertEqual(<<"Fixed">>, Updated#ticket.resolution_note).
test_close_ticket() ->
{ok, Ticket} = report(<<"E5">>),
{ok, Updated} = logic_ticket:close_ticket(<<"admin1">>, Ticket#ticket.id),
?assertEqual(closed, Updated#ticket.status).
?assertEqual(closed, Updated#ticket.status),
?assertNotEqual({{1970, 1, 1}, {0, 0, 0}}, Updated#ticket.closed_at).
test_get_statistics() ->
{ok, _} = report(<<"E6">>),