From f376e79fc82155527d24d20d272cb645926f1996 Mon Sep 17 00:00:00 2001 From: wewewe-ok Date: Sun, 14 Jan 2024 12:43:32 +0900 Subject: [PATCH 1/5] =?UTF-8?q?lab=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB?= =?UTF-8?q?=E3=81=AE=E6=9B=B8=E3=81=8D=E5=87=BA=E3=81=97=E3=81=AB=E9=96=A2?= =?UTF-8?q?=E3=81=99=E3=82=8Be2e=E3=83=86=E3=82=B9=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit リファクタリング リファクタリング リファクタリング --- ...3\201\215\345\207\272\343\201\227.spec.ts" | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 "tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" diff --git "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" new file mode 100644 index 0000000000..890098b4d5 --- /dev/null +++ "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" @@ -0,0 +1,66 @@ +import { test, expect, Download, Page } from "@playwright/test"; + +import { gotoHome, navigateToMain, toggleSetting } from "../navigators"; + +test.beforeEach(gotoHome); + +async function commonAction( + page: Page, + toggleCheck: boolean, + testText: string +) { + if (toggleCheck) { + await toggleSetting(page, "labファイルを書き出し"); + } + await page.locator(".audio-cell input").first().fill(testText); + await page.getByRole("button", { name: "ファイル" }).click(); + await page.getByText("音声を繋げて書き出し").click(); +} + +/** + * 一定時間の間でダウンロードを行う。 + * 一定時間を超えた場合は、ダウンロードを終了 + */ +async function downloadAction(page: Page, timeout: number) { + const downloads: string[] = []; + for (let _ = 0; _ < 2; _++) { + const downloadPromise = page.waitForEvent("download"); + const timeoutPromise = new Promise((resolve, reject) => + setTimeout(() => { + try { + resolve(null); + } catch (error) { + reject(error); + } + }, timeout) + ); + + const result = await Promise.race([downloadPromise, timeoutPromise]); + if (result instanceof Error) { + throw result; + } else { + if (result == null) { + continue; + } + const File: string = ((await result) as Download).suggestedFilename(); + downloads.push(File); + } + } + return downloads; +} + +test("labファイルの生成", async ({ page }) => { + // labファイルを生成しない + await navigateToMain(page); + const DownloadLab = true; + await commonAction(page, DownloadLab, "おはようございます"); + const downloads = await downloadAction(page, 6100); + expect(downloads.length).toBe(1); + + // labファイルを生成する + const notDownloadLab = false; + await commonAction(page, notDownloadLab, ""); + const downloads2 = await downloadAction(page, 6000); + expect(downloads2.length).toBe(2); + expect(downloads2[0]).toBe(downloads[0]); +}); From 1f90316faef1779da2aedcb6d63c54df63f9b681 Mon Sep 17 00:00:00 2001 From: wewewe-ok Date: Sun, 14 Jan 2024 19:05:39 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF?= =?UTF-8?q?=E3=82=BF=E3=83=AA=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6\233\270\343\201\215\345\207\272\343\201\227.spec.ts" | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" index 890098b4d5..6a84c8d4f3 100644 --- "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" +++ "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" @@ -52,14 +52,14 @@ async function downloadAction(page: Page, timeout: number) { test("labファイルの生成", async ({ page }) => { // labファイルを生成しない await navigateToMain(page); - const DownloadLab = true; - await commonAction(page, DownloadLab, "おはようございます"); + const notDownloadLab = false; + await commonAction(page, notDownloadLab, "おはようございます"); const downloads = await downloadAction(page, 6100); expect(downloads.length).toBe(1); // labファイルを生成する - const notDownloadLab = false; - await commonAction(page, notDownloadLab, ""); + const DownloadLab = true; + await commonAction(page, DownloadLab, ""); const downloads2 = await downloadAction(page, 6000); expect(downloads2.length).toBe(2); expect(downloads2[0]).toBe(downloads[0]); From 20cb1aacbe6f92ebcfbc9baf8871e9f56b50a087 Mon Sep 17 00:00:00 2001 From: wewewe-ok Date: Sat, 27 Jan 2024 20:49:23 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=81=A8=E3=83=86=E3=82=B9=E3=83=88=E3=82=B1=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=81=AE=E8=BF=BD=E5=8A=A0=E3=80=81=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3\201\215\345\207\272\343\201\227.spec.ts" | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" index 6a84c8d4f3..45ef87d1cb 100644 --- "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" +++ "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" @@ -49,18 +49,20 @@ async function downloadAction(page: Page, timeout: number) { return downloads; } -test("labファイルの生成", async ({ page }) => { +test("「labファイルを書き出し」のトグルがオンの場合のみ、labファイルが書き出される", async ({ + page, +}) => { // labファイルを生成しない await navigateToMain(page); - const notDownloadLab = false; - await commonAction(page, notDownloadLab, "おはようございます"); - const downloads = await downloadAction(page, 6100); - expect(downloads.length).toBe(1); + await commonAction(page, false, "おはようございます"); + const downloadWav = await downloadAction(page, 5100); // labファイル生成時より長く待つ(ダウンロード漏れがないことを保証したい) + await expect(downloadWav.length).toBe(1); + await expect(downloadWav[0]).toBe("おはようございます.wav"); // labファイルを生成する - const DownloadLab = true; - await commonAction(page, DownloadLab, ""); - const downloads2 = await downloadAction(page, 6000); - expect(downloads2.length).toBe(2); - expect(downloads2[0]).toBe(downloads[0]); + await commonAction(page, true, ""); // おはようございます」がすでに入力されているためから文字列にする + const downloads = await downloadAction(page, 5000); + await expect(downloads.length).toBe(2); + await expect(downloads[0]).toBe("おはようございます.wav"); + await expect(downloads[1]).toBe("おはようございます.lab"); }); From a23a3cdfc142e11b9d81c9dc58546b8924d274f8 Mon Sep 17 00:00:00 2001 From: wewewe-ok Date: Sat, 27 Jan 2024 22:40:18 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" index 45ef87d1cb..a9e08ebc5f 100644 --- "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" +++ "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" @@ -55,7 +55,7 @@ test("「labファイルを書き出し」のトグルがオンの場合のみ // labファイルを生成しない await navigateToMain(page); await commonAction(page, false, "おはようございます"); - const downloadWav = await downloadAction(page, 5100); // labファイル生成時より長く待つ(ダウンロード漏れがないことを保証したい) + const downloadWav = await downloadAction(page, 5100); // 「おはようございます」が既に入力されているため、空文字列にする await expect(downloadWav.length).toBe(1); await expect(downloadWav[0]).toBe("おはようございます.wav"); From ce56cd7a1c963b0be7f2e0d2a5b457729db1a0a8 Mon Sep 17 00:00:00 2001 From: wewewe-ok Date: Sat, 27 Jan 2024 22:43:51 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E2=86=91=E4=BF=AE=E6=AD=A3=E7=AE=87?= =?UTF-8?q?=E6=89=80=E3=82=92=E9=96=93=E9=81=95=E3=81=88=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F(=E3=81=93=E3=81=AE=E3=82=B3=E3=83=9F=E3=83=83?= =?UTF-8?q?=E3=83=88=E3=81=8C=E6=AD=A3=E3=81=97=E3=81=84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" index a9e08ebc5f..b6836e86de 100644 --- "a/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" +++ "b/tests/e2e/browser/lab\343\203\225\343\202\241\343\202\244\343\203\253\346\233\270\343\201\215\345\207\272\343\201\227.spec.ts" @@ -55,12 +55,12 @@ test("「labファイルを書き出し」のトグルがオンの場合のみ // labファイルを生成しない await navigateToMain(page); await commonAction(page, false, "おはようございます"); - const downloadWav = await downloadAction(page, 5100); // 「おはようございます」が既に入力されているため、空文字列にする + const downloadWav = await downloadAction(page, 5100); // labファイル生成時より長く待つ(ダウンロード漏れがないことを保証したい) await expect(downloadWav.length).toBe(1); await expect(downloadWav[0]).toBe("おはようございます.wav"); // labファイルを生成する - await commonAction(page, true, ""); // おはようございます」がすでに入力されているためから文字列にする + await commonAction(page, true, ""); // 「おはようございます」が既に入力されているため、空文字列にする const downloads = await downloadAction(page, 5000); await expect(downloads.length).toBe(2); await expect(downloads[0]).toBe("おはようございます.wav");