feat: release Find-Word v0.2.3
This commit is contained in:
+12
-11
@@ -41,8 +41,8 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click();
|
||||
await expect.poll(() => audioUrls.length).toBe(2);
|
||||
expect(audioUrls.map((url) => url.searchParams.get("v"))).toEqual([
|
||||
"0.1.1",
|
||||
"0.1.1",
|
||||
"0.2.3",
|
||||
"0.2.3",
|
||||
]);
|
||||
await expect(page.getByRole("button", { name: /듣는 중/ })).toBeDisabled();
|
||||
await expect(page.locator(".sound-wave.active i").first()).toHaveCSS(
|
||||
@@ -50,14 +50,14 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
"none",
|
||||
);
|
||||
await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible();
|
||||
for (let i = 0; i < 10; i++) {
|
||||
for (let i = 0; i < 3; i++) {
|
||||
if (i) await page.getByRole("button", { name: /문장 듣기/ }).click();
|
||||
const target =
|
||||
i % 2
|
||||
? page.getByRole("textbox", { name: "들은 단어" })
|
||||
: page.getByRole("group", { name: "답 선택" });
|
||||
await expect(target).toBeVisible();
|
||||
// 열 가지 질문 모두 실제 렌더링을 거쳐 어절 보존과 패널 내 표시를 검증한다.
|
||||
// 세 문항 모두 실제 렌더링을 거쳐 어절 보존과 패널 내 표시를 검증한다.
|
||||
const heading = page.locator(".question-panel h2");
|
||||
await expect(heading).toHaveCSS("word-break", "keep-all");
|
||||
expect(
|
||||
@@ -97,7 +97,7 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
page.getByRole("heading", { name: "정답이에요!" }),
|
||||
).toBeVisible();
|
||||
await page
|
||||
.getByRole("button", { name: i === 9 ? /결과 보기/ : /다음 문제/ })
|
||||
.getByRole("button", { name: i === 2 ? /결과 보기/ : /다음 문제/ })
|
||||
.click();
|
||||
}
|
||||
await expect(page.getByText("100%")).toBeVisible();
|
||||
@@ -112,16 +112,16 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
fullPage: true,
|
||||
});
|
||||
expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]);
|
||||
await page.getByRole("button", { name: "다시 시작" }).click();
|
||||
await page.getByRole("button", { name: "처음 화면으로" }).click();
|
||||
await expect(
|
||||
page.getByRole("button", { name: "게임 시작 · 소리 듣기" }),
|
||||
).toBeVisible();
|
||||
expect(new Set(audioUrls.map((url) => url.searchParams.get("v")))).toEqual(
|
||||
new Set(["0.1.1"]),
|
||||
new Set(["0.2.3"]),
|
||||
);
|
||||
expect(
|
||||
audioUrls.filter((url) => url.pathname !== "/audio/intro.wav"),
|
||||
).toHaveLength(11);
|
||||
).toHaveLength(4);
|
||||
expect(external).toEqual([]);
|
||||
expect(errors).toEqual([]);
|
||||
});
|
||||
@@ -150,7 +150,7 @@ for (const failed of ["intro", "target"]) {
|
||||
"소리를 재생하지 못했어요",
|
||||
);
|
||||
expect(missing).toHaveLength(1);
|
||||
expect(new URL(missing[0]!).searchParams.get("v")).toBe("0.1.1");
|
||||
expect(new URL(missing[0]!).searchParams.get("v")).toBe("0.2.3");
|
||||
expect(audioUrls).toHaveLength(2);
|
||||
await page.unroute(matchesFailure);
|
||||
await page.getByRole("button", { name: "다시 시도" }).click();
|
||||
@@ -162,7 +162,7 @@ for (const failed of ["intro", "target"]) {
|
||||
expect(audioUrls.slice(2).sort()).toEqual(audioUrls.slice(0, 2).sort());
|
||||
expect(
|
||||
new Set(audioUrls.map((url) => new URL(url).searchParams.get("v"))),
|
||||
).toEqual(new Set(["0.1.1"]));
|
||||
).toEqual(new Set(["0.2.3"]));
|
||||
const targetPath = audioUrls
|
||||
.map((url) => new URL(url).pathname)
|
||||
.find((path) => path !== "/audio/intro.wav")!;
|
||||
@@ -173,7 +173,8 @@ for (const failed of ["intro", "target"]) {
|
||||
await expect(
|
||||
page.getByRole("heading", { name: "정답이에요!" }),
|
||||
).toBeVisible();
|
||||
await page.getByRole("button", { name: "처음으로" }).click();
|
||||
await page.getByRole("button", { name: "문제 풀이 종료" }).click();
|
||||
await page.getByRole("button", { name: "처음 화면으로" }).click();
|
||||
await expect(
|
||||
page.getByRole("button", { name: "게임 시작 · 소리 듣기" }),
|
||||
).toBeFocused();
|
||||
|
||||
Reference in New Issue
Block a user