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
+18
View File
@@ -42,6 +42,7 @@ test() ->
% ── Основные тесты ──
test_list_audit(SuperToken),
test_list_admin_forbidden(AdminToken),
test_login_audit_ip(SuperToken),
% ── Фильтрация ──
test_filter_audit_by_admin_id(SuperToken, AdminId),
@@ -85,6 +86,23 @@ test_list_admin_forbidden(Token) ->
?assertMatch({ok, 403, _, _}, Resp),
ct:pal(" OK: got 403").
%% @doc Логин с X-Forwarded-For записывает IP клиента в аудит.
test_login_audit_ip(Token) ->
ct:pal(" TEST: Login audit stores X-Forwarded-For IP"),
Email = api_test_runner:admin_super_email(),
Password = api_test_runner:admin_super_password(),
Body = jsx:encode(#{<<"email">> => Email, <<"password">> => Password}),
{ok, 200, _, _} = api_test_runner:admin_request(
post, <<"/v1/admin/login">>, <<>>, Body,
[{"X-Forwarded-For", "203.0.113.99"}]
),
Records = api_test_runner:admin_get(<<"/v1/admin/audit?action=login">>, Token),
Forwarded = [R || R <- Records, maps:get(<<"ip">>, R) =:= <<"203.0.113.99">>],
?assert(length(Forwarded) >= 1),
Login = hd(Forwarded),
?assertEqual(<<"203.0.113.99">>, maps:get(<<"ip">>, Login)),
ct:pal(" OK: ip=~s", [maps:get(<<"ip">>, Login)]).
%% ── Фильтрация ──
%% @doc Фильтрация по admin_id.