Files
hankin 815cbf9d8c v0.2.0: CRM/ERP 系统升级 - 清理 .gitignore 并移除误提交的 venv/env/db 文件
- 更新 .gitignore:全面覆盖环境变量、数据库、日志、缓存、上传文件
- 移除误跟踪的 server/venv/、crm_data.db、.env 文件
- 新增 server/.env.example 模板
- 新增合同管理、利润核算、AI教练等功能模块
- 新增 Playwright e2e 测试套件
- 前后端多项功能升级和 bug 修复
2026-05-11 07:24:19 +00:00

57 lines
2.2 KiB
TypeScript

/**
* 订单管理 E2E 测试 (v4 - 基于源码修正)
* 新建订单是 el-drawer size=85%
*/
import { test, expect } from '@playwright/test';
test.describe('订单管理', () => {
test.beforeEach(async ({ page }) => {
await page.goto('/orders');
await page.waitForLoadState('networkidle');
});
test('订单列表正确加载', async ({ page }) => {
await expect(page.locator('.el-table').first()).toBeVisible({ timeout: 5000 });
await expect(page.getByRole('button', { name: '新建订单' })).toBeVisible();
});
test('打开新建订单抽屉', async ({ page }) => {
await page.getByRole('button', { name: '新建订单' }).click();
// el-drawer 打开
await expect(page.getByLabel('新建订单')).toBeVisible({ timeout: 5000 });
// 验证关键元素
await expect(page.getByText('订单明细')).toBeVisible();
});
test('新建订单页面元素验证', async ({ page }) => {
await page.getByRole('button', { name: '新建订单' }).click();
await expect(page.getByLabel('新建订单')).toBeVisible({ timeout: 5000 });
await expect(page.getByRole('button', { name: /确认开单/ })).toBeVisible();
await expect(page.getByRole('button', { name: '取消' })).toBeVisible();
await expect(page.getByText('添加产品行')).toBeVisible();
});
test('筛选订单', async ({ page }) => {
await page.getByRole('button', { name: '检索' }).click();
await page.waitForTimeout(1000);
await expect(page.locator('.el-table').first()).toBeVisible();
});
test('查看订单详情', async ({ page }) => {
const detailBtn = page.locator('.el-table').getByRole('button', { name: '详情' }).first();
if (await detailBtn.isVisible({ timeout: 3000 })) {
await detailBtn.click();
// 详情也是 el-drawer
await expect(page.getByLabel('订单全景详情')).toBeVisible({ timeout: 5000 });
}
});
test('发货操作入口', async ({ page }) => {
const shipBtn = page.locator('.el-table').getByRole('button', { name: '发货' }).first();
if (await shipBtn.isVisible({ timeout: 3000 }) && await shipBtn.isEnabled()) {
await expect(shipBtn).toBeVisible();
}
});
});