feat(admin): 完善审计访问上下文与后台布局

This commit is contained in:
Cheng Zhou
2026-07-09 17:10:42 +08:00
parent 1dc10f569d
commit 0bbc125806
20 changed files with 776 additions and 112 deletions
@@ -67,6 +67,30 @@ describe("audit logs access", () => {
expect(source).not.toContain("limit: 2000");
});
it("surfaces request source, IP and location filters for audit troubleshooting", () => {
const source = readAuditLogsView();
expect(source).toContain("filters.clientType");
expect(source).toContain("filters.ipKeyword");
expect(source).toContain("TEXT.modules.adminAuditLogs.filterSource");
expect(source).toContain("TEXT.modules.adminAuditLogs.filterIpLocation");
expect(source).toContain("TEXT.modules.adminAuditLogs.columns.source");
expect(source).toContain("formatClientIpLine(scope.row)");
expect(source).toContain("client_ip: ipKeyword && isIpSearchToken(ipKeyword) ? ipKeyword : undefined");
});
it("includes request source context in audit exports", () => {
const columns = readFileSync(resolve(__dirname, "../../audit/export/auditExportColumns.ts"), "utf8");
const formatter = readFileSync(resolve(__dirname, "../../audit/export/auditExportFormatter.ts"), "utf8");
expect(columns).toContain('key: "ipLocation"');
expect(columns).toContain('key: "clientSource"');
expect(columns).toContain('key: "userAgent"');
expect(formatter).toContain("ip: event.clientIp || \"\"");
expect(formatter).toContain("clientSource: event.clientSourceLabel || \"\"");
expect(formatter).toContain("userAgent: event.userAgent || \"\"");
});
it("keeps the audit table compact by removing the duplicate content column", () => {
const source = readAuditLogsView();