관리자 워크스페이스 접근 확장과 소유자 결정 7건 확정 반영
- 관리자(role=admin)가 학습자·교수자·관리자 워크스페이스를 모두 접근하도록 can_access_role/require_role와 프론트 auth 헬퍼·Sidebar 내비를 정리하고 admin 워크스페이스 내비 E2E를 추가. - 소유자 결정 7건 전건 확정(2026-06-30)을 SSOT 대시보드·백로그에 반영하고 결정 필요 7→0으로 동기화. SSOT drift 게이트 기대 카운트도 갱신. - 확정된 H1 평가설계(κ≥0.70·ICC≥0.75·환각률≤0.03·t-검정 α=0.05·무작위 배정)를 approved-export κ 게이트(checker·dataset_export·recursive export)와 KPI 측정계획·export manifest 문서에 반영. 검증: npm run typecheck, npm run check:api-types, 백엔드 pytest 290 passed, admin 내비 E2E 1 passed, 레이아웃 시각게이트 9/9, session-layout 4 passed, SSOT drift 게이트 PASS.
This commit is contained in:
parent
1274ba9ccc
commit
4e6b0045e3
17 changed files with 110 additions and 53 deletions
|
|
@ -554,6 +554,33 @@ test.describe("admin route", () => {
|
|||
});
|
||||
});
|
||||
|
||||
test("shows every workspace entry in the admin navigation", async ({ page }) => {
|
||||
test.setTimeout(60_000);
|
||||
await signInAsAdmin(page);
|
||||
|
||||
await page.goto("/admin");
|
||||
const nav = page.locator(".vg-nav");
|
||||
await expect(nav.getByRole("link", { name: "운영 홈" })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "사용자" })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "권한" })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "티켓" })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "교수 콘솔" })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "페르소나" })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "학습자 홈" })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "학습", exact: true })).toBeVisible();
|
||||
await expect(nav.getByRole("link", { name: "기록" })).toBeVisible();
|
||||
|
||||
await nav.getByRole("link", { name: "교수 콘솔" }).click();
|
||||
await expect(page).toHaveURL(/\/teach$/);
|
||||
await expect(page.locator(".pf-root")).toBeVisible();
|
||||
|
||||
await page.goto("/admin");
|
||||
await page.locator(".vg-nav").getByRole("link", { name: "학습자 홈" }).click();
|
||||
await expect(page).toHaveURL(/\/learn$/);
|
||||
await expect(page.getByRole("heading", { name: "오늘 이어갈 회기를 먼저 봅니다." })).toBeVisible();
|
||||
await expectNoHorizontalOverflow(page);
|
||||
});
|
||||
|
||||
test("allows an admin to manage real server-known users", async ({ page }, testInfo) => {
|
||||
test.setTimeout(60_000);
|
||||
await signInAsAdmin(page);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue