- 建立 pnpm workspace + Turborepo 单仓、ESLint 9/Prettier/commitlint/husky 门禁 - NestJS + Fastify API:统一错误体、trace_id、Zod 管道、/health 真实依赖探活、OpenAPI 3.1 契约 - Prisma 基线:outbox_events/idempotency_keys/system_configs 与首版迁移、幂等种子 - shared 契约包:错误码、权限点、ULID、游标分页、命名/时间工具 - ui 包与 Web 壳层:Semi + Remix 图标统一出口、Cloud Blue 视觉、登录/工作台/错误页 - worker 骨架、Playwright 冒烟、Gitea CI、OpenAPI 快照与 oasdiff 回退脚本 - 补充 A0 实施报告与本地开发说明
This commit is contained in:
1 parent
9c3ab9768a
commit
04f49690f4
155 files changed
+18402
-28
No files matched your search
@@ -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();
|
||||
});
|
||||
Reference in new issue
Block a user