관리자 흰 화면 진단 보강

This commit is contained in:
Yun Chan 2026-07-03 22:50:14 +09:00
parent e9efaa8031
commit 287029f2a2
6 changed files with 307 additions and 25 deletions

View file

@ -160,6 +160,7 @@ async function mockAdminSession(
}> = {},
options: {
adminUsers?: unknown[];
adminTickets?: unknown;
} = {},
) {
const seenAdminEndpoints = new Set<string>();
@ -268,18 +269,20 @@ async function mockAdminSession(
if (method === "GET" && path.endsWith("/admin/tickets")) {
seenAdminEndpoints.add("tickets");
await fulfillJson({
source: "database",
durable: true,
tickets: [],
summary: {
total: 0,
open_count: 0,
high_priority_count: 0,
stale_count: 0,
by_category: {},
await fulfillJson(
options.adminTickets ?? {
source: "database",
durable: true,
tickets: [],
summary: {
total: 0,
open_count: 0,
high_priority_count: 0,
stale_count: 0,
by_category: {},
},
},
});
);
return;
}
@ -704,6 +707,36 @@ test.describe("admin route guards", () => {
await expect(page.locator(".ad-diagnostic")).toContainText("active_sessions");
await expect(page.getByText("Bad User")).toBeVisible();
});
test("shows ticket payload diagnostics instead of a white page", async ({ page }) => {
await mockAdminSession(
page,
{
user_id: "ticket-diagnostic-admin",
email: "ticket-diagnostic-admin@twentyoz.kr",
display_name: "Ticket Diagnostic Admin",
role: "admin",
admin_access: true,
super_admin: true,
onboarding_completed_at: 1_782_900_000,
},
{
adminTickets: {
source: "database",
durable: true,
tickets: [],
summary: null,
},
},
);
await page.goto("/admin/users");
await expect(page.getByRole("heading", { name: "가입 승인과 권한 관리" })).toBeVisible();
await expect(page.locator(".ad-diagnostic")).toContainText("관리자 데이터 진단");
await expect(page.locator(".ad-diagnostic")).toContainText("admin.tickets.summary");
await expect(page.locator("body")).not.toHaveText(/^$/);
});
});
test.describe("admin route", () => {