feat(admin): analytics redis cache, shared ops health, ticket queue clarity
CI / check (push) Successful in 29s
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 1m25s
CI / deploy (push) Failing after 10s

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
SimoandCursor committed 2026-07-30 19:57:00 +02:00
1 parent 474de0717b
commit 58fae1f90f
38 files changed
+348 -245

No files matched your search

+21 -17
View File
@@ -1,5 +1,5 @@
import { existsSync, readdirSync, readFileSync } from "node:fs";
import { join, relative } from "node:path";
import { join } from "node:path";
import { describe, expect, it } from "vitest";
const ROUTES: Array<[string, string]> = [
@@ -135,22 +135,26 @@ describe("admin operations route contract", () => {
expect(offenders).toEqual([]);
});
it("has no requireStaff left in admin pages", () => {
const root = "src/app/admin";
const offenders: string[] = [];
function walk(dir: string) {
for (const entry of readdirSync(dir, { withFileTypes: true })) {
const full = join(dir, entry.name);
if (entry.isDirectory()) walk(full);
else if (entry.name === "page.tsx") {
const source = readFileSync(full, "utf8");
if (/await requireStaff\(/.test(source)) {
offenders.push(relative(process.cwd(), full).replaceAll("\\", "/"));
}
}
}
it("caches analytics full-scans via redisCache", () => {
for (const path of [
"src/app/admin/analytics/page.tsx",
"src/app/admin/analytics/activity/page.tsx",
"src/app/admin/analytics/economy/page.tsx",
]) {
expect(readFileSync(path, "utf8"), path).toContain("redisCache");
}
walk(root);
expect(offenders).toEqual([]);
});
it("shares ops health probe across CC / DevOps / API", () => {
expect(existsSync("src/lib/admin/ops-health.ts")).toBe(true);
expect(
readFileSync("src/app/admin/commandocentrum/page.tsx", "utf8"),
).toContain("fetchOpsHealth");
expect(readFileSync("src/app/admin/devops/page.tsx", "utf8")).toContain(
"fetchOpsHealth",
);
expect(
readFileSync("src/app/api/admin/devops/health/route.ts", "utf8"),
).toContain("fetchOpsHealth");
});
});