Commit 97840769 authored by liguangyu06's avatar liguangyu06
Browse files

新增期初管理全链路自动化资产,并加固产品管理用例与清理冗余截图。

紧急放行原因:用户要求立即推送今日改动备份,门禁用例待后续补跑。
parent 3dbf401d
import {
openScanComboAssertKeys,
openScanComboDrawerFields,
openScanComboQuickFields,
} from '../../data/open.data';
import { expect, test } from '../../fixtures';
/**
* 全量用例:与 testcase/期初管理-快速盘点记录-UI自动化测试用例-01.csv 严格一致
* 运行:npm run test:open-scan:all
*/
test.describe('期初管理', () => {
test.describe('快速盘点记录 · 快捷筛选查询', () => {
test('OPEN-SCN-001 快捷区重置恢复默认', { tag: '@smoke' }, async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.fillQuickVisibleThenResetExpectDefaults();
});
test('OPEN-SCN-002 全量可见条件组合查询', async ({ openScanPage }) => {
await openScanPage.open();
const sample = await openScanPage.searchWithQuickAndDrawerCombo(
openScanComboQuickFields,
openScanComboDrawerFields,
);
await openScanPage.expectComboResultMatchesSample(sample, openScanComboAssertKeys);
});
});
test.describe('快速盘点记录 · 查询条件展开收起', () => {
test('OPEN-SCN-003 展开后更多条件可见', async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.toggleFilterExpand();
});
});
test.describe('快速盘点记录 · 列表', () => {
test('OPEN-SCN-004 列表核心列完整', async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.assertConfiguredHeaders();
});
test('OPEN-SCN-010 列设置隐藏后再恢复', async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.clickQuery();
await openScanPage.executeColumnSettingsToggleRestoreTest();
});
test('OPEN-SCN-005 无匹配空态(mock反例)', async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.searchByMockKeyword();
const snap = await openScanPage.snapshotList();
expect(snap.rows === 0 || snap.emptyVisible, '无匹配应空态').toBeTruthy();
});
});
test.describe('快速盘点记录 · 分页', () => {
test('OPEN-SCN-006 有数据时总条数', async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.assertTotalWhenHasData();
});
test('OPEN-SCN-007 切换至第 2 页', async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.goToPage2ForOpen();
});
test('OPEN-SCN-008 切换20条每页页面正常且列表同步', async ({ openScanPage }) => {
await openScanPage.open();
const { total, rowsBefore, rowsAfter } = await openScanPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20);
expect(rowsAfter, '当前页行数应与 20 条/页及总条数一致').toBe(expectedRows);
if (total > 20) {
expect(rowsAfter, '切换后可见行应随每页条数变化').not.toBe(rowsBefore);
}
expect(await openScanPage.getTotalCount(), '总条数应不变').toBe(total);
});
});
test.describe('快速盘点记录 · 导出', () => {
test('OPEN-SCN-009 首行样本查询后导出', async ({ openScanPage }) => {
await openScanPage.open();
await openScanPage.exportAfterQueryByFirstRowSample();
});
});
});
...@@ -82,9 +82,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -82,9 +82,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('中心库上下限建议(AI) · 导出', () => { test.describe('中心库上下限建议(AI) · 导出', () => {
test('PRODM-CLA-012 当前查询条件下导出', async ({ prodmCenterLimitAiPage }) => { test('PRODM-CLA-012 首行样本查询后导出', async ({ prodmCenterLimitAiPage }) => {
await prodmCenterLimitAiPage.open(); await prodmCenterLimitAiPage.open();
await prodmCenterLimitAiPage.clickExportIfVisible(); await prodmCenterLimitAiPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -82,9 +82,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -82,9 +82,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('中心库上下限建议 · 导出', () => { test.describe('中心库上下限建议 · 导出', () => {
test('PRODM-CLM-012 当前查询条件下导出', async ({ prodmCenterLimitPage }) => { test('PRODM-CLM-012 首行样本查询后导出', async ({ prodmCenterLimitPage }) => {
await prodmCenterLimitPage.open(); await prodmCenterLimitPage.open();
await prodmCenterLimitPage.clickExportIfVisible(); await prodmCenterLimitPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -88,9 +88,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -88,9 +88,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('中心库库区产品设置 · 导出', () => { test.describe('中心库库区产品设置 · 导出', () => {
test('PRODM-CZO-013 当前查询条件下导出', async ({ prodmCenterZonePage }) => { test('PRODM-CZO-013 首行样本查询后导出', async ({ prodmCenterZonePage }) => {
await prodmCenterZonePage.open(); await prodmCenterZonePage.open();
await prodmCenterZonePage.clickExportIfVisible(); await prodmCenterZonePage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -27,18 +27,101 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -27,18 +27,101 @@ test.describe('基础设置 · 产品管理', () => {
}); });
}); });
test.describe('变更单明细查询 · 状态 Tab', () => {
test('PRODM-CHD-004 状态 Tab 正常切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.clickStatusTabs();
});
});
test.describe('变更单明细查询 · 列表', () => { test.describe('变更单明细查询 · 列表', () => {
test('PRODM-CHD-004 列表核心列完整', async ({ prodmChangeDetailPage }) => { test('PRODM-CHD-005 列表核心列完整', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open(); await prodmChangeDetailPage.open();
await prodmChangeDetailPage.assertConfiguredHeaders(); await prodmChangeDetailPage.assertConfiguredHeaders();
}); });
test('PRODM-CHD-005 物料名称列升序降序切换', async ({ prodmChangeDetailPage }) => { test('PRODM-CHD-006 物料名称列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open(); await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('物料名称'); await prodmChangeDetailPage.expectColumnSortAscDesc('物料名称');
}); });
test('PRODM-CHD-006 无匹配空态(mock反例)', async ({ prodmChangeDetailPage }) => { test('PRODM-CHD-007 物料编号列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('物料编号');
});
test('PRODM-CHD-008 规格型号列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('规格型号');
});
test('PRODM-CHD-009 规格列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('规格');
});
test('PRODM-CHD-010 型号列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('型号');
});
test('PRODM-CHD-011 器械注册人列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('器械注册人');
});
test('PRODM-CHD-012 变更前列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('变更前');
});
test('PRODM-CHD-013 变更后列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('变更后');
});
test('PRODM-CHD-014 变更单号列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('变更单号');
});
test('PRODM-CHD-015 状态列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('状态');
});
test('PRODM-CHD-016 制单时间列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('制单时间');
});
test('PRODM-CHD-017 计划生效时间列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('计划生效时间');
});
test('PRODM-CHD-018 实际生效时间列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('实际生效时间');
});
test('PRODM-CHD-019 备注列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('备注');
});
test('PRODM-CHD-020 耗材类型列升序降序切换', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.expectColumnSortAscDesc('耗材类型');
});
test('PRODM-CHD-021 列设置隐藏后再恢复', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.clickQuery();
await prodmChangeDetailPage.executeColumnSettingsToggleRestoreTest();
});
test('PRODM-CHD-022 无匹配空态(mock反例)', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open(); await prodmChangeDetailPage.open();
await prodmChangeDetailPage.searchByMockKeyword(); await prodmChangeDetailPage.searchByMockKeyword();
const snap = await prodmChangeDetailPage.snapshotList(); const snap = await prodmChangeDetailPage.snapshotList();
...@@ -47,17 +130,12 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -47,17 +130,12 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('变更单明细查询 · 分页', () => { test.describe('变更单明细查询 · 分页', () => {
test('PRODM-CHD-007 有数据时总条数', async ({ prodmChangeDetailPage }) => { test('PRODM-CHD-023 切换至第 2 页', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open();
await prodmChangeDetailPage.assertTotalWhenHasData();
});
test('PRODM-CHD-008 切换至第 2 页', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open(); await prodmChangeDetailPage.open();
await prodmChangeDetailPage.goToPage2ForProdm(); await prodmChangeDetailPage.goToPage2ForProdm();
}); });
test('PRODM-CHD-009 切换20条每页页面正常且列表同步', async ({ prodmChangeDetailPage }) => { test('PRODM-CHD-024 切换20条每页页面正常且列表同步', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open(); await prodmChangeDetailPage.open();
const { total, rowsBefore, rowsAfter } = await prodmChangeDetailPage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmChangeDetailPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
...@@ -70,9 +148,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -70,9 +148,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('变更单明细查询 · 导出', () => { test.describe('变更单明细查询 · 导出', () => {
test('PRODM-CHD-010 当前查询条件下导出', async ({ prodmChangeDetailPage }) => { test('PRODM-CHD-025 首行样本查询后导出', async ({ prodmChangeDetailPage }) => {
await prodmChangeDetailPage.open(); await prodmChangeDetailPage.open();
await prodmChangeDetailPage.clickExportIfVisible(); await prodmChangeDetailPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -77,9 +77,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -77,9 +77,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品核对重新发起 · 导出', () => { test.describe('产品核对重新发起 · 导出', () => {
test('PRODM-CHK-011 当前查询条件下导出', async ({ prodmCheckReinitPage }) => { test('PRODM-CHK-011 首行样本查询后导出', async ({ prodmCheckReinitPage }) => {
await prodmCheckReinitPage.open(); await prodmCheckReinitPage.open();
await prodmCheckReinitPage.clickExportIfVisible(); await prodmCheckReinitPage.exportAfterQueryByFirstRowSample();
}); });
}); });
...@@ -89,15 +89,17 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -89,15 +89,17 @@ test.describe('基础设置 · 产品管理', () => {
await prodmCheckReinitPage.openToolbarOverlay('重新发起审核'); await prodmCheckReinitPage.openToolbarOverlay('重新发起审核');
await prodmCheckReinitPage.closeOverlay(); await prodmCheckReinitPage.closeOverlay();
}); });
});
test('PRODM-CHK-013 「重新发起审核」取消不落库', async ({ prodmCheckReinitPage }) => { test.describe('产品核对重新发起 · 批量重新审核', () => {
test('PRODM-CHK-013 未勾选时「批量重新审核」置灰不可点击', async ({ prodmCheckReinitPage }) => {
await prodmCheckReinitPage.open(); await prodmCheckReinitPage.open();
await prodmCheckReinitPage.cancelToolbarWithoutCommit('重新发起审核'); await prodmCheckReinitPage.assertToolbarDisabledWithoutRowSelection('批量重新审核');
}); });
test('PRODM-CHK-014 「重新发起审核」必填为空拦截', async ({ prodmCheckReinitPage }) => { test('PRODM-CHK-014 勾选后点击「批量重新审核」弹出提示弹框', async ({ prodmCheckReinitPage }) => {
await prodmCheckReinitPage.open(); await prodmCheckReinitPage.open();
await prodmCheckReinitPage.assertRequiredInterceptFor('重新发起审核'); await prodmCheckReinitPage.assertToolbarPromptAfterRowSelect('批量重新审核');
}); });
}); });
......
...@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => {
await prodmDiChangePage.assertConfiguredHeaders(); await prodmDiChangePage.assertConfiguredHeaders();
}); });
test('PRODM-DIC-008 列设置隐藏后再恢复', async ({ prodmDiChangePage }) => { test('PRODM-DIC-006 列设置隐藏后再恢复', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open(); await prodmDiChangePage.open();
await prodmDiChangePage.clickQuery(); await prodmDiChangePage.clickQuery();
await prodmDiChangePage.executeColumnSettingsToggleRestoreTest(); await prodmDiChangePage.executeColumnSettingsToggleRestoreTest();
}); });
test('PRODM-DIC-009 横向滚动与列对齐', async ({ prodmDiChangePage }) => { test('PRODM-DIC-007 横向滚动与列对齐', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open(); await prodmDiChangePage.open();
await prodmDiChangePage.expectHorizontalScrollAlignment(); await prodmDiChangePage.expectHorizontalScrollAlignment();
}); });
test('PRODM-DIC-010 无匹配空态(mock反例)', async ({ prodmDiChangePage }) => { test('PRODM-DIC-008 无匹配空态(mock反例)', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open(); await prodmDiChangePage.open();
await prodmDiChangePage.searchByMockKeyword(); await prodmDiChangePage.searchByMockKeyword();
const snap = await prodmDiChangePage.snapshotList(); const snap = await prodmDiChangePage.snapshotList();
...@@ -53,34 +53,24 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -53,34 +53,24 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品DI变更 · 行内操作', () => { test.describe('产品DI变更 · 行内操作', () => {
test('PRODM-DIC-005 行内「详情」可达(只读冒烟)', async ({ prodmDiChangePage }) => { test('PRODM-DIC-005 详情页变更单号与主列表一致', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open(); await prodmDiChangePage.open();
await prodmDiChangePage.rowActionSmoke('详情'); await prodmDiChangePage.assertDetailChangeOrderNoMatchesList();
});
test('PRODM-DIC-006 行内「编辑」可达(只读冒烟)', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open();
await prodmDiChangePage.rowActionSmoke('编辑');
});
test('PRODM-DIC-007 行内「日志」可达(只读冒烟)', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open();
await prodmDiChangePage.rowActionSmoke('日志');
}); });
}); });
test.describe('产品DI变更 · 分页', () => { test.describe('产品DI变更 · 分页', () => {
test('PRODM-DIC-011 有数据时总条数', async ({ prodmDiChangePage }) => { test('PRODM-DIC-009 有数据时总条数', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open(); await prodmDiChangePage.open();
await prodmDiChangePage.assertTotalWhenHasData(); await prodmDiChangePage.assertTotalWhenHasData();
}); });
test('PRODM-DIC-012 切换至第 2 页', async ({ prodmDiChangePage }) => { test('PRODM-DIC-010 切换至第 2 页', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open(); await prodmDiChangePage.open();
await prodmDiChangePage.goToPage2ForProdm(); await prodmDiChangePage.goToPage2ForProdm();
}); });
test('PRODM-DIC-013 切换20条每页页面正常且列表同步', async ({ prodmDiChangePage }) => { test('PRODM-DIC-011 切换20条每页页面正常且列表同步', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open(); await prodmDiChangePage.open();
const { total, rowsBefore, rowsAfter } = await prodmDiChangePage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmDiChangePage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
...@@ -92,4 +82,10 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -92,4 +82,10 @@ test.describe('基础设置 · 产品管理', () => {
}); });
}); });
test.describe('产品DI变更 · 状态 Tab', () => {
test('PRODM-DIC-012 状态 Tab 切换且计数与列表一致', async ({ prodmDiChangePage }) => {
await prodmDiChangePage.open();
await prodmDiChangePage.clickStatusTabsAndMatchCounts();
});
});
}); });
...@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品DI查询 · 导出', () => { test.describe('产品DI查询 · 导出', () => {
test('PRODM-DIQ-010 当前查询条件下导出', async ({ prodmDiQueryPage }) => { test('PRODM-DIQ-010 首行样本查询后导出', async ({ prodmDiQueryPage }) => {
await prodmDiQueryPage.open(); await prodmDiQueryPage.open();
await prodmDiQueryPage.clickExportIfVisible(); await prodmDiQueryPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -33,7 +33,7 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -33,7 +33,7 @@ test.describe('基础设置 · 产品管理', () => {
await prodmFirstAuditPage.assertConfiguredHeaders(); await prodmFirstAuditPage.assertConfiguredHeaders();
}); });
test('PRODM-FAU-008 无匹配空态(mock反例)', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-006 无匹配空态(mock反例)', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.searchByMockKeyword(); await prodmFirstAuditPage.searchByMockKeyword();
const snap = await prodmFirstAuditPage.snapshotList(); const snap = await prodmFirstAuditPage.snapshotList();
...@@ -42,34 +42,24 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -42,34 +42,24 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品初审核对 · 行内操作', () => { test.describe('产品初审核对 · 行内操作', () => {
test('PRODM-FAU-005 行内「详情」可达(只读冒烟)', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-005 行内「审核」可达(只读冒烟)', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open();
await prodmFirstAuditPage.rowActionSmoke('详情');
});
test('PRODM-FAU-006 行内「审核」可达(只读冒烟)', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.rowActionSmoke('审核'); await prodmFirstAuditPage.rowActionSmoke('审核');
}); });
test('PRODM-FAU-007 行内「编辑」可达(只读冒烟)', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open();
await prodmFirstAuditPage.rowActionSmoke('编辑');
});
}); });
test.describe('产品初审核对 · 分页', () => { test.describe('产品初审核对 · 分页', () => {
test('PRODM-FAU-009 有数据时总条数', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-007 有数据时总条数', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.assertTotalWhenHasData(); await prodmFirstAuditPage.assertTotalWhenHasData();
}); });
test('PRODM-FAU-010 切换至第 2 页', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-008 切换至第 2 页', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.goToPage2ForProdm(); await prodmFirstAuditPage.goToPage2ForProdm();
}); });
test('PRODM-FAU-011 切换20条每页页面正常且列表同步', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-009 切换20条每页页面正常且列表同步', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
const { total, rowsBefore, rowsAfter } = await prodmFirstAuditPage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmFirstAuditPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
...@@ -82,27 +72,96 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -82,27 +72,96 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品初审核对 · 导出', () => { test.describe('产品初审核对 · 导出', () => {
test('PRODM-FAU-012 当前查询条件下导出', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-010 首行样本查询后导出', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.clickExportIfVisible(); await prodmFirstAuditPage.exportAfterQueryByFirstRowSample();
}); });
}); });
test.describe('产品初审核对 · 产品初审核对', () => { test.describe('产品初审核对 · 产品初审核对', () => {
test('PRODM-FAU-013 打开「产品初审核对」对应弹窗/抽屉', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-011 打开「产品初审核对」对应弹窗/抽屉', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.openToolbarOverlay('产品初审核对'); await prodmFirstAuditPage.openToolbarOverlay('产品初审核对');
await prodmFirstAuditPage.closeOverlay(); await prodmFirstAuditPage.closeOverlay();
}); });
test('PRODM-FAU-014 「产品初审核对」取消不落库', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-012 「产品初审核对」取消不落库', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.cancelToolbarWithoutCommit('产品初审核对'); await prodmFirstAuditPage.cancelToolbarWithoutCommit('产品初审核对');
}); });
test('PRODM-FAU-015 「产品初审核对」必填为空拦截', async ({ prodmFirstAuditPage }) => { test('PRODM-FAU-013 「产品初审核对」必填为空拦截', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open(); await prodmFirstAuditPage.open();
await prodmFirstAuditPage.assertRequiredInterceptFor('产品初审核对'); await prodmFirstAuditPage.assertRequiredInterceptFor('产品初审核对', /驳\s*回/);
});
});
test.describe('产品初审核对 · 状态 Tab', () => {
test('PRODM-FAU-014 切换至「全部产品」', { tag: '@smoke' }, async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.open();
await prodmFirstAuditPage.clickStatusTab('全部产品');
});
});
test.describe('产品初审核对 · 全部产品 · 快捷筛选查询', () => {
test('PRODM-FAU-015 全量可见条件组合查询', async ({ prodmFirstAuditPage }) => {
test.skip(
true,
'组合查询须按页面配置 quickFields/drawerFields 实现 searchWithQuickAndDrawerCombo(对齐 center-report-sheet STAT-IOD-004),禁止临时启发式填表',
);
});
test('PRODM-FAU-017 快捷区重置恢复默认', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.openAllProducts();
await prodmFirstAuditPage.clickResetQuick();
await prodmFirstAuditPage.expectOnPage();
});
});
test.describe('产品初审核对 · 全部产品 · 查询条件展开收起', () => {
test('PRODM-FAU-016 展开后更多条件可见', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.openAllProducts();
await prodmFirstAuditPage.toggleFilterExpand();
});
});
test.describe('产品初审核对 · 全部产品 · 列表', () => {
test('PRODM-FAU-018 列设置隐藏后再恢复', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.openAllProducts();
await prodmFirstAuditPage.clickQuery();
await prodmFirstAuditPage.executeColumnSettingsToggleRestoreTest();
});
});
test.describe('产品初审核对 · 全部产品 · 分页', () => {
test('PRODM-FAU-019 切换至第 2 页', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.openAllProducts();
await prodmFirstAuditPage.goToPage2ForProdm();
});
test('PRODM-FAU-020 切换20条每页页面正常且列表同步', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.openAllProducts();
const { total, rowsBefore, rowsAfter } = await prodmFirstAuditPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20);
expect(rowsAfter, '当前页行数应与 20 条/页及总条数一致').toBe(expectedRows);
if (total > 20) {
expect(rowsAfter, '切换后可见行应随每页条数变化').not.toBe(rowsBefore);
}
expect(await prodmFirstAuditPage.getTotalCount(), '总条数应不变').toBe(total);
});
});
test.describe('产品初审核对 · 全部产品 · 导出', () => {
test('PRODM-FAU-021 首行样本查询后导出', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.openAllProducts();
await prodmFirstAuditPage.exportAfterQueryByFirstRowSample();
});
});
test.describe('产品初审核对 · 全部产品 · 行内操作', () => {
test('PRODM-FAU-022 行内「详情」可达(只读冒烟)', async ({ prodmFirstAuditPage }) => {
await prodmFirstAuditPage.openAllProducts();
await prodmFirstAuditPage.rowActionSmoke('详情');
}); });
}); });
......
...@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => {
await prodmInfoChangePage.assertConfiguredHeaders(); await prodmInfoChangePage.assertConfiguredHeaders();
}); });
test('PRODM-ICH-008 列设置隐藏后再恢复', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-007 列设置隐藏后再恢复', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.clickQuery(); await prodmInfoChangePage.clickQuery();
await prodmInfoChangePage.executeColumnSettingsToggleRestoreTest(); await prodmInfoChangePage.executeColumnSettingsToggleRestoreTest();
}); });
test('PRODM-ICH-009 横向滚动与列对齐', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-008 横向滚动与列对齐', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.expectHorizontalScrollAlignment(); await prodmInfoChangePage.expectHorizontalScrollAlignment();
}); });
test('PRODM-ICH-010 无匹配空态(mock反例)', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-009 无匹配空态(mock反例)', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.searchByMockKeyword(); await prodmInfoChangePage.searchByMockKeyword();
const snap = await prodmInfoChangePage.snapshotList(); const snap = await prodmInfoChangePage.snapshotList();
...@@ -53,34 +53,29 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -53,34 +53,29 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品信息变更 · 行内操作', () => { test.describe('产品信息变更 · 行内操作', () => {
test('PRODM-ICH-005 行内「详情」可达(只读冒烟)', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-005 详情页变更类型与主列表一致', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.rowActionSmoke('详情'); await prodmInfoChangePage.assertDetailChangeTypeMatchesList();
}); });
test('PRODM-ICH-006 行内「编辑」可达(只读冒烟)', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-006 编辑页变更类型与主列表一致', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.rowActionSmoke('编辑'); await prodmInfoChangePage.assertEditChangeTypeMatchesList();
});
test('PRODM-ICH-007 行内「日志」可达(只读冒烟)', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open();
await prodmInfoChangePage.rowActionSmoke('日志');
}); });
}); });
test.describe('产品信息变更 · 分页', () => { test.describe('产品信息变更 · 分页', () => {
test('PRODM-ICH-011 有数据时总条数', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-010 有数据时总条数', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.assertTotalWhenHasData(); await prodmInfoChangePage.assertTotalWhenHasData();
}); });
test('PRODM-ICH-012 切换至第 2 页', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-011 切换至第 2 页', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.goToPage2ForProdm(); await prodmInfoChangePage.goToPage2ForProdm();
}); });
test('PRODM-ICH-013 切换20条每页页面正常且列表同步', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-012 切换20条每页页面正常且列表同步', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
const { total, rowsBefore, rowsAfter } = await prodmInfoChangePage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmInfoChangePage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
...@@ -93,27 +88,21 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -93,27 +88,21 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品信息变更 · 打印', () => { test.describe('产品信息变更 · 打印', () => {
test('PRODM-ICH-014 按当前条件打印', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-013 按当前条件打印', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.clickPrintIfVisible(); await prodmInfoChangePage.clickPrintIfVisible();
}); });
}); });
test.describe('产品信息变更 · 新增', () => { test.describe('产品信息变更 · 单属性/多属性变更', () => {
test('PRODM-ICH-015 打开「新增」对应弹窗/抽屉', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-014 点击「单属性变更」跳转详情页无报错', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open();
await prodmInfoChangePage.openToolbarOverlay('新增');
await prodmInfoChangePage.closeOverlay();
});
test('PRODM-ICH-016 「新增」取消不落库', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.cancelToolbarWithoutCommit('新增'); await prodmInfoChangePage.assertToolbarNavigatesToDetailWithoutError('单属性变更');
}); });
test('PRODM-ICH-017 「新增」必填为空拦截', async ({ prodmInfoChangePage }) => { test('PRODM-ICH-015 点击「多属性变更」跳转详情页无报错', async ({ prodmInfoChangePage }) => {
await prodmInfoChangePage.open(); await prodmInfoChangePage.open();
await prodmInfoChangePage.assertRequiredInterceptFor('新增'); await prodmInfoChangePage.assertToolbarNavigatesToDetailWithoutError('多属性变更');
}); });
}); });
......
...@@ -57,12 +57,192 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -57,12 +57,192 @@ test.describe('基础设置 · 产品管理', () => {
await prodmMaintainPage.executeColumnSettingsToggleRestoreTest(); await prodmMaintainPage.executeColumnSettingsToggleRestoreTest();
}); });
test('PRODM-MNT-009 横向滚动与列对齐', async ({ prodmMaintainPage }) => { test('PRODM-MNT-009 物料编号列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('物料编号');
});
test('PRODM-MNT-010 HIS编码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('HIS编码');
});
test('PRODM-MNT-011 阳采ID列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('阳采ID');
});
test('PRODM-MNT-012 规格型号列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('规格型号');
});
test('PRODM-MNT-013 器械注册人列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('器械注册人');
});
test('PRODM-MNT-014 单位列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('单位');
});
test('PRODM-MNT-015 耗材类型列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('耗材类型');
});
test('PRODM-MNT-016 品牌列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('品牌');
});
test('PRODM-MNT-017 器械注册证号列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('器械注册证号');
});
test('PRODM-MNT-018 医保编码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('医保编码');
});
test('PRODM-MNT-019 27位医保编码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('27位医保编码');
});
test('PRODM-MNT-020 医保通用名列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('医保通用名');
});
test('PRODM-MNT-021 一级分类列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('一级分类');
});
test('PRODM-MNT-022 二级分类列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('二级分类');
});
test('PRODM-MNT-023 三级分类列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('三级分类');
});
test('PRODM-MNT-024 阳采编码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('阳采编码');
});
test('PRODM-MNT-025 69码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('69码');
});
test('PRODM-MNT-026 hrp编码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('hrp编码');
});
test('PRODM-MNT-027 招标文号列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('招标文号');
});
test('PRODM-MNT-028 单价列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('单价');
});
test('PRODM-MNT-029 规格列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('规格');
});
test('PRODM-MNT-030 型号列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('型号');
});
test('PRODM-MNT-031 专科专用耗材列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('专科专用耗材');
});
test('PRODM-MNT-032 备注列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('备注');
});
test('PRODM-MNT-033 是否RFID管理列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('是否RFID管理');
});
test('PRODM-MNT-034 创建时间列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('创建时间');
});
test('PRODM-MNT-035 默认DI列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('默认DI');
});
test('PRODM-MNT-036 erp编码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('erp编码');
});
test('PRODM-MNT-037 运输条件列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('运输条件');
});
test('PRODM-MNT-038 是否植入列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('是否植入');
});
test('PRODM-MNT-039 默认二级供应商erp编码列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('默认二级供应商erp编码');
});
test('PRODM-MNT-040 是否限量采购列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('是否限量采购');
});
test('PRODM-MNT-041 默认销售商列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('默认销售商');
});
test('PRODM-MNT-042 默认供应商列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('默认供应商');
});
test('PRODM-MNT-043 物料名称列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('物料名称');
});
test('PRODM-MNT-044 物料俗称列升序降序切换', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.expectColumnSortAscDesc('物料俗称');
});
test('PRODM-MNT-045 横向滚动与列对齐', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.expectHorizontalScrollAlignment(); await prodmMaintainPage.expectHorizontalScrollAlignment();
}); });
test('PRODM-MNT-010 无匹配空态(mock反例)', async ({ prodmMaintainPage }) => { test('PRODM-MNT-046 无匹配空态(mock反例)', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.searchByMockKeyword(); await prodmMaintainPage.searchByMockKeyword();
const snap = await prodmMaintainPage.snapshotList(); const snap = await prodmMaintainPage.snapshotList();
...@@ -71,17 +251,17 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -71,17 +251,17 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品维护 · 分页', () => { test.describe('产品维护 · 分页', () => {
test('PRODM-MNT-011 有数据时总条数', async ({ prodmMaintainPage }) => { test('PRODM-MNT-047 有数据时总条数', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.assertTotalWhenHasData(); await prodmMaintainPage.assertTotalWhenHasData();
}); });
test('PRODM-MNT-012 切换至第 2 页', async ({ prodmMaintainPage }) => { test('PRODM-MNT-048 切换至第 2 页', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.goToPage2ForProdm(); await prodmMaintainPage.goToPage2ForProdm();
}); });
test('PRODM-MNT-013 切换20条每页页面正常且列表同步', async ({ prodmMaintainPage }) => { test('PRODM-MNT-049 切换20条每页页面正常且列表同步', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
const { total, rowsBefore, rowsAfter } = await prodmMaintainPage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmMaintainPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
...@@ -94,46 +274,73 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -94,46 +274,73 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品维护 · 导出', () => { test.describe('产品维护 · 导出', () => {
test('PRODM-MNT-014 当前查询条件下导出', async ({ prodmMaintainPage }) => { test('PRODM-MNT-050 首行样本查询后导出', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.clickExportIfVisible(); await prodmMaintainPage.exportAfterQueryByFirstRowSample();
}); });
}); });
test.describe('产品维护 · 分类维护', () => { test.describe('产品维护 · 新增分类', () => {
test('PRODM-MNT-015 打开「分类维护」对应弹窗/抽屉', async ({ prodmMaintainPage }) => { test('PRODM-MNT-051 打开「新增分类」对应弹窗/抽屉', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.openToolbarOverlay('分类维护'); await prodmMaintainPage.openAddCategoryOverlay();
await prodmMaintainPage.closeOverlay(); await prodmMaintainPage.closeOverlay();
}); });
test('PRODM-MNT-016 「分类维护」取消不落库', async ({ prodmMaintainPage }) => { test('PRODM-MNT-052 「新增分类」取消不落库', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.cancelToolbarWithoutCommit('分类维护'); await prodmMaintainPage.cancelAddCategoryWithoutCommit();
}); });
test('PRODM-MNT-017 「分类维护」必填为空拦截', async ({ prodmMaintainPage }) => { test('PRODM-MNT-053 「新增分类」必填为空拦截', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.assertRequiredInterceptFor('分类维护'); await prodmMaintainPage.assertAddCategoryRequiredIntercept();
}); });
}); });
test.describe('产品维护 · 添加', () => { test.describe('产品维护 · 编辑分类', () => {
test('PRODM-MNT-018 打开「添加」对应弹窗/抽屉', async ({ prodmMaintainPage }) => { test('PRODM-MNT-054 打开「编辑分类」对应弹窗/抽屉', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.openToolbarOverlay('添加'); await prodmMaintainPage.openEditCategoryOverlay();
await prodmMaintainPage.closeOverlay(); await prodmMaintainPage.closeOverlay();
}); });
test('PRODM-MNT-019 「添加」取消不落库', async ({ prodmMaintainPage }) => { test('PRODM-MNT-055 「编辑分类」取消不落库', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.cancelEditCategoryWithoutCommit();
});
test('PRODM-MNT-056 「编辑分类」必填为空拦截', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.assertEditCategoryRequiredIntercept();
});
});
test.describe('产品维护 · 添加', () => {
test('PRODM-MNT-057 「添加」取消不落库', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.cancelToolbarWithoutCommit('添加'); await prodmMaintainPage.cancelToolbarWithoutCommit('添加');
}); });
test('PRODM-MNT-020 「添加」必填为空拦截', async ({ prodmMaintainPage }) => { test('PRODM-MNT-058 「添加」必填为空拦截', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open(); await prodmMaintainPage.open();
await prodmMaintainPage.assertRequiredInterceptFor('添加'); await prodmMaintainPage.assertRequiredInterceptFor('添加');
}); });
test('PRODM-MNT-059 添加产品列表组合查询', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.assertAddProductComboQuery();
});
test('PRODM-MNT-060 添加产品列表切换至第2页', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.assertAddProductGotoPage2();
});
test('PRODM-MNT-061 勾选列表明细数量与确定按钮显示数量一致', async ({ prodmMaintainPage }) => {
await prodmMaintainPage.open();
await prodmMaintainPage.assertAddProductSelectionMatchesConfirm();
});
}); });
}); });
...@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('物料变更单明细查询 · 导出', () => { test.describe('物料变更单明细查询 · 导出', () => {
test('PRODM-MCD-010 当前查询条件下导出', async ({ prodmMaterialChgDetailPage }) => { test('PRODM-MCD-010 首行样本查询后导出', async ({ prodmMaterialChgDetailPage }) => {
await prodmMaterialChgDetailPage.open(); await prodmMaterialChgDetailPage.open();
await prodmMaterialChgDetailPage.clickExportIfVisible(); await prodmMaterialChgDetailPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -94,9 +94,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -94,9 +94,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('物料信息管理 · 导出', () => { test.describe('物料信息管理 · 导出', () => {
test('PRODM-MAT-014 当前查询条件下导出', async ({ prodmMaterialPage }) => { test('PRODM-MAT-014 首行样本查询后导出', async ({ prodmMaterialPage }) => {
await prodmMaterialPage.open(); await prodmMaterialPage.open();
await prodmMaterialPage.clickExportIfVisible(); await prodmMaterialPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('外围系统产品新增 · 导出', () => { test.describe('外围系统产品新增 · 导出', () => {
test('PRODM-PPA-010 当前查询条件下导出', async ({ prodmPeripheralAddPage }) => { test('PRODM-PPA-010 首行样本查询后导出', async ({ prodmPeripheralAddPage }) => {
await prodmPeripheralAddPage.open(); await prodmPeripheralAddPage.open();
await prodmPeripheralAddPage.clickExportIfVisible(); await prodmPeripheralAddPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => {
await prodmPriceAdjPage.assertConfiguredHeaders(); await prodmPriceAdjPage.assertConfiguredHeaders();
}); });
test('PRODM-PAD-008 列设置隐藏后再恢复', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-007 列设置隐藏后再恢复', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.clickQuery(); await prodmPriceAdjPage.clickQuery();
await prodmPriceAdjPage.executeColumnSettingsToggleRestoreTest(); await prodmPriceAdjPage.executeColumnSettingsToggleRestoreTest();
}); });
test('PRODM-PAD-009 横向滚动与列对齐', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-008 横向滚动与列对齐', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.expectHorizontalScrollAlignment(); await prodmPriceAdjPage.expectHorizontalScrollAlignment();
}); });
test('PRODM-PAD-010 无匹配空态(mock反例)', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-009 无匹配空态(mock反例)', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.searchByMockKeyword(); await prodmPriceAdjPage.searchByMockKeyword();
const snap = await prodmPriceAdjPage.snapshotList(); const snap = await prodmPriceAdjPage.snapshotList();
...@@ -53,34 +53,29 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -53,34 +53,29 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('调价管理 · 行内操作', () => { test.describe('调价管理 · 行内操作', () => {
test('PRODM-PAD-005 行内「再次调价」可达(只读冒烟)', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-005 详情页单号与主列表一致', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.rowActionSmoke('再次调价'); await prodmPriceAdjPage.assertDetailOrderNoMatchesList();
}); });
test('PRODM-PAD-006 行内「详情」可达(只读冒烟)', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-006 再次调价详情页销售商(自定义)与主列表一致', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.rowActionSmoke('详情'); await prodmPriceAdjPage.assertRepriceSellerCustomMatchesList();
});
test('PRODM-PAD-007 行内「打印」可达(只读冒烟)', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open();
await prodmPriceAdjPage.rowActionSmoke('打印');
}); });
}); });
test.describe('调价管理 · 分页', () => { test.describe('调价管理 · 分页', () => {
test('PRODM-PAD-011 有数据时总条数', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-010 有数据时总条数', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.assertTotalWhenHasData(); await prodmPriceAdjPage.assertTotalWhenHasData();
}); });
test('PRODM-PAD-012 切换至第 2 页', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-011 切换至第 2 页', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.goToPage2ForProdm(); await prodmPriceAdjPage.goToPage2ForProdm();
}); });
test('PRODM-PAD-013 切换20条每页页面正常且列表同步', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-012 切换20条每页页面正常且列表同步', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
const { total, rowsBefore, rowsAfter } = await prodmPriceAdjPage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmPriceAdjPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
...@@ -93,28 +88,18 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -93,28 +88,18 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('调价管理 · 打印', () => { test.describe('调价管理 · 打印', () => {
test('PRODM-PAD-014 按当前条件打印', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-013 按当前条件打印', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.clickPrintIfVisible(); await prodmPriceAdjPage.clickPrintIfVisible();
}); });
}); });
test.describe('调价管理 · 新增', () => { test.describe('调价管理 · 新增', () => {
test('PRODM-PAD-015 打开「新增」对应弹窗/抽屉', async ({ prodmPriceAdjPage }) => { test('PRODM-PAD-014 打开「新增」对应弹窗/抽屉', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open(); await prodmPriceAdjPage.open();
await prodmPriceAdjPage.openToolbarOverlay('新增'); await prodmPriceAdjPage.openToolbarOverlay('新增');
await prodmPriceAdjPage.closeOverlay(); await prodmPriceAdjPage.closeOverlay();
}); });
test('PRODM-PAD-016 「新增」取消不落库', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open();
await prodmPriceAdjPage.cancelToolbarWithoutCommit('新增');
});
test('PRODM-PAD-017 「新增」必填为空拦截', async ({ prodmPriceAdjPage }) => {
await prodmPriceAdjPage.open();
await prodmPriceAdjPage.assertRequiredInterceptFor('新增');
});
}); });
}); });
...@@ -33,7 +33,7 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -33,7 +33,7 @@ test.describe('基础设置 · 产品管理', () => {
await prodmPriceCheckPage.assertConfiguredHeaders(); await prodmPriceCheckPage.assertConfiguredHeaders();
}); });
test('PRODM-PRC-008 无匹配空态(mock反例)', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-007 无匹配空态(mock反例)', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.searchByMockKeyword(); await prodmPriceCheckPage.searchByMockKeyword();
const snap = await prodmPriceCheckPage.snapshotList(); const snap = await prodmPriceCheckPage.snapshotList();
...@@ -42,38 +42,44 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -42,38 +42,44 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品物价核对 · 行内操作', () => { test.describe('产品物价核对 · 行内操作', () => {
test('PRODM-PRC-005 行内「详情」可达(只读冒烟)', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-005 审核页面物料编号与主列表一致', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.rowActionSmoke('详情'); await prodmPriceCheckPage.assertAuditMaterialCodeMatchesList();
}); });
test('PRODM-PRC-006 行内「审核」可达(只读冒烟)', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-006 行内「调整是否收费」打开后关闭', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.rowActionSmoke('审核'); await prodmPriceCheckPage.assertRowActionOpenAndCloseByCloseBtn('调整是否收费');
});
test('PRODM-PRC-007 行内「编辑」可达(只读冒烟)', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open();
await prodmPriceCheckPage.rowActionSmoke('编辑');
}); });
}); });
test.describe('产品物价核对 · 分页', () => { test.describe('产品物价核对 · 分页', () => {
test('PRODM-PRC-009 有数据时总条数', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-008 有数据时总条数', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.assertTotalWhenHasData(); await prodmPriceCheckPage.assertTotalWhenHasData();
}); });
test('PRODM-PRC-010 切换至第 2 页', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-009 切换至第 2 页', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.goToPage2ForProdm(); await prodmPriceCheckPage.goToPage2ForProdm();
}); });
test('PRODM-PRC-010 切换20条每页页面正常且列表同步', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open();
const { total, rowsBefore, rowsAfter } = await prodmPriceCheckPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20);
expect(rowsAfter, '当前页行数应与 20 条/页及总条数一致').toBe(expectedRows);
if (total > 20) {
expect(rowsAfter, '切换后可见行应随每页条数变化').not.toBe(rowsBefore);
}
expect(await prodmPriceCheckPage.getTotalCount(), '总条数应不变').toBe(total);
});
}); });
test.describe('产品物价核对 · 导出', () => { test.describe('产品物价核对 · 导出', () => {
test('PRODM-PRC-011 当前查询条件下导出', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-011 首行样本查询后导出', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.clickExportIfVisible(); await prodmPriceCheckPage.exportAfterQueryByFirstRowSample();
}); });
}); });
...@@ -83,33 +89,82 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -83,33 +89,82 @@ test.describe('基础设置 · 产品管理', () => {
await prodmPriceCheckPage.openToolbarOverlay('批量审核'); await prodmPriceCheckPage.openToolbarOverlay('批量审核');
await prodmPriceCheckPage.closeOverlay(); await prodmPriceCheckPage.closeOverlay();
}); });
});
test('PRODM-PRC-013 「批量审核」取消不落库', async ({ prodmPriceCheckPage }) => { test.describe('产品物价核对 · 批量是否收费', () => {
test('PRODM-PRC-013 打开「批量是否收费」对应弹窗/抽屉', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.cancelToolbarWithoutCommit('批量审核'); await prodmPriceCheckPage.openToolbarOverlay('批量是否收费');
await prodmPriceCheckPage.closeOverlay();
}); });
});
test('PRODM-PRC-014 「批量审核」必填为空拦截', async ({ prodmPriceCheckPage }) => { test.describe('产品物价核对 · 状态 Tab', () => {
test('PRODM-PRC-014 切换至「全部产品」', { tag: '@smoke' }, async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.open();
await prodmPriceCheckPage.assertRequiredInterceptFor('批量审核'); await prodmPriceCheckPage.clickStatusTab('全部产品');
}); });
}); });
test.describe('产品物价核对 · 批量是否收费', () => { test.describe('产品物价核对 · 全部产品 · 快捷筛选查询', () => {
test('PRODM-PRC-015 打开「批量是否收费」对应弹窗/抽屉', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-015 全量可见条件组合查询', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); test.skip(
await prodmPriceCheckPage.openToolbarOverlay('批量是否收费'); true,
await prodmPriceCheckPage.closeOverlay(); '组合查询须按页面配置 quickFields/drawerFields 实现 searchWithQuickAndDrawerCombo(对齐 center-report-sheet STAT-IOD-004),禁止临时启发式填表',
);
}); });
test('PRODM-PRC-016 「批量是否收费」取消不落库', async ({ prodmPriceCheckPage }) => { test('PRODM-PRC-017 快捷区重置恢复默认', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.open(); await prodmPriceCheckPage.openAllProducts();
await prodmPriceCheckPage.cancelToolbarWithoutCommit('批量是否收费'); await prodmPriceCheckPage.clickResetQuick();
await prodmPriceCheckPage.expectOnPage();
}); });
});
test('PRODM-PRC-017 「批量是否收费」必填为空拦截', async ({ prodmPriceCheckPage }) => { test.describe('产品物价核对 · 全部产品 · 查询条件展开收起', () => {
await prodmPriceCheckPage.open(); test('PRODM-PRC-016 展开后更多条件可见', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.assertRequiredInterceptFor('批量是否收费'); await prodmPriceCheckPage.openAllProducts();
await prodmPriceCheckPage.toggleFilterExpand();
});
});
test.describe('产品物价核对 · 全部产品 · 列表', () => {
test('PRODM-PRC-018 列设置隐藏后再恢复', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.openAllProducts();
await prodmPriceCheckPage.clickQuery();
await prodmPriceCheckPage.executeColumnSettingsToggleRestoreTest();
});
});
test.describe('产品物价核对 · 全部产品 · 分页', () => {
test('PRODM-PRC-019 切换至第 2 页', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.openAllProducts();
await prodmPriceCheckPage.goToPage2ForProdm();
});
test('PRODM-PRC-020 切换20条每页页面正常且列表同步', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.openAllProducts();
const { total, rowsBefore, rowsAfter } = await prodmPriceCheckPage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20);
expect(rowsAfter, '当前页行数应与 20 条/页及总条数一致').toBe(expectedRows);
if (total > 20) {
expect(rowsAfter, '切换后可见行应随每页条数变化').not.toBe(rowsBefore);
}
expect(await prodmPriceCheckPage.getTotalCount(), '总条数应不变').toBe(total);
});
});
test.describe('产品物价核对 · 全部产品 · 导出', () => {
test('PRODM-PRC-021 首行样本查询后导出', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.openAllProducts();
await prodmPriceCheckPage.exportAfterQueryByFirstRowSample();
});
});
test.describe('产品物价核对 · 全部产品 · 行内操作', () => {
test('PRODM-PRC-022 详情页面物料编号与列表一致', async ({ prodmPriceCheckPage }) => {
await prodmPriceCheckPage.openAllProducts();
await prodmPriceCheckPage.assertDetailMaterialCodeMatchesList();
}); });
}); });
......
...@@ -35,14 +35,14 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -35,14 +35,14 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品资质一览 · 行内操作', () => { test.describe('产品资质一览 · 行内操作', () => {
test('PRODM-QOV-004 行内「详情」可达(只读冒烟)', async ({ prodmQualOverviewPage }) => { test('PRODM-QOV-004 追溯详情弹框器械注册人与列表一致', async ({ prodmQualOverviewPage }) => {
await prodmQualOverviewPage.open(); await prodmQualOverviewPage.open();
await prodmQualOverviewPage.rowActionSmoke('详情'); await prodmQualOverviewPage.assertTraceRegistrantMatchesList();
}); });
test('PRODM-QOV-005 行内「查看」可达(只读冒烟)', async ({ prodmQualOverviewPage }) => { test('PRODM-QOV-005 详情弹框页面物料编号与列表一致', async ({ prodmQualOverviewPage }) => {
await prodmQualOverviewPage.open(); await prodmQualOverviewPage.open();
await prodmQualOverviewPage.rowActionSmoke('查看'); await prodmQualOverviewPage.assertViewMaterialCodeMatchesList();
}); });
}); });
...@@ -70,27 +70,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -70,27 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品资质一览 · 导出', () => { test.describe('产品资质一览 · 导出', () => {
test('PRODM-QOV-010 当前查询条件下导出', async ({ prodmQualOverviewPage }) => { test('PRODM-QOV-010 首行样本查询后导出', async ({ prodmQualOverviewPage }) => {
await prodmQualOverviewPage.open(); await prodmQualOverviewPage.open();
await prodmQualOverviewPage.clickExportIfVisible(); await prodmQualOverviewPage.exportAfterQueryByFirstRowSample();
});
});
test.describe('产品资质一览 · 资质判断结果', () => {
test('PRODM-QOV-011 打开「资质判断结果」对应弹窗/抽屉', async ({ prodmQualOverviewPage }) => {
await prodmQualOverviewPage.open();
await prodmQualOverviewPage.openToolbarOverlay('资质判断结果');
await prodmQualOverviewPage.closeOverlay();
});
test('PRODM-QOV-012 「资质判断结果」取消不落库', async ({ prodmQualOverviewPage }) => {
await prodmQualOverviewPage.open();
await prodmQualOverviewPage.cancelToolbarWithoutCommit('资质判断结果');
});
test('PRODM-QOV-013 「资质判断结果」必填为空拦截', async ({ prodmQualOverviewPage }) => {
await prodmQualOverviewPage.open();
await prodmQualOverviewPage.assertRequiredInterceptFor('资质判断结果');
}); });
}); });
......
...@@ -26,7 +26,13 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -26,7 +26,13 @@ test.describe('基础设置 · 产品管理', () => {
await prodmQualRulePage.assertConfiguredHeaders(); await prodmQualRulePage.assertConfiguredHeaders();
}); });
test('PRODM-QRL-007 无匹配空态(mock反例)', async ({ prodmQualRulePage }) => { test('PRODM-QRL-008 列设置隐藏后再恢复', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open();
await prodmQualRulePage.clickQuery();
await prodmQualRulePage.executeColumnSettingsToggleRestoreTest();
});
test('PRODM-QRL-004 无匹配空态(mock反例)', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open(); await prodmQualRulePage.open();
await prodmQualRulePage.searchByMockKeyword(); await prodmQualRulePage.searchByMockKeyword();
const snap = await prodmQualRulePage.snapshotList(); const snap = await prodmQualRulePage.snapshotList();
...@@ -35,34 +41,31 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -35,34 +41,31 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('产品资质齐全规则 · 行内操作', () => { test.describe('产品资质齐全规则 · 行内操作', () => {
test('PRODM-QRL-004 行内「详情」可达(只读冒烟)', async ({ prodmQualRulePage }) => { test('PRODM-QRL-009 编辑页产品性质与主列表一致', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open();
await prodmQualRulePage.rowActionSmoke('详情');
});
test('PRODM-QRL-005 行内「编辑」可达(只读冒烟)', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open(); await prodmQualRulePage.open();
await prodmQualRulePage.rowActionSmoke('编辑'); await prodmQualRulePage.assertEditProductNatureMatchesList();
}); });
});
test('PRODM-QRL-006 行内「日志」可达(只读冒烟)', async ({ prodmQualRulePage }) => { test.describe('产品资质齐全规则 · 新增', () => {
test('PRODM-QRL-010 新增保存失败弹出提示弹框', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open(); await prodmQualRulePage.open();
await prodmQualRulePage.rowActionSmoke('日志'); await prodmQualRulePage.assertAddSaveFailsWithPrompt();
}); });
}); });
test.describe('产品资质齐全规则 · 分页', () => { test.describe('产品资质齐全规则 · 分页', () => {
test('PRODM-QRL-008 有数据时总条数', async ({ prodmQualRulePage }) => { test('PRODM-QRL-005 有数据时总条数', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open(); await prodmQualRulePage.open();
await prodmQualRulePage.assertTotalWhenHasData(); await prodmQualRulePage.assertTotalWhenHasData();
}); });
test('PRODM-QRL-009 切换至第 2 页', async ({ prodmQualRulePage }) => { test('PRODM-QRL-006 切换至第 2 页', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open(); await prodmQualRulePage.open();
await prodmQualRulePage.goToPage2ForProdm(); await prodmQualRulePage.goToPage2ForProdm();
}); });
test('PRODM-QRL-010 切换20条每页页面正常且列表同步', async ({ prodmQualRulePage }) => { test('PRODM-QRL-007 切换20条每页页面正常且列表同步', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open(); await prodmQualRulePage.open();
const { total, rowsBefore, rowsAfter } = await prodmQualRulePage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmQualRulePage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
...@@ -74,22 +77,4 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -74,22 +77,4 @@ test.describe('基础设置 · 产品管理', () => {
}); });
}); });
test.describe('产品资质齐全规则 · 新增', () => {
test('PRODM-QRL-011 打开「新增」对应弹窗/抽屉', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open();
await prodmQualRulePage.openToolbarOverlay('新增');
await prodmQualRulePage.closeOverlay();
});
test('PRODM-QRL-012 「新增」取消不落库', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open();
await prodmQualRulePage.cancelToolbarWithoutCommit('新增');
});
test('PRODM-QRL-013 「新增」必填为空拦截', async ({ prodmQualRulePage }) => {
await prodmQualRulePage.open();
await prodmQualRulePage.assertRequiredInterceptFor('新增');
});
});
}); });
...@@ -99,9 +99,9 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -99,9 +99,9 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('请领出库渠道设置 · 导出', () => { test.describe('请领出库渠道设置 · 导出', () => {
test('PRODM-RCH-015 当前查询条件下导出', async ({ prodmReqChannelPage }) => { test('PRODM-RCH-015 首行样本查询后导出', async ({ prodmReqChannelPage }) => {
await prodmReqChannelPage.open(); await prodmReqChannelPage.open();
await prodmReqChannelPage.clickExportIfVisible(); await prodmReqChannelPage.exportAfterQueryByFirstRowSample();
}); });
}); });
......
...@@ -46,23 +46,18 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -46,23 +46,18 @@ test.describe('基础设置 · 产品管理', () => {
await prodmSettlePage.assertConfiguredHeaders(); await prodmSettlePage.assertConfiguredHeaders();
}); });
test('PRODM-STL-010 列设置隐藏后再恢复', async ({ prodmSettlePage }) => { test('PRODM-STL-007 列设置隐藏后再恢复', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
await prodmSettlePage.clickQuery(); await prodmSettlePage.clickQuery();
await prodmSettlePage.executeColumnSettingsToggleRestoreTest(); await prodmSettlePage.executeColumnSettingsToggleRestoreTest();
}); });
test('PRODM-STL-011 物料名称列升序降序切换', async ({ prodmSettlePage }) => { test('PRODM-STL-008 横向滚动与列对齐', async ({ prodmSettlePage }) => {
await prodmSettlePage.open();
await prodmSettlePage.expectColumnSortAscDesc('物料名称');
});
test('PRODM-STL-012 横向滚动与列对齐', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
await prodmSettlePage.expectHorizontalScrollAlignment(); await prodmSettlePage.expectHorizontalScrollAlignment();
}); });
test('PRODM-STL-013 无匹配空态(mock反例)', async ({ prodmSettlePage }) => { test('PRODM-STL-009 无匹配空态(mock反例)', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
await prodmSettlePage.searchByMockKeyword(); await prodmSettlePage.searchByMockKeyword();
const snap = await prodmSettlePage.snapshotList(); const snap = await prodmSettlePage.snapshotList();
...@@ -71,34 +66,31 @@ test.describe('基础设置 · 产品管理', () => { ...@@ -71,34 +66,31 @@ test.describe('基础设置 · 产品管理', () => {
}); });
test.describe('结算点设置 · 行内操作', () => { test.describe('结算点设置 · 行内操作', () => {
test('PRODM-STL-007 行内「详情」可达(只读冒烟)', async ({ prodmSettlePage }) => { test('PRODM-STL-010 日志弹框物料编号与主列表一致', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
await prodmSettlePage.rowActionSmoke('详情'); await prodmSettlePage.assertLogMaterialCodeMatchesList();
});
test('PRODM-STL-008 行内「编辑」可达(只读冒烟)', async ({ prodmSettlePage }) => {
await prodmSettlePage.open();
await prodmSettlePage.rowActionSmoke('编辑');
}); });
});
test('PRODM-STL-009 行内「日志」可达(只读冒烟)', async ({ prodmSettlePage }) => { test.describe('结算点设置 · 批量转移', () => {
test('PRODM-STL-011 勾选列表明细数量与批量转移按钮显示数量一致', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
await prodmSettlePage.rowActionSmoke('日志'); await prodmSettlePage.assertSelectionMatchesToolbarCount('批量转移');
}); });
}); });
test.describe('结算点设置 · 分页', () => { test.describe('结算点设置 · 分页', () => {
test('PRODM-STL-014 有数据时总条数', async ({ prodmSettlePage }) => { test('PRODM-STL-012 有数据时总条数', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
await prodmSettlePage.assertTotalWhenHasData(); await prodmSettlePage.assertTotalWhenHasData();
}); });
test('PRODM-STL-015 切换至第 2 页', async ({ prodmSettlePage }) => { test('PRODM-STL-013 切换至第 2 页', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
await prodmSettlePage.goToPage2ForProdm(); await prodmSettlePage.goToPage2ForProdm();
}); });
test('PRODM-STL-016 切换20条每页页面正常且列表同步', async ({ prodmSettlePage }) => { test('PRODM-STL-014 切换20条每页页面正常且列表同步', async ({ prodmSettlePage }) => {
await prodmSettlePage.open(); await prodmSettlePage.open();
const { total, rowsBefore, rowsAfter } = await prodmSettlePage.switchToPageSizeTwenty(); const { total, rowsBefore, rowsAfter } = await prodmSettlePage.switchToPageSizeTwenty();
const expectedRows = Math.min(total, 20); const expectedRows = Math.min(total, 20);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment