From 7b6bb1cfebbb9ed68d346a3fc559384e6a73adf5 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 4 Jul 2026 11:58:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(e2e):=20=E4=BF=AE=E5=A4=8D5=E4=B8=AAstaging?= =?UTF-8?q?=20E2E=E5=A4=B1=E8=B4=A5=E7=94=A8=E4=BE=8B=20-=20core-generatio?= =?UTF-8?q?n:=20=E4=BF=AE=E5=A4=8D=E5=8E=86=E5=8F=B2=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=A0=87=E9=A2=98=EF=BC=88=E4=BB=BB=E5=8A=A1=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E2=86=92=E4=BB=BB=E5=8A=A1=E5=8E=86=E5=8F=B2=EF=BC=89+=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0describe=E8=B6=85=E6=97=B6=20-=20core-titles:?= =?UTF-8?q?=20=E7=99=BB=E5=BD=95=E6=94=B9=E7=94=A8loginWithRetry=20+=20?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=A0=87=E9=A2=98=E7=8A=B6=E6=80=81=E7=A0=81?= =?UTF-8?q?200=E2=86=92201=20+=20=E5=A2=9E=E5=8A=A0describe=E8=B6=85?= =?UTF-8?q?=E6=97=B6=20-=20subscription:=20=E6=89=80=E6=9C=89describe?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0120s=E8=B6=85=E6=97=B6=20+=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=8F=96=E6=B6=88=E8=AE=A2=E9=98=85=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8F=90=E5=8F=96=EF=BC=88=E9=80=82=E9=85=8D?= =?UTF-8?q?{error:{message}}=E6=A0=BC=E5=BC=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/e2e/core-generation.spec.ts | 3 ++- apps/web/e2e/core-titles.spec.ts | 7 +++---- apps/web/e2e/subscription.spec.ts | 7 ++++++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/web/e2e/core-generation.spec.ts b/apps/web/e2e/core-generation.spec.ts index 0253eb592..5a6c18921 100755 --- a/apps/web/e2e/core-generation.spec.ts +++ b/apps/web/e2e/core-generation.spec.ts @@ -60,6 +60,7 @@ type GenerationTaskResponse = { }; test.describe("Core generation flow", () => { + test.describe.configure({ timeout: 180_000 }); test("generates a video and shows result in product library", async ({ page, request, @@ -230,7 +231,7 @@ test.describe("Core generation flow", () => { // Navigate to history page await page.goto("/app/history"); - await expect(page.getByText("任务中心")).toBeVisible({ timeout: 20_000 }); + await expect(page.getByText("任务历史")).toBeVisible({ timeout: 20_000 }); await expect(page.getByText("全部")).toBeVisible(); }); diff --git a/apps/web/e2e/core-titles.spec.ts b/apps/web/e2e/core-titles.spec.ts index 66fa21128..683f08749 100755 --- a/apps/web/e2e/core-titles.spec.ts +++ b/apps/web/e2e/core-titles.spec.ts @@ -40,6 +40,7 @@ async function loginWithRetry( } test.describe("Title library flow", () => { + test.describe.configure({ timeout: 120_000 }); test("loads title library page and displays titles", async ({ page, request, @@ -116,9 +117,7 @@ test.describe("Title library flow", () => { }); expect(register.status()).toBe(201); - const login = await request.post(`${apiBase}/auth/login`, { - data: { email, password: PASSWORD }, - }); + const login = await loginWithRetry(request, email, PASSWORD); expect(login.status()).toBe(200); const loginData = (await login.json()) as { access_token: string }; const headers = { Authorization: `Bearer ${loginData.access_token}` }; @@ -132,7 +131,7 @@ test.describe("Title library flow", () => { category: "default", }, }); - expect(createResp.status(), await createResp.text()).toBe(200); + expect(createResp.status(), await createResp.text()).toBe(201); const created = (await createResp.json()) as { id: string; text: string; diff --git a/apps/web/e2e/subscription.spec.ts b/apps/web/e2e/subscription.spec.ts index 115d003cd..a5e0d7adb 100755 --- a/apps/web/e2e/subscription.spec.ts +++ b/apps/web/e2e/subscription.spec.ts @@ -58,6 +58,7 @@ async function createAuthedUser(request: any, label: string) { } test.describe("Subscription route guard", () => { + test.describe.configure({ timeout: 120_000 }); test("redirects anonymous users to login", async ({ page }) => { await page.goto("/app/subscription"); await expect(page).toHaveURL(/\/login/); @@ -65,6 +66,7 @@ test.describe("Subscription route guard", () => { }); test.describe("订阅信息查看", () => { + test.describe.configure({ timeout: 120_000 }); test("获取当前订阅信息 - 正向", async ({ request }) => { const { headers } = await createAuthedUser(request, "sub-info"); @@ -89,6 +91,7 @@ test.describe("订阅信息查看", () => { }); test.describe("订阅降级", () => { + test.describe.configure({ timeout: 120_000 }); test("Pro 用户降级到 Standard - 正向", async ({ request }) => { const { headers } = await createAuthedUser(request, "sub-downgrade"); @@ -163,6 +166,7 @@ test.describe("订阅降级", () => { }); test.describe("订阅过期处理", () => { + test.describe.configure({ timeout: 120_000 }); test("取消订阅 - 反向(免费用户)", async ({ request }) => { const { headers } = await createAuthedUser(request, "sub-cancel"); @@ -174,7 +178,7 @@ test.describe("订阅过期处理", () => { // 免费用户可能不需要取消,返回 400 或类似错误 if (!response.ok()) { const data = await response.json(); - expect(data.detail || data.message, "应返回错误信息").toBeTruthy(); + expect(data.error?.message || data.detail || data.message, "应返回错误信息").toBeTruthy(); } }); @@ -230,6 +234,7 @@ test.describe("订阅过期处理", () => { }); test.describe("账单记录", () => { + test.describe.configure({ timeout: 120_000 }); test("获取账单记录 - 正向", async ({ request }) => { const { headers } = await createAuthedUser(request, "sub-bills");