live-read.spec.ts:MSW off 直连活体单体,chromium 验作品列表/市场浏览/个人中心均渲染真实后端数据, 证 client.ts tenant-id 修复后 studio 可跨 BC 直取活体数据、真实数据形态与渲染契约对齐。 前端 in-UI 覆盖:content(列表读+采纳写)/ai/market(浏览读)/account(个人中心读)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
40 lines
1.7 KiB
TypeScript
40 lines
1.7 KiB
TypeScript
import { expect, test, type Page } from '@playwright/test';
|
|
|
|
/**
|
|
* 活体只读旅程 e2e(真实后端,MSW off)。
|
|
*
|
|
* 前置:vite 以 VITE_API_MOCK=false 运行(关 MSW)、真实 muse-server 在 48080、muse_slice_live 已种子。
|
|
* 目的:验证 rendered studio 经「client.ts 注入 tenant-id 修复」后的 HTTP 客户端,能直连活体单体并把
|
|
* content(作品列表)/market(资产浏览)/account(个人中心)三个 BC 的真实后端数据在 UI 正确渲染
|
|
* ——即真实数据形态与页面渲染契约对齐(MSW mock 形态之外的活体校验)。
|
|
*/
|
|
const TOKEN = 'test1';
|
|
|
|
async function seedToken(page: Page): Promise<void> {
|
|
await page.addInitScript((t) => {
|
|
window.localStorage.setItem('accessToken', t);
|
|
window.localStorage.setItem('tenantId', '1');
|
|
}, TOKEN);
|
|
}
|
|
|
|
test.describe('活体只读旅程(真实后端,MSW off)', () => {
|
|
test('作品列表渲染真实作品(content)', async ({ page }) => {
|
|
await seedToken(page);
|
|
await page.goto('/');
|
|
// .first():种子库存在多个同名作品(多次播种),strict 模式需唯一匹配;能渲染即证真实后端作品列表已加载。
|
|
await expect(page.getByText('活体验证样书').first()).toBeVisible({ timeout: 15_000 });
|
|
});
|
|
|
|
test('市场浏览渲染真实资产(market)', async ({ page }) => {
|
|
await seedToken(page);
|
|
await page.goto('/market');
|
|
await expect(page.getByText('活体市场资产·测试')).toBeVisible({ timeout: 15_000 });
|
|
});
|
|
|
|
test('个人中心渲染真实账户(account)', async ({ page }) => {
|
|
await seedToken(page);
|
|
await page.goto('/account');
|
|
await expect(page.getByText('活体用户')).toBeVisible({ timeout: 15_000 });
|
|
});
|
|
});
|