feat: 创建测试固件和数据管理
新增文件: - e2e/fixtures/test-data.ts - 测试数据固件 - e2e/fixtures/auth.ts - 认证固件 - e2e/fixtures/storage-state.ts - 存储状态固件 - e2e/fixtures/index.ts - 导出索引文件 功能特性: - 提供标准化的测试数据(新闻、产品、服务、案例) - 支持环境变量配置管理员账号 - 封装认证流程,简化测试编写 - 支持存储状态复用,提升测试效率 - 提供XSS等安全测试数据 技术说明: - 添加 ESLint 禁用注释,因为 Playwright fixture 的 use 函数不是 React Hook
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
/* eslint-disable react-hooks/rules-of-hooks */
|
||||
import { test as base } from '@playwright/test';
|
||||
import path from 'path';
|
||||
|
||||
const AUTH_FILE = path.join(__dirname, '../.auth/admin.json');
|
||||
|
||||
type StorageStateFixtures = {
|
||||
adminStorageState: string;
|
||||
};
|
||||
|
||||
export const test = base.extend<StorageStateFixtures>({
|
||||
adminStorageState: async ({ browser }, use) => {
|
||||
const context = await browser.newContext();
|
||||
const page = await context.newPage();
|
||||
|
||||
await page.goto('/admin/login');
|
||||
await page.fill('#email', process.env.ADMIN_EMAIL || 'admin@novalon.cn');
|
||||
await page.fill('#password', process.env.ADMIN_PASSWORD || 'admin123456');
|
||||
await page.click('button[type="submit"]');
|
||||
await page.waitForURL(/\/admin(?!\/login)/);
|
||||
|
||||
await page.context().storageState({ path: AUTH_FILE });
|
||||
await context.close();
|
||||
|
||||
await use(AUTH_FILE);
|
||||
},
|
||||
});
|
||||
|
||||
export { expect } from '@playwright/test';
|
||||
Reference in New Issue
Block a user