feat: improve Korean neural voice quality for v0.1.1
This commit is contained in:
+11
-26
@@ -13,10 +13,7 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
page.on("request", (request) => {
|
||||
if (!request.url().startsWith("http://127.0.0.1:4173"))
|
||||
external.push(request.url());
|
||||
if (
|
||||
request.url().endsWith(".wav") &&
|
||||
!request.url().endsWith("intro.wav")
|
||||
)
|
||||
if (request.url().endsWith(".wav") && !request.url().endsWith("intro.wav"))
|
||||
audioPath = new URL(request.url()).pathname;
|
||||
});
|
||||
page.on("pageerror", (error) => errors.push(error.message));
|
||||
@@ -32,19 +29,13 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
).toBe(true);
|
||||
await page.evaluate(() => window.scrollTo(0, 0));
|
||||
await page.screenshot({
|
||||
path: `.agent/evidence/release-${info.project.name}-home.png`,
|
||||
path: `.agent/evidence-v0.1.1/${info.project.name}-home.png`,
|
||||
fullPage: true,
|
||||
});
|
||||
expect((await new AxeBuilder({ page }).analyze()).violations).toEqual(
|
||||
[],
|
||||
);
|
||||
expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]);
|
||||
await page.emulateMedia({ reducedMotion: "reduce" });
|
||||
await page
|
||||
.getByRole("button", { name: "게임 시작 · 소리 듣기" })
|
||||
.click();
|
||||
await expect(
|
||||
page.getByRole("button", { name: /듣는 중/ }),
|
||||
).toBeDisabled();
|
||||
await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click();
|
||||
await expect(page.getByRole("button", { name: /듣는 중/ })).toBeDisabled();
|
||||
await expect(page.locator(".sound-wave.active i").first()).toHaveCSS(
|
||||
"animation-name",
|
||||
"none",
|
||||
@@ -76,12 +67,10 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
).toBe(true);
|
||||
await page.evaluate(() => window.scrollTo(0, 0));
|
||||
await page.screenshot({
|
||||
path: `.agent/evidence/release-${info.project.name}-game.png`,
|
||||
path: `.agent/evidence-v0.1.1/${info.project.name}-game.png`,
|
||||
fullPage: true,
|
||||
});
|
||||
expect(
|
||||
(await new AxeBuilder({ page }).analyze()).violations,
|
||||
).toEqual([]);
|
||||
expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]);
|
||||
await page.getByRole("button", { name: /다시 듣기/ }).click();
|
||||
await expect(target).toBeVisible();
|
||||
}
|
||||
@@ -110,12 +99,10 @@ test("실제 오디오로 혼합 모드 완주·레이아웃·접근성·외부
|
||||
).toBe(true);
|
||||
await page.evaluate(() => window.scrollTo(0, 0));
|
||||
await page.screenshot({
|
||||
path: `.agent/evidence/release-${info.project.name}-results.png`,
|
||||
path: `.agent/evidence-v0.1.1/${info.project.name}-results.png`,
|
||||
fullPage: true,
|
||||
});
|
||||
expect((await new AxeBuilder({ page }).analyze()).violations).toEqual(
|
||||
[],
|
||||
);
|
||||
expect((await new AxeBuilder({ page }).analyze()).violations).toEqual([]);
|
||||
await page.getByRole("button", { name: "다시 시작" }).click();
|
||||
await expect(
|
||||
page.getByRole("button", { name: "게임 시작 · 소리 듣기" }),
|
||||
@@ -129,15 +116,13 @@ test("오디오 HTTP 실패를 화면에 표시하고 재시도한다", async ({
|
||||
route.fulfill({ status: 404, body: "missing" }),
|
||||
);
|
||||
await page.goto("/");
|
||||
await page
|
||||
.getByRole("button", { name: "게임 시작 · 소리 듣기" })
|
||||
.click();
|
||||
await page.getByRole("button", { name: "게임 시작 · 소리 듣기" }).click();
|
||||
await expect(page.getByRole("alert")).toContainText(
|
||||
"소리를 재생하지 못했어요",
|
||||
);
|
||||
await page.unroute("**/audio/*.wav");
|
||||
await page.getByRole("button", { name: "다시 시도" }).click();
|
||||
// 재시도는 안내부터 재생한다. 최대 8.1205 + 10.1725 + 시작·전환 0.4초에
|
||||
// 재시도는 안내부터 재생한다. v0.1.1 최대 7.056 + 11.256 + 시작·전환 0.4초에
|
||||
// 로드·디코드·병렬 브라우저 스케줄링 여유를 더해 이 assertion만 30초로 제한한다.
|
||||
await expect(page.getByRole("group", { name: "답 선택" })).toBeVisible({
|
||||
timeout: 30_000,
|
||||
|
||||
Reference in New Issue
Block a user