diff --git a/.env.e2e.example b/.env.e2e.example index 27805e9..11647b4 100644 --- a/.env.e2e.example +++ b/.env.e2e.example @@ -1,5 +1,3 @@ # 复制为 .env.e2e(已 gitignore) MOICEN_E2E_UNIONID= -# 可选:与 UC 中 real_name 一致,用于断言「欢迎回来,{姓名}」(如 阿难) -MOICEN_E2E_EXPECTED_REAL_NAME= HUIKE_FRONT_BASE_URL=https://music-room.moicen.com diff --git a/.github/workflows/playwright-music-room.yml b/.github/workflows/playwright-music-room.yml index 1f9fb2c..abcc1e1 100644 --- a/.github/workflows/playwright-music-room.yml +++ b/.github/workflows/playwright-music-room.yml @@ -50,5 +50,4 @@ jobs: - name: Playwright env: MOICEN_E2E_UNIONID: ${{ secrets.MOICEN_E2E_UNIONID }} - MOICEN_E2E_EXPECTED_REAL_NAME: ${{ secrets.MOICEN_E2E_EXPECTED_REAL_NAME }} run: npx playwright test diff --git a/README.md b/README.md index a65dcb3..3518aa7 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ npx playwright test 走代理安装(默认 `http://localhost:7890`):`npm run install:with-proxy` -可选:复制 `.env.e2e.example` → `.env.e2e`,填写 **`MOICEN_E2E_UNIONID`**;若要断言首页展示 **本人姓名**,再加 **`MOICEN_E2E_EXPECTED_REAL_NAME`**(与库 `hty_users.real_name` 一致,如 `阿难`)。勿提交 `.env.e2e`。 +可选:复制 `.env.e2e.example` → `.env.e2e`,填写 **`MOICEN_E2E_UNIONID`**(仅此一项敏感凭据即可跑登录链与串号用例)。**不必**配置 `real_name`:姓名非唯一标识、会变,断言「欢迎回来」等 UI 即可。勿提交 `.env.e2e`。 用例概览: @@ -20,13 +20,13 @@ npx playwright test |------|------| | `tests/guest-onboarding.spec.ts` | 未登录:仅见「请返回微信小程序完成登录」,不出现已登录工作台 | | `tests/home-shell.spec.ts` | `#app`、伪造 unionid 不白屏、`page_path` 净化 | -| `tests/logged-in-and-isolation.spec.ts` | 需 Secret:登录后非访客态;URL 异主 unionid 剥离(串号防护);可选姓名断言 | +| `tests/logged-in-and-isolation.spec.ts` | 需 Secret:登录后非访客态;异主 unionid 剥离;多角色选身份后见「欢迎回来」(不校验姓名) | 未配置 `MOICEN_E2E_UNIONID` 时,`logged-in-and-isolation` 内用例全部 skip。 ## GitHub Actions -在 **Settings → Secrets → Actions** 配置 **`MOICEN_E2E_UNIONID`**(测试用户 `union_id`)。可选再配 **`MOICEN_E2E_EXPECTED_REAL_NAME`**,否则「欢迎回来 + 姓名」用例 skip。未配 unionid 时仅跑访客与壳层用例。 +在 **Settings → Secrets → Actions** 配置 **`MOICEN_E2E_UNIONID`** 即可。未配 unionid 时仅跑访客与壳层用例。 `workflow_dispatch` 可改目标 `base_url`;**默认定时:每天 06:30 UTC**(见 `.github/workflows/playwright-music-room.yml`)。 diff --git a/tests/logged-in-and-isolation.spec.ts b/tests/logged-in-and-isolation.spec.ts index 1a39b09..76a75d9 100644 --- a/tests/logged-in-and-isolation.spec.ts +++ b/tests/logged-in-and-isolation.spec.ts @@ -1,7 +1,6 @@ import { test, expect } from '@playwright/test'; const moicenUnionid = process.env.MOICEN_E2E_UNIONID?.trim(); -const expectedRealName = process.env.MOICEN_E2E_EXPECTED_REAL_NAME?.trim(); test.describe('已登录用户与串号防护', () => { test.skip(!moicenUnionid, '需要 MOICEN_E2E_UNIONID(Secret 或 .env.e2e)'); @@ -55,13 +54,9 @@ test.describe('已登录用户与串号防护', () => { ).not.toBeVisible(); }); - test('可选:工作台「欢迎回来」展示配置的真实姓名(自己的数据)', async ({ + test('多角色时选身份后应出现欢迎语(不校验 real_name,避免与业务标识耦合)', async ({ page, }) => { - test.skip( - !expectedRealName, - '未设置 MOICEN_E2E_EXPECTED_REAL_NAME 时跳过(与库中 real_name 一致,如 阿难)' - ); const q = new URLSearchParams({ unionid: moicenUnionid!, status: '2', @@ -73,9 +68,6 @@ test.describe('已登录用户与串号防护', () => { if (await page.getByText('请选择您的登录身份').isVisible().catch(() => false)) { await page.locator('.van-grid-item').first().click(); } - await expect(page.getByText('欢迎回来')).toBeVisible({ timeout: 120_000 }); - await expect(page.getByText(expectedRealName!)).toBeVisible({ - timeout: 30_000, - }); + await expect(page.getByText(/欢迎回来/)).toBeVisible({ timeout: 120_000 }); }); });