From 195339d0f85a85c3913669a192f4ecc30dec4145 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Thu, 27 Aug 2026 15:33:31 +0800 Subject: [PATCH] =?UTF-8?q?fix(e2e):=20=E9=80=82=E9=85=8D=E7=B4=A0?= =?UTF-8?q?=E6=9D=90=E5=8D=A1=E7=89=87=E7=BD=91=E6=A0=BCUI=20+=20=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E9=99=90=E6=B5=81=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - core-generation.spec.ts: 素材选择从 checkbox 改为点击卡片+验证✓标记 - test_asset.spec.ts: 注册接口增加 429 限流重试逻辑 --- apps/web/e2e/core-generation.spec.ts | 13 +++++++------ apps/web/e2e/test_asset.spec.ts | 25 ++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/apps/web/e2e/core-generation.spec.ts b/apps/web/e2e/core-generation.spec.ts index 3651e93a0..cb2fd867e 100755 --- a/apps/web/e2e/core-generation.spec.ts +++ b/apps/web/e2e/core-generation.spec.ts @@ -185,15 +185,16 @@ test.describe("Core generation flow", () => { await expect(page.locator(".xx-choice-item.selected")).toBeVisible() await page.getByRole("button", { name: "下一步" }).click() - // Step 2: select material + // Step 2: select material (card grid UI) await expect(page.getByRole("heading", { name: /选择素材/ })).toBeVisible() const librarySelect = page.locator("select").first() await librarySelect.selectOption({ label: libraryName }) - const materialLabel = page.getByText(sourceFileName).locator("..") - await expect(materialLabel.locator("input[type='checkbox']")).toBeVisible({ - timeout: 10_000, - }) - await materialLabel.locator("input[type='checkbox']").check() + // 新 UI: 素材以 9:16 竖屏卡片展示,点击卡片选中 + const materialCard = page.getByText(sourceFileName).locator("..") + await expect(materialCard).toBeVisible({ timeout: 10_000 }) + await materialCard.click() + // 验证选中:卡片应出现勾选标记 ✓ + await expect(materialCard.getByText("✓")).toBeVisible({ timeout: 5_000 }) await page.getByRole("button", { name: "下一步" }).click() // Step 3: voice (可选步骤,新注册用户无配音素材,直接跳过) diff --git a/apps/web/e2e/test_asset.spec.ts b/apps/web/e2e/test_asset.spec.ts index e51ffb7b3..384b4ef04 100755 --- a/apps/web/e2e/test_asset.spec.ts +++ b/apps/web/e2e/test_asset.spec.ts @@ -37,14 +37,33 @@ async function loginWithRetry( }) } +async function registerWithRetry( + request: APIRequestContext, + email: string, + username: string, + password: string, + displayName: string, + maxRetries = 2, +) { + for (let i = 0; i <= maxRetries; i++) { + const response = await request.post(`${apiBase}/auth/register`, { + data: { email, password, username, display_name: displayName }, + }) + if (response.status() !== 429) return response + console.log(`[register] 触发限流,等待 65s 后重试 (${i + 1}/${maxRetries})`) + await new Promise((r) => setTimeout(r, 65000)) + } + return request.post(`${apiBase}/auth/register`, { + data: { email, password, username, display_name: displayName }, + }) +} + /** 注册并登录,返回 { headers, email, username, userId } */ async function createAuthedUser(request: APIRequestContext, label: string) { const email = uniqueEmail(label) const username = uniqueUsername(label) - const reg = await request.post(`${apiBase}/auth/register`, { - data: { email, password: PASSWORD, username, display_name: `E2E ${label}` }, - }) + const reg = await registerWithRetry(request, email, username, PASSWORD, `E2E ${label}`) expect(reg.ok(), `注册应成功: ${await reg.text()}`).toBeTruthy() const regData = await reg.json()