/** * 订单管理 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(); } }); });