안전 이벤트 대시보드 보강

This commit is contained in:
Yun Chan 2026-07-01 12:34:46 +09:00
parent fe2796f05a
commit 51053af536
15 changed files with 1081 additions and 423 deletions

View file

@ -640,16 +640,33 @@ test.describe("teacher console", () => {
await page.getByRole("link", { name: "학생 분석" }).click();
await expect(page).toHaveURL(/\/teach\/analysis$/);
const overviewTable = page.locator('[data-learner-overview-table="true"]');
await expect(overviewTable).toBeVisible();
await expect(page.locator('[data-learner-overview-row="true"]')).toHaveCount(2);
await expect(page.locator('[data-learner-analysis-panel="true"]')).toHaveCount(0);
await page.getByLabel("학습자 검색").fill("사용자 B");
const learnerBRow = page
.locator('[data-learner-overview-row="true"]')
.filter({ hasText: "사용자 B" });
await expect(learnerBRow).toHaveCount(1);
await expect(learnerBRow.getByText(learnerB)).toBeVisible();
await learnerBRow.getByRole("button", { name: "사용자 B 상세 분석 열기" }).click();
await expect(page).toHaveURL(new RegExp(`/teach/analysis\\?learner=${learnerB}$`));
const analysisPanel = page.locator('[data-learner-analysis-panel="true"]');
await expect(analysisPanel).toBeVisible();
await expect(analysisPanel.locator('[data-learner-session-row="true"]')).toHaveCount(7);
await expect(analysisPanel.getByText(`${learnerA}-session-7`)).toBeVisible();
await expect(page.getByText("전체 회기 7건")).toBeVisible();
await page.getByRole("button", { name: "사용자 B 사용자별 분석" }).click();
await expect(analysisPanel.locator('[data-learner-session-row="true"]')).toHaveCount(0);
await analysisPanel.getByRole("tab", { name: /^전체 회기/ }).click();
await expect(analysisPanel.locator('[data-learner-session-row="true"]')).toHaveCount(2);
await expect(analysisPanel.getByText(`${learnerB}-session-2`)).toBeVisible();
await expect(analysisPanel.getByText(`${learnerA}-session-7`)).toHaveCount(0);
await expect(page.getByText("전체 회기 2건")).toBeVisible();
await page.getByRole("button", { name: "전체 목록" }).click();
await expect(page).toHaveURL(/\/teach\/analysis$/);
await expect(page.locator('[data-learner-overview-table="true"]')).toBeVisible();
await expect(page.locator('[data-learner-overview-row="true"]')).toHaveCount(1);
await expectNoHorizontalOverflow(page);
});