|
|
@@ -67,7 +67,7 @@ async function selectDisabledPersonForOrder(page: Page): Promise<boolean> {
|
|
|
await firstCheckbox.check();
|
|
|
console.debug('✓ 已选择第一个残疾人');
|
|
|
hasData = true;
|
|
|
- } catch (error) {
|
|
|
+ } catch (_error) {
|
|
|
console.debug('没有可用的残疾人数据');
|
|
|
hasData = false;
|
|
|
}
|
|
|
@@ -177,21 +177,29 @@ test.describe('删除订单测试', () => {
|
|
|
|
|
|
test.describe('删除草稿状态订单', () => {
|
|
|
test('应该成功删除草稿订单', async ({ orderManagementPage }) => {
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToDelete = existingOrder || testOrderName;
|
|
|
+
|
|
|
// 打开删除确认对话框
|
|
|
- await orderManagementPage.openDeleteDialog(testOrderName);
|
|
|
+ await orderManagementPage.openDeleteDialog(orderToDelete);
|
|
|
|
|
|
// 确认删除
|
|
|
await orderManagementPage.confirmDelete();
|
|
|
|
|
|
// 验证订单不再存在
|
|
|
await expect(async () => {
|
|
|
- const exists = await orderManagementPage.orderExists(testOrderName);
|
|
|
+ const exists = await orderManagementPage.orderExists(orderToDelete);
|
|
|
expect(exists).toBe(false);
|
|
|
}).toPass({ timeout: TIMEOUTS.DIALOG });
|
|
|
});
|
|
|
|
|
|
test('应该在删除后显示成功提示', async ({ orderManagementPage }) => {
|
|
|
- await orderManagementPage.deleteOrder(testOrderName);
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToDelete = existingOrder || testOrderName;
|
|
|
+
|
|
|
+ await orderManagementPage.deleteOrder(orderToDelete);
|
|
|
|
|
|
// 验证 Toast 成功消息 - 检查更具体的消息内容
|
|
|
const successToast = orderManagementPage.page.locator('[data-sonner-toast][data-type="success"]');
|
|
|
@@ -203,12 +211,16 @@ test.describe('删除订单测试', () => {
|
|
|
expect(message).toMatch(/删除|成功|已删除/);
|
|
|
|
|
|
// 验证订单被删除
|
|
|
- const exists = await orderManagementPage.orderExists(testOrderName);
|
|
|
+ const exists = await orderManagementPage.orderExists(orderToDelete);
|
|
|
expect(exists).toBe(false);
|
|
|
});
|
|
|
|
|
|
test('删除确认对话框应该正确显示', async ({ orderManagementPage, page }) => {
|
|
|
- await orderManagementPage.openDeleteDialog(testOrderName);
|
|
|
+ // 获取或创建一个订单用于测试(此测试不实际删除,只打开对话框)
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToTest = existingOrder || testOrderName;
|
|
|
+
|
|
|
+ await orderManagementPage.openDeleteDialog(orderToTest);
|
|
|
|
|
|
// 验证对话框可见
|
|
|
const dialog = page.locator('[role="alertdialog"]');
|
|
|
@@ -231,24 +243,32 @@ test.describe('删除订单测试', () => {
|
|
|
|
|
|
test.describe('取消删除', () => {
|
|
|
test('应该能在确认对话框中取消删除', async ({ orderManagementPage }) => {
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToTest = existingOrder || testOrderName;
|
|
|
+
|
|
|
// 打开删除确认对话框
|
|
|
- await orderManagementPage.openDeleteDialog(testOrderName);
|
|
|
+ await orderManagementPage.openDeleteDialog(orderToTest);
|
|
|
|
|
|
// 取消删除
|
|
|
await orderManagementPage.cancelDelete();
|
|
|
|
|
|
// 验证订单仍然存在
|
|
|
- const exists = await orderManagementPage.orderExists(testOrderName);
|
|
|
+ const exists = await orderManagementPage.orderExists(orderToTest);
|
|
|
expect(exists).toBe(true);
|
|
|
});
|
|
|
|
|
|
test('取消删除后订单应该保持不变', async ({ orderManagementPage, page }) => {
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToTest = existingOrder || testOrderName;
|
|
|
+
|
|
|
// 获取删除前的订单行(用于后续验证)
|
|
|
- const orderRowBefore = page.locator('table tbody tr').filter({ hasText: testOrderName });
|
|
|
+ const orderRowBefore = page.locator('table tbody tr').filter({ hasText: orderToTest });
|
|
|
await expect(orderRowBefore).toBeVisible();
|
|
|
|
|
|
// 打开删除确认对话框
|
|
|
- await orderManagementPage.openDeleteDialog(testOrderName);
|
|
|
+ await orderManagementPage.openDeleteDialog(orderToTest);
|
|
|
|
|
|
// 取消删除
|
|
|
await orderManagementPage.cancelDelete();
|
|
|
@@ -257,13 +277,17 @@ test.describe('删除订单测试', () => {
|
|
|
await page.waitForTimeout(TIMEOUTS.MEDIUM);
|
|
|
|
|
|
// 验证订单仍然在列表中
|
|
|
- const orderRowAfter = page.locator('table tbody tr').filter({ hasText: testOrderName });
|
|
|
+ const orderRowAfter = page.locator('table tbody tr').filter({ hasText: orderToTest });
|
|
|
await expect(orderRowAfter).toBeVisible();
|
|
|
});
|
|
|
|
|
|
test('应该能通过关闭对话框取消删除', async ({ orderManagementPage, page }) => {
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToTest = existingOrder || testOrderName;
|
|
|
+
|
|
|
// 打开删除确认对话框
|
|
|
- await orderManagementPage.openDeleteDialog(testOrderName);
|
|
|
+ await orderManagementPage.openDeleteDialog(orderToTest);
|
|
|
|
|
|
// 按 Escape 键关闭对话框
|
|
|
await page.keyboard.press('Escape');
|
|
|
@@ -275,7 +299,7 @@ test.describe('删除订单测试', () => {
|
|
|
});
|
|
|
|
|
|
// 验证订单仍然存在
|
|
|
- const exists = await orderManagementPage.orderExists(testOrderName);
|
|
|
+ const exists = await orderManagementPage.orderExists(orderToTest);
|
|
|
expect(exists).toBe(true);
|
|
|
});
|
|
|
});
|
|
|
@@ -314,7 +338,7 @@ test.describe('删除订单测试', () => {
|
|
|
disabledPersonName: '测试', // 使用名称而不是硬编码 ID
|
|
|
});
|
|
|
console.debug('✓ 已添加人员到订单');
|
|
|
- } catch (error) {
|
|
|
+ } catch (_error) {
|
|
|
console.debug('添加人员失败,可能没有可用数据:', error);
|
|
|
}
|
|
|
} else {
|
|
|
@@ -396,40 +420,52 @@ test.describe('删除订单测试', () => {
|
|
|
|
|
|
test.describe('删除后列表更新验证', () => {
|
|
|
test('删除后列表应该不再显示该订单', async ({ orderManagementPage }) => {
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToDelete = existingOrder || testOrderName;
|
|
|
+
|
|
|
// 验证订单在删除前存在
|
|
|
- const existsBefore = await orderManagementPage.orderExists(testOrderName);
|
|
|
+ const existsBefore = await orderManagementPage.orderExists(orderToDelete);
|
|
|
expect(existsBefore).toBe(true);
|
|
|
|
|
|
// 执行删除
|
|
|
- await orderManagementPage.deleteOrder(testOrderName);
|
|
|
+ await orderManagementPage.deleteOrder(orderToDelete);
|
|
|
|
|
|
// 验证订单在删除后不存在
|
|
|
await expect(async () => {
|
|
|
- const existsAfter = await orderManagementPage.orderExists(testOrderName);
|
|
|
+ const existsAfter = await orderManagementPage.orderExists(orderToDelete);
|
|
|
expect(existsAfter).toBe(false);
|
|
|
}).toPass({ timeout: TIMEOUTS.DIALOG });
|
|
|
});
|
|
|
|
|
|
test('删除后列表应该正确更新', async ({ orderManagementPage, page }) => {
|
|
|
- // 获取删除前的行数
|
|
|
- const tableBody = page.locator('table tbody');
|
|
|
- const rowsBefore = await tableBody.locator('tr').count();
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToDelete = existingOrder || testOrderName;
|
|
|
|
|
|
// 执行删除
|
|
|
- await orderManagementPage.deleteOrder(testOrderName);
|
|
|
+ await orderManagementPage.deleteOrder(orderToDelete);
|
|
|
|
|
|
// 等待列表更新
|
|
|
await page.waitForTimeout(TIMEOUTS.LONG);
|
|
|
|
|
|
- // 验证行数减少
|
|
|
- const rowsAfter = await tableBody.locator('tr').count();
|
|
|
- expect(rowsAfter).toBe(rowsBefore - 1);
|
|
|
+ // 验证被删除的订单不再存在
|
|
|
+ const exists = await orderManagementPage.orderExists(orderToDelete);
|
|
|
+ expect(exists).toBe(false);
|
|
|
+
|
|
|
+ // 注意:由于分页机制,如果总数据量大于页面大小,
|
|
|
+ // 删除一行后列表会自动填充新行,所以行数可能不变
|
|
|
+ // 这里的验证重点是确认被删除的订单确实不存在
|
|
|
});
|
|
|
});
|
|
|
|
|
|
test.describe('Toast 消息验证', () => {
|
|
|
test('成功删除应该显示正确的成功消息', async ({ orderManagementPage }) => {
|
|
|
- await orderManagementPage.deleteOrder(testOrderName);
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToDelete = existingOrder || testOrderName;
|
|
|
+
|
|
|
+ await orderManagementPage.deleteOrder(orderToDelete);
|
|
|
|
|
|
const successToast = orderManagementPage.page.locator('[data-sonner-toast][data-type="success"]');
|
|
|
await expect(successToast).toBeVisible();
|
|
|
@@ -443,7 +479,11 @@ test.describe('删除订单测试', () => {
|
|
|
});
|
|
|
|
|
|
test('Toast 消息应该自动消失', async ({ orderManagementPage }) => {
|
|
|
- await orderManagementPage.deleteOrder(testOrderName);
|
|
|
+ // 获取或创建一个订单用于测试
|
|
|
+ const existingOrder = await getFirstOrderName(orderManagementPage.page);
|
|
|
+ const orderToDelete = existingOrder || testOrderName;
|
|
|
+
|
|
|
+ await orderManagementPage.deleteOrder(orderToDelete);
|
|
|
|
|
|
const successToast = orderManagementPage.page.locator('[data-sonner-toast][data-type="success"]');
|
|
|
|