회기 후속 검증과 표시 경계 보강

This commit is contained in:
Yun Chan 2026-08-10 01:55:21 +09:00
parent 4cd354881f
commit aa81af2958
10 changed files with 70 additions and 21 deletions

View file

@ -238,7 +238,7 @@ test.describe("returned-practice browser-only DB closed loop", () => {
const firstButton = card.getByRole("button", {
name: isDesktop(testInfo)
? "이번 회기를 독립 관찰로 반영"
: "이번 회기를 독립 관찰로 반영",
: "반영 상태 다시 확인",
});
const postUrl = `/api/practice/${encodeURIComponent(

View file

@ -625,6 +625,18 @@ test.describe("session review", () => {
};
response.summary =
"평가 AI는 [NAME]가 [ORG]에서 보인 조심스러운 반응을 분석했습니다.";
response.goodMoments[0] = {
...response.goodMoments[0],
title: "[NAME]가 보인 강점",
body: "[ORG] 장면에서 내담자 [NAME]을 기다렸습니다.",
};
response.growthPoints[0] = {
...response.growthPoints[0],
title: "[NAME] 반응을 서두르지 않기",
body: "[ORG] 장면에서 내담자 [NAME]을 한 번 더 확인합니다.",
};
response.nextLine = "[NAME]의 말을 [ORG] 맥락에서 다시 확인할까요?";
response.clientFeedback = "[NAME] 이야기를 [ORG]에서 안전하게 다뤘어요.";
if (!response.caseWorksheet) {
throw new Error("filled review fixture must include a worksheet");
}
@ -661,8 +673,25 @@ test.describe("session review", () => {
);
await expect(summary).not.toContainText("[NAME]");
await expect(summary).not.toContainText("[ORG]");
await openReviewTab(page, "피드백");
const feedback = page.locator("#sr-panel-feedback");
await expect(feedback).toContainText("익명 내담자가 보인 강점");
await expect(feedback).toContainText("소속 기관 장면에서 내담자 반응을 기다렸습니다.");
await expect(feedback).toContainText(
"익명 내담자의 말을 소속 기관 맥락에서 다시 확인할까요?",
);
await expect(feedback).not.toContainText("[NAME]");
await expect(feedback).not.toContainText("[ORG]");
await openReviewTab(page, "워크시트");
await expect(page.locator(".sr-ws-evidence").filter({ hasText: "[NAME]" })).toBeVisible();
const worksheetPanel = page.locator("#sr-panel-worksheet");
const worksheetEvidence = worksheetPanel.locator(".sr-ws-evidence").filter({
hasText: "저는 익명 내담자이고 소속 기관에서 상담받고 있어요.",
});
await expect(worksheetEvidence).toContainText(
"저는 익명 내담자이고 소속 기관에서 상담받고 있어요.",
);
await expect(worksheetPanel).not.toContainText("[NAME]");
await expect(worksheetPanel).not.toContainText("[ORG]");
});
test("stores learner pre/post pilot evidence without effect claims", async ({ page }) => {