test(ci): 增加 Playwright 冒烟用例

覆盖登录进入工作台、403/404 错误页、模块切换与面包屑联动,并接入 CI 产物归档。
This commit is contained in:
Stev_Wang committed 2026-11-02 17:21:55 +08:00
1 parent 073d210a92
commit 1876c56008
2 files changed
+74

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
import { expect, type Page, test } from '@playwright/test';
async function signIn(page: Page): Promise<void> {
await page.goto('/login');
await page.getByPlaceholder('请输入账号或邮箱').fill('admin');
await page.getByPlaceholder('请输入密码').fill('demo1234');
await page.getByTestId('login-submit').click();
await expect(page.getByTestId('app-shell')).toBeVisible();
}
test('登录页打开并进入工作台', async ({ page }) => {
await page.goto('/login');
await expect(page.getByRole('heading', { name: '登录灵犀' })).toBeVisible();
await signIn(page);
await expect(page).toHaveURL('/');
await expect(page.getByRole('heading', { name: '工作台', exact: true })).toBeVisible();
await expect(page.getByRole('navigation', { name: '模块导航' })).toBeVisible();
});
test('403 页可演示', async ({ page }) => {
await page.goto('/403');
await expect(page.getByTestId('error-403')).toBeVisible();
await expect(page.getByRole('heading', { name: '没有访问权限' })).toBeVisible();
});
test('模块切换与侧边栏、面包屑联动', async ({ page }) => {
await signIn(page);
await page.getByRole('button', { name: '素材', exact: true }).click();
await expect(page).toHaveURL(/\/material/);
await page.getByRole('link', { name: '快筛', exact: true }).click();
await expect(page.getByRole('heading', { name: '快筛' })).toBeVisible();
await expect(page.getByRole('navigation', { name: '面包屑' })).toContainText('素材');
});
test('未知路由展示 404', async ({ page }) => {
await page.goto('/404');
await expect(page.getByTestId('error-404')).toBeVisible();
});