Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
test
autotest-playwright-web-spd
Commits
97840769
Commit
97840769
authored
Nov 06, 2026
by
liguangyu06
Browse files
新增期初管理全链路自动化资产,并加固产品管理用例与清理冗余截图。
紧急放行原因:用户要求立即推送今日改动备份,门禁用例待后续补跑。
parent
3dbf401d
Changes
266
Hide whitespace changes
Inline
Side-by-side
tests/spd/open-scan.spec.ts
0 → 100644
View file @
97840769
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
();
});
});
});
tests/spd/prodm-center-limit-ai.spec.ts
View file @
97840769
...
...
@@ -82,9 +82,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
中心库上下限建议(AI) · 导出
'
,
()
=>
{
test
(
'
PRODM-CLA-012
当前查询条件下
导出
'
,
async
({
prodmCenterLimitAiPage
})
=>
{
test
(
'
PRODM-CLA-012
首行样本查询后
导出
'
,
async
({
prodmCenterLimitAiPage
})
=>
{
await
prodmCenterLimitAiPage
.
open
();
await
prodmCenterLimitAiPage
.
clickExportIfVisib
le
();
await
prodmCenterLimitAiPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-center-limit.spec.ts
View file @
97840769
...
...
@@ -82,9 +82,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
中心库上下限建议 · 导出
'
,
()
=>
{
test
(
'
PRODM-CLM-012
当前查询条件下
导出
'
,
async
({
prodmCenterLimitPage
})
=>
{
test
(
'
PRODM-CLM-012
首行样本查询后
导出
'
,
async
({
prodmCenterLimitPage
})
=>
{
await
prodmCenterLimitPage
.
open
();
await
prodmCenterLimitPage
.
clickExportIfVisib
le
();
await
prodmCenterLimitPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-center-zone.spec.ts
View file @
97840769
...
...
@@ -88,9 +88,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
中心库库区产品设置 · 导出
'
,
()
=>
{
test
(
'
PRODM-CZO-013
当前查询条件下
导出
'
,
async
({
prodmCenterZonePage
})
=>
{
test
(
'
PRODM-CZO-013
首行样本查询后
导出
'
,
async
({
prodmCenterZonePage
})
=>
{
await
prodmCenterZonePage
.
open
();
await
prodmCenterZonePage
.
clickExportIfVisib
le
();
await
prodmCenterZonePage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-change-detail.spec.ts
View file @
97840769
...
...
@@ -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
(
'
PRODM-CHD-00
4
列表核心列完整
'
,
async
({
prodmChangeDetailPage
})
=>
{
test
(
'
PRODM-CHD-00
5
列表核心列完整
'
,
async
({
prodmChangeDetailPage
})
=>
{
await
prodmChangeDetailPage
.
open
();
await
prodmChangeDetailPage
.
assertConfiguredHeaders
();
});
test
(
'
PRODM-CHD-00
5
物料名称列升序降序切换
'
,
async
({
prodmChangeDetailPage
})
=>
{
test
(
'
PRODM-CHD-00
6
物料名称列升序降序切换
'
,
async
({
prodmChangeDetailPage
})
=>
{
await
prodmChangeDetailPage
.
open
();
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
.
searchByMockKeyword
();
const
snap
=
await
prodmChangeDetailPage
.
snapshotList
();
...
...
@@ -47,17 +130,12 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
变更单明细查询 · 分页
'
,
()
=>
{
test
(
'
PRODM-CHD-007 有数据时总条数
'
,
async
({
prodmChangeDetailPage
})
=>
{
await
prodmChangeDetailPage
.
open
();
await
prodmChangeDetailPage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-CHD-008 切换至第 2 页
'
,
async
({
prodmChangeDetailPage
})
=>
{
test
(
'
PRODM-CHD-023 切换至第 2 页
'
,
async
({
prodmChangeDetailPage
})
=>
{
await
prodmChangeDetailPage
.
open
();
await
prodmChangeDetailPage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-CHD-0
09
切换20条每页页面正常且列表同步
'
,
async
({
prodmChangeDetailPage
})
=>
{
test
(
'
PRODM-CHD-0
24
切换20条每页页面正常且列表同步
'
,
async
({
prodmChangeDetailPage
})
=>
{
await
prodmChangeDetailPage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmChangeDetailPage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
@@ -70,9 +148,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
变更单明细查询 · 导出
'
,
()
=>
{
test
(
'
PRODM-CHD-0
10 当前查询条件下
导出
'
,
async
({
prodmChangeDetailPage
})
=>
{
test
(
'
PRODM-CHD-0
25 首行样本查询后
导出
'
,
async
({
prodmChangeDetailPage
})
=>
{
await
prodmChangeDetailPage
.
open
();
await
prodmChangeDetailPage
.
clickExportIfVisib
le
();
await
prodmChangeDetailPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-check-reinit.spec.ts
View file @
97840769
...
...
@@ -77,9 +77,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品核对重新发起 · 导出
'
,
()
=>
{
test
(
'
PRODM-CHK-011
当前查询条件下
导出
'
,
async
({
prodmCheckReinitPage
})
=>
{
test
(
'
PRODM-CHK-011
首行样本查询后
导出
'
,
async
({
prodmCheckReinitPage
})
=>
{
await
prodmCheckReinitPage
.
open
();
await
prodmCheckReinitPage
.
clickExportIfVisib
le
();
await
prodmCheckReinitPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
@@ -89,15 +89,17 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmCheckReinitPage
.
openToolbarOverlay
(
'
重新发起审核
'
);
await
prodmCheckReinitPage
.
closeOverlay
();
});
});
test
(
'
PRODM-CHK-013 「重新发起审核」取消不落库
'
,
async
({
prodmCheckReinitPage
})
=>
{
test
.
describe
(
'
产品核对重新发起 · 批量重新审核
'
,
()
=>
{
test
(
'
PRODM-CHK-013 未勾选时「批量重新审核」置灰不可点击
'
,
async
({
prodmCheckReinitPage
})
=>
{
await
prodmCheckReinitPage
.
open
();
await
prodmCheckReinitPage
.
cancel
Toolbar
WithoutCommit
(
'
重新发起
审核
'
);
await
prodmCheckReinitPage
.
assert
Toolbar
DisabledWithoutRowSelection
(
'
批量重新
审核
'
);
});
test
(
'
PRODM-CHK-014
「重新发起审核」必填为空拦截
'
,
async
({
prodmCheckReinitPage
})
=>
{
test
(
'
PRODM-CHK-014
勾选后点击「批量重新审核」弹出提示弹框
'
,
async
({
prodmCheckReinitPage
})
=>
{
await
prodmCheckReinitPage
.
open
();
await
prodmCheckReinitPage
.
assert
RequiredInterceptFor
(
'
重新发起
审核
'
);
await
prodmCheckReinitPage
.
assert
ToolbarPromptAfterRowSelect
(
'
批量重新
审核
'
);
});
});
...
...
tests/spd/prodm-di-change.spec.ts
View file @
97840769
...
...
@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmDiChangePage
.
assertConfiguredHeaders
();
});
test
(
'
PRODM-DIC-00
8
列设置隐藏后再恢复
'
,
async
({
prodmDiChangePage
})
=>
{
test
(
'
PRODM-DIC-00
6
列设置隐藏后再恢复
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
clickQuery
();
await
prodmDiChangePage
.
executeColumnSettingsToggleRestoreTest
();
});
test
(
'
PRODM-DIC-00
9
横向滚动与列对齐
'
,
async
({
prodmDiChangePage
})
=>
{
test
(
'
PRODM-DIC-00
7
横向滚动与列对齐
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
expectHorizontalScrollAlignment
();
});
test
(
'
PRODM-DIC-0
1
0 无匹配空态(mock反例)
'
,
async
({
prodmDiChangePage
})
=>
{
test
(
'
PRODM-DIC-00
8
无匹配空态(mock反例)
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
searchByMockKeyword
();
const
snap
=
await
prodmDiChangePage
.
snapshotList
();
...
...
@@ -53,34 +53,24 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品DI变更 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-DIC-005
行内「详情」可达(只读冒烟)
'
,
async
({
prodmDiChangePage
})
=>
{
test
(
'
PRODM-DIC-005
详情页变更单号与主列表一致
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
rowActionSmoke
(
'
详情
'
);
});
test
(
'
PRODM-DIC-006 行内「编辑」可达(只读冒烟)
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
rowActionSmoke
(
'
编辑
'
);
});
test
(
'
PRODM-DIC-007 行内「日志」可达(只读冒烟)
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
rowActionSmoke
(
'
日志
'
);
await
prodmDiChangePage
.
assertDetailChangeOrderNoMatchesList
();
});
});
test
.
describe
(
'
产品DI变更 · 分页
'
,
()
=>
{
test
(
'
PRODM-DIC-0
11
有数据时总条数
'
,
async
({
prodmDiChangePage
})
=>
{
test
(
'
PRODM-DIC-0
09
有数据时总条数
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-DIC-01
2
切换至第 2 页
'
,
async
({
prodmDiChangePage
})
=>
{
test
(
'
PRODM-DIC-01
0
切换至第 2 页
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-DIC-01
3
切换20条每页页面正常且列表同步
'
,
async
({
prodmDiChangePage
})
=>
{
test
(
'
PRODM-DIC-01
1
切换20条每页页面正常且列表同步
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmDiChangePage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
@@ -92,4 +82,10 @@ test.describe('基础设置 · 产品管理', () => {
});
});
test
.
describe
(
'
产品DI变更 · 状态 Tab
'
,
()
=>
{
test
(
'
PRODM-DIC-012 状态 Tab 切换且计数与列表一致
'
,
async
({
prodmDiChangePage
})
=>
{
await
prodmDiChangePage
.
open
();
await
prodmDiChangePage
.
clickStatusTabsAndMatchCounts
();
});
});
});
tests/spd/prodm-di-query.spec.ts
View file @
97840769
...
...
@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品DI查询 · 导出
'
,
()
=>
{
test
(
'
PRODM-DIQ-010
当前查询条件下
导出
'
,
async
({
prodmDiQueryPage
})
=>
{
test
(
'
PRODM-DIQ-010
首行样本查询后
导出
'
,
async
({
prodmDiQueryPage
})
=>
{
await
prodmDiQueryPage
.
open
();
await
prodmDiQueryPage
.
clickExportIfVisib
le
();
await
prodmDiQueryPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-first-audit.spec.ts
View file @
97840769
...
...
@@ -33,7 +33,7 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmFirstAuditPage
.
assertConfiguredHeaders
();
});
test
(
'
PRODM-FAU-00
8
无匹配空态(mock反例)
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-00
6
无匹配空态(mock反例)
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
searchByMockKeyword
();
const
snap
=
await
prodmFirstAuditPage
.
snapshotList
();
...
...
@@ -42,34 +42,24 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品初审核对 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-FAU-005 行内「详情」可达(只读冒烟)
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
rowActionSmoke
(
'
详情
'
);
});
test
(
'
PRODM-FAU-006 行内「审核」可达(只读冒烟)
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-005 行内「审核」可达(只读冒烟)
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
rowActionSmoke
(
'
审核
'
);
});
test
(
'
PRODM-FAU-007 行内「编辑」可达(只读冒烟)
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
rowActionSmoke
(
'
编辑
'
);
});
});
test
.
describe
(
'
产品初审核对 · 分页
'
,
()
=>
{
test
(
'
PRODM-FAU-00
9
有数据时总条数
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-00
7
有数据时总条数
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-FAU-0
1
0 切换至第 2 页
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-00
8
切换至第 2 页
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-FAU-0
11
切换20条每页页面正常且列表同步
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-0
09
切换20条每页页面正常且列表同步
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmFirstAuditPage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
@@ -82,27 +72,96 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品初审核对 · 导出
'
,
()
=>
{
test
(
'
PRODM-FAU-01
2 当前查询条件下
导出
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-01
0 首行样本查询后
导出
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
clickExportIfVisib
le
();
await
prodmFirstAuditPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
test
.
describe
(
'
产品初审核对 · 产品初审核对
'
,
()
=>
{
test
(
'
PRODM-FAU-01
3
打开「产品初审核对」对应弹窗/抽屉
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-01
1
打开「产品初审核对」对应弹窗/抽屉
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
openToolbarOverlay
(
'
产品初审核对
'
);
await
prodmFirstAuditPage
.
closeOverlay
();
});
test
(
'
PRODM-FAU-01
4
「产品初审核对」取消不落库
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-01
2
「产品初审核对」取消不落库
'
,
async
({
prodmFirstAuditPage
})
=>
{
await
prodmFirstAuditPage
.
open
();
await
prodmFirstAuditPage
.
cancelToolbarWithoutCommit
(
'
产品初审核对
'
);
});
test
(
'
PRODM-FAU-01
5
「产品初审核对」必填为空拦截
'
,
async
({
prodmFirstAuditPage
})
=>
{
test
(
'
PRODM-FAU-01
3
「产品初审核对」必填为空拦截
'
,
async
({
prodmFirstAuditPage
})
=>
{
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
(
'
详情
'
);
});
});
...
...
tests/spd/prodm-info-change.spec.ts
View file @
97840769
...
...
@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmInfoChangePage
.
assertConfiguredHeaders
();
});
test
(
'
PRODM-ICH-00
8
列设置隐藏后再恢复
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-00
7
列设置隐藏后再恢复
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
clickQuery
();
await
prodmInfoChangePage
.
executeColumnSettingsToggleRestoreTest
();
});
test
(
'
PRODM-ICH-00
9
横向滚动与列对齐
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-00
8
横向滚动与列对齐
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
expectHorizontalScrollAlignment
();
});
test
(
'
PRODM-ICH-0
1
0 无匹配空态(mock反例)
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-00
9
无匹配空态(mock反例)
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
searchByMockKeyword
();
const
snap
=
await
prodmInfoChangePage
.
snapshotList
();
...
...
@@ -53,34 +53,29 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品信息变更 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-ICH-005
行内「详情」可达(只读冒烟)
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-005
详情页变更类型与主列表一致
'
,
async
({
prodmInfoChangePage
})
=>
{
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
.
rowActionSmoke
(
'
编辑
'
);
});
test
(
'
PRODM-ICH-007 行内「日志」可达(只读冒烟)
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
rowActionSmoke
(
'
日志
'
);
await
prodmInfoChangePage
.
assertEditChangeTypeMatchesList
();
});
});
test
.
describe
(
'
产品信息变更 · 分页
'
,
()
=>
{
test
(
'
PRODM-ICH-01
1
有数据时总条数
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-01
0
有数据时总条数
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-ICH-01
2
切换至第 2 页
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-01
1
切换至第 2 页
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-ICH-01
3
切换20条每页页面正常且列表同步
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-01
2
切换20条每页页面正常且列表同步
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmInfoChangePage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
@@ -93,27 +88,21 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品信息变更 · 打印
'
,
()
=>
{
test
(
'
PRODM-ICH-01
4
按当前条件打印
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-01
3
按当前条件打印
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
clickPrintIfVisible
();
});
});
test
.
describe
(
'
产品信息变更 · 新增
'
,
()
=>
{
test
(
'
PRODM-ICH-015 打开「新增」对应弹窗/抽屉
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
openToolbarOverlay
(
'
新增
'
);
await
prodmInfoChangePage
.
closeOverlay
();
});
test
(
'
PRODM-ICH-016 「新增」取消不落库
'
,
async
({
prodmInfoChangePage
})
=>
{
test
.
describe
(
'
产品信息变更 · 单属性/多属性变更
'
,
()
=>
{
test
(
'
PRODM-ICH-014 点击「单属性变更」跳转详情页无报错
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
cancel
Toolbar
WithoutCommit
(
'
新增
'
);
await
prodmInfoChangePage
.
assert
Toolbar
NavigatesToDetailWithoutError
(
'
单属性变更
'
);
});
test
(
'
PRODM-ICH-01
7 「新增」必填为空拦截
'
,
async
({
prodmInfoChangePage
})
=>
{
test
(
'
PRODM-ICH-01
5 点击「多属性变更」跳转详情页无报错
'
,
async
({
prodmInfoChangePage
})
=>
{
await
prodmInfoChangePage
.
open
();
await
prodmInfoChangePage
.
assert
RequiredInterceptFor
(
'
新增
'
);
await
prodmInfoChangePage
.
assert
ToolbarNavigatesToDetailWithoutError
(
'
多属性变更
'
);
});
});
...
...
tests/spd/prodm-maintain.spec.ts
View file @
97840769
...
...
@@ -57,12 +57,192 @@ test.describe('基础设置 · 产品管理', () => {
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
.
expectHorizontalScrollAlignment
();
});
test
(
'
PRODM-MNT-0
10
无匹配空态(mock反例)
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
46
无匹配空态(mock反例)
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
searchByMockKeyword
();
const
snap
=
await
prodmMaintainPage
.
snapshotList
();
...
...
@@ -71,17 +251,17 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品维护 · 分页
'
,
()
=>
{
test
(
'
PRODM-MNT-0
11
有数据时总条数
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
47
有数据时总条数
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-MNT-0
12
切换至第 2 页
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
48
切换至第 2 页
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-MNT-0
13
切换20条每页页面正常且列表同步
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
49
切换20条每页页面正常且列表同步
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmMaintainPage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
@@ -94,46 +274,73 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品维护 · 导出
'
,
()
=>
{
test
(
'
PRODM-MNT-0
14 当前查询条件下
导出
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
50 首行样本查询后
导出
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
clickExportIfVisib
le
();
await
prodmMaintainPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
test
.
describe
(
'
产品维护 · 分类
维护
'
,
()
=>
{
test
(
'
PRODM-MNT-0
1
5 打开「分类
维护
」对应弹窗/抽屉
'
,
async
({
prodmMaintainPage
})
=>
{
test
.
describe
(
'
产品维护 ·
新增
分类
'
,
()
=>
{
test
(
'
PRODM-MNT-05
1
打开「
新增
分类」对应弹窗/抽屉
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
open
Toolbar
Overlay
(
'
分类维护
'
);
await
prodmMaintainPage
.
open
AddCategory
Overlay
();
await
prodmMaintainPage
.
closeOverlay
();
});
test
(
'
PRODM-MNT-0
16 「分类维护
」取消不落库
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
52 「新增分类
」取消不落库
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
cancel
Toolbar
WithoutCommit
(
'
分类维护
'
);
await
prodmMaintainPage
.
cancel
AddCategory
WithoutCommit
();
});
test
(
'
PRODM-MNT-0
17 「分类维护
」必填为空拦截
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
53 「新增分类
」必填为空拦截
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
assertRequiredIntercept
For
(
'
分类维护
'
);
await
prodmMaintainPage
.
assert
AddCategory
RequiredIntercept
(
);
});
});
test
.
describe
(
'
产品维护 ·
添加
'
,
()
=>
{
test
(
'
PRODM-MNT-0
18
打开「
添加
」对应弹窗/抽屉
'
,
async
({
prodmMaintainPage
})
=>
{
test
.
describe
(
'
产品维护 ·
编辑分类
'
,
()
=>
{
test
(
'
PRODM-MNT-0
54
打开「
编辑分类
」对应弹窗/抽屉
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
await
prodmMaintainPage
.
open
Toolbar
Overlay
(
'
添加
'
);
await
prodmMaintainPage
.
open
EditCategory
Overlay
();
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
.
cancelToolbarWithoutCommit
(
'
添加
'
);
});
test
(
'
PRODM-MNT-0
20
「添加」必填为空拦截
'
,
async
({
prodmMaintainPage
})
=>
{
test
(
'
PRODM-MNT-0
58
「添加」必填为空拦截
'
,
async
({
prodmMaintainPage
})
=>
{
await
prodmMaintainPage
.
open
();
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
();
});
});
});
tests/spd/prodm-material-chg-detail.spec.ts
View file @
97840769
...
...
@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
物料变更单明细查询 · 导出
'
,
()
=>
{
test
(
'
PRODM-MCD-010
当前查询条件下
导出
'
,
async
({
prodmMaterialChgDetailPage
})
=>
{
test
(
'
PRODM-MCD-010
首行样本查询后
导出
'
,
async
({
prodmMaterialChgDetailPage
})
=>
{
await
prodmMaterialChgDetailPage
.
open
();
await
prodmMaterialChgDetailPage
.
clickExportIfVisib
le
();
await
prodmMaterialChgDetailPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-material.spec.ts
View file @
97840769
...
...
@@ -94,9 +94,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
物料信息管理 · 导出
'
,
()
=>
{
test
(
'
PRODM-MAT-014
当前查询条件下
导出
'
,
async
({
prodmMaterialPage
})
=>
{
test
(
'
PRODM-MAT-014
首行样本查询后
导出
'
,
async
({
prodmMaterialPage
})
=>
{
await
prodmMaterialPage
.
open
();
await
prodmMaterialPage
.
clickExportIfVisib
le
();
await
prodmMaterialPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-peripheral-add.spec.ts
View file @
97840769
...
...
@@ -70,9 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
外围系统产品新增 · 导出
'
,
()
=>
{
test
(
'
PRODM-PPA-010
当前查询条件下
导出
'
,
async
({
prodmPeripheralAddPage
})
=>
{
test
(
'
PRODM-PPA-010
首行样本查询后
导出
'
,
async
({
prodmPeripheralAddPage
})
=>
{
await
prodmPeripheralAddPage
.
open
();
await
prodmPeripheralAddPage
.
clickExportIfVisib
le
();
await
prodmPeripheralAddPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-price-adj.spec.ts
View file @
97840769
...
...
@@ -33,18 +33,18 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmPriceAdjPage
.
assertConfiguredHeaders
();
});
test
(
'
PRODM-PAD-00
8
列设置隐藏后再恢复
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-00
7
列设置隐藏后再恢复
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
clickQuery
();
await
prodmPriceAdjPage
.
executeColumnSettingsToggleRestoreTest
();
});
test
(
'
PRODM-PAD-00
9
横向滚动与列对齐
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-00
8
横向滚动与列对齐
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
expectHorizontalScrollAlignment
();
});
test
(
'
PRODM-PAD-0
1
0 无匹配空态(mock反例)
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-00
9
无匹配空态(mock反例)
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
searchByMockKeyword
();
const
snap
=
await
prodmPriceAdjPage
.
snapshotList
();
...
...
@@ -53,34 +53,29 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
调价管理 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-PAD-005
行内「再次调价」可达(只读冒烟)
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-005
详情页单号与主列表一致
'
,
async
({
prodmPriceAdjPage
})
=>
{
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
.
rowActionSmoke
(
'
详情
'
);
});
test
(
'
PRODM-PAD-007 行内「打印」可达(只读冒烟)
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
rowActionSmoke
(
'
打印
'
);
await
prodmPriceAdjPage
.
assertRepriceSellerCustomMatchesList
();
});
});
test
.
describe
(
'
调价管理 · 分页
'
,
()
=>
{
test
(
'
PRODM-PAD-01
1
有数据时总条数
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-01
0
有数据时总条数
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-PAD-01
2
切换至第 2 页
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-01
1
切换至第 2 页
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-PAD-01
3
切换20条每页页面正常且列表同步
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-01
2
切换20条每页页面正常且列表同步
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmPriceAdjPage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
@@ -93,28 +88,18 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
调价管理 · 打印
'
,
()
=>
{
test
(
'
PRODM-PAD-01
4
按当前条件打印
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-01
3
按当前条件打印
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
clickPrintIfVisible
();
});
});
test
.
describe
(
'
调价管理 · 新增
'
,
()
=>
{
test
(
'
PRODM-PAD-01
5
打开「新增」对应弹窗/抽屉
'
,
async
({
prodmPriceAdjPage
})
=>
{
test
(
'
PRODM-PAD-01
4
打开「新增」对应弹窗/抽屉
'
,
async
({
prodmPriceAdjPage
})
=>
{
await
prodmPriceAdjPage
.
open
();
await
prodmPriceAdjPage
.
openToolbarOverlay
(
'
新增
'
);
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
(
'
新增
'
);
});
});
});
tests/spd/prodm-price-check.spec.ts
View file @
97840769
...
...
@@ -33,7 +33,7 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmPriceCheckPage
.
assertConfiguredHeaders
();
});
test
(
'
PRODM-PRC-00
8
无匹配空态(mock反例)
'
,
async
({
prodmPriceCheckPage
})
=>
{
test
(
'
PRODM-PRC-00
7
无匹配空态(mock反例)
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
await
prodmPriceCheckPage
.
searchByMockKeyword
();
const
snap
=
await
prodmPriceCheckPage
.
snapshotList
();
...
...
@@ -42,38 +42,44 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品物价核对 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-PRC-005
行内「详情」可达(只读冒烟)
'
,
async
({
prodmPriceCheckPage
})
=>
{
test
(
'
PRODM-PRC-005
审核页面物料编号与主列表一致
'
,
async
({
prodmPriceCheckPage
})
=>
{
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
.
rowActionSmoke
(
'
审核
'
);
});
test
(
'
PRODM-PRC-007 行内「编辑」可达(只读冒烟)
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
await
prodmPriceCheckPage
.
rowActionSmoke
(
'
编辑
'
);
await
prodmPriceCheckPage
.
assertRowActionOpenAndCloseByCloseBtn
(
'
调整是否收费
'
);
});
});
test
.
describe
(
'
产品物价核对 · 分页
'
,
()
=>
{
test
(
'
PRODM-PRC-00
9
有数据时总条数
'
,
async
({
prodmPriceCheckPage
})
=>
{
test
(
'
PRODM-PRC-00
8
有数据时总条数
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
await
prodmPriceCheckPage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-PRC-0
1
0 切换至第 2 页
'
,
async
({
prodmPriceCheckPage
})
=>
{
test
(
'
PRODM-PRC-00
9
切换至第 2 页
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
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
(
'
PRODM-PRC-011
当前查询条件下
导出
'
,
async
({
prodmPriceCheckPage
})
=>
{
test
(
'
PRODM-PRC-011
首行样本查询后
导出
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
await
prodmPriceCheckPage
.
clickExportIfVisib
le
();
await
prodmPriceCheckPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
@@ -83,33 +89,82 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmPriceCheckPage
.
openToolbarOverlay
(
'
批量审核
'
);
await
prodmPriceCheckPage
.
closeOverlay
();
});
});
test
(
'
PRODM-PRC-013 「批量审核」取消不落库
'
,
async
({
prodmPriceCheckPage
})
=>
{
test
.
describe
(
'
产品物价核对 · 批量是否收费
'
,
()
=>
{
test
(
'
PRODM-PRC-013 打开「批量是否收费」对应弹窗/抽屉
'
,
async
({
prodmPriceCheckPage
})
=>
{
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
.
assertRequiredInterceptFor
(
'
批量审核
'
);
await
prodmPriceCheckPage
.
clickStatusTab
(
'
全部产品
'
);
});
});
test
.
describe
(
'
产品物价核对 · 批量是否收费
'
,
()
=>
{
test
(
'
PRODM-PRC-015 打开「批量是否收费」对应弹窗/抽屉
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
await
prodmPriceCheckPage
.
openToolbarOverlay
(
'
批量是否收费
'
);
await
prodmPriceCheckPage
.
closeOverlay
();
test
.
describe
(
'
产品物价核对 · 全部产品 · 快捷筛选查询
'
,
()
=>
{
test
(
'
PRODM-PRC-015 全量可见条件组合查询
'
,
async
({
prodmPriceCheckPage
})
=>
{
test
.
skip
(
true
,
'
组合查询须按页面配置 quickFields/drawerFields 实现 searchWithQuickAndDrawerCombo(对齐 center-report-sheet STAT-IOD-004),禁止临时启发式填表
'
,
);
});
test
(
'
PRODM-PRC-016 「批量是否收费」取消不落库
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
await
prodmPriceCheckPage
.
cancelToolbarWithoutCommit
(
'
批量是否收费
'
);
test
(
'
PRODM-PRC-017 快捷区重置恢复默认
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
openAllProducts
();
await
prodmPriceCheckPage
.
clickResetQuick
();
await
prodmPriceCheckPage
.
expectOnPage
();
});
});
test
(
'
PRODM-PRC-017 「批量是否收费」必填为空拦截
'
,
async
({
prodmPriceCheckPage
})
=>
{
await
prodmPriceCheckPage
.
open
();
await
prodmPriceCheckPage
.
assertRequiredInterceptFor
(
'
批量是否收费
'
);
test
.
describe
(
'
产品物价核对 · 全部产品 · 查询条件展开收起
'
,
()
=>
{
test
(
'
PRODM-PRC-016 展开后更多条件可见
'
,
async
({
prodmPriceCheckPage
})
=>
{
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
();
});
});
...
...
tests/spd/prodm-qual-overview.spec.ts
View file @
97840769
...
...
@@ -35,14 +35,14 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品资质一览 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-QOV-004
行内「详情」可达(只读冒烟)
'
,
async
({
prodmQualOverviewPage
})
=>
{
test
(
'
PRODM-QOV-004
追溯详情弹框器械注册人与列表一致
'
,
async
({
prodmQualOverviewPage
})
=>
{
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
.
rowActionSmoke
(
'
查看
'
);
await
prodmQualOverviewPage
.
assertViewMaterialCodeMatchesList
(
);
});
});
...
...
@@ -70,27 +70,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品资质一览 · 导出
'
,
()
=>
{
test
(
'
PRODM-QOV-010
当前查询条件下
导出
'
,
async
({
prodmQualOverviewPage
})
=>
{
test
(
'
PRODM-QOV-010
首行样本查询后
导出
'
,
async
({
prodmQualOverviewPage
})
=>
{
await
prodmQualOverviewPage
.
open
();
await
prodmQualOverviewPage
.
clickExportIfVisible
();
});
});
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
(
'
资质判断结果
'
);
await
prodmQualOverviewPage
.
exportAfterQueryByFirstRowSample
();
});
});
...
...
tests/spd/prodm-qual-rule.spec.ts
View file @
97840769
...
...
@@ -26,7 +26,13 @@ test.describe('基础设置 · 产品管理', () => {
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
.
searchByMockKeyword
();
const
snap
=
await
prodmQualRulePage
.
snapshotList
();
...
...
@@ -35,34 +41,31 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
产品资质齐全规则 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-QRL-004 行内「详情」可达(只读冒烟)
'
,
async
({
prodmQualRulePage
})
=>
{
await
prodmQualRulePage
.
open
();
await
prodmQualRulePage
.
rowActionSmoke
(
'
详情
'
);
});
test
(
'
PRODM-QRL-005 行内「编辑」可达(只读冒烟)
'
,
async
({
prodmQualRulePage
})
=>
{
test
(
'
PRODM-QRL-009 编辑页产品性质与主列表一致
'
,
async
({
prodmQualRulePage
})
=>
{
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
.
rowActionSmoke
(
'
日志
'
);
await
prodmQualRulePage
.
assertAddSaveFailsWithPrompt
(
);
});
});
test
.
describe
(
'
产品资质齐全规则 · 分页
'
,
()
=>
{
test
(
'
PRODM-QRL-00
8
有数据时总条数
'
,
async
({
prodmQualRulePage
})
=>
{
test
(
'
PRODM-QRL-00
5
有数据时总条数
'
,
async
({
prodmQualRulePage
})
=>
{
await
prodmQualRulePage
.
open
();
await
prodmQualRulePage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-QRL-00
9
切换至第 2 页
'
,
async
({
prodmQualRulePage
})
=>
{
test
(
'
PRODM-QRL-00
6
切换至第 2 页
'
,
async
({
prodmQualRulePage
})
=>
{
await
prodmQualRulePage
.
open
();
await
prodmQualRulePage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-QRL-0
1
0 切换20条每页页面正常且列表同步
'
,
async
({
prodmQualRulePage
})
=>
{
test
(
'
PRODM-QRL-00
7
切换20条每页页面正常且列表同步
'
,
async
({
prodmQualRulePage
})
=>
{
await
prodmQualRulePage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmQualRulePage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
@@ -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
(
'
新增
'
);
});
});
});
tests/spd/prodm-req-channel.spec.ts
View file @
97840769
...
...
@@ -99,9 +99,9 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
请领出库渠道设置 · 导出
'
,
()
=>
{
test
(
'
PRODM-RCH-015
当前查询条件下
导出
'
,
async
({
prodmReqChannelPage
})
=>
{
test
(
'
PRODM-RCH-015
首行样本查询后
导出
'
,
async
({
prodmReqChannelPage
})
=>
{
await
prodmReqChannelPage
.
open
();
await
prodmReqChannelPage
.
clickExportIfVisib
le
();
await
prodmReqChannelPage
.
exportAfterQueryByFirstRowSamp
le
();
});
});
...
...
tests/spd/prodm-settle.spec.ts
View file @
97840769
...
...
@@ -46,23 +46,18 @@ test.describe('基础设置 · 产品管理', () => {
await
prodmSettlePage
.
assertConfiguredHeaders
();
});
test
(
'
PRODM-STL-0
1
0 列设置隐藏后再恢复
'
,
async
({
prodmSettlePage
})
=>
{
test
(
'
PRODM-STL-00
7
列设置隐藏后再恢复
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
clickQuery
();
await
prodmSettlePage
.
executeColumnSettingsToggleRestoreTest
();
});
test
(
'
PRODM-STL-011 物料名称列升序降序切换
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
expectColumnSortAscDesc
(
'
物料名称
'
);
});
test
(
'
PRODM-STL-012 横向滚动与列对齐
'
,
async
({
prodmSettlePage
})
=>
{
test
(
'
PRODM-STL-008 横向滚动与列对齐
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
expectHorizontalScrollAlignment
();
});
test
(
'
PRODM-STL-0
13
无匹配空态(mock反例)
'
,
async
({
prodmSettlePage
})
=>
{
test
(
'
PRODM-STL-0
09
无匹配空态(mock反例)
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
searchByMockKeyword
();
const
snap
=
await
prodmSettlePage
.
snapshotList
();
...
...
@@ -71,34 +66,31 @@ test.describe('基础设置 · 产品管理', () => {
});
test
.
describe
(
'
结算点设置 · 行内操作
'
,
()
=>
{
test
(
'
PRODM-STL-0
07 行内「详情」可达(只读冒烟)
'
,
async
({
prodmSettlePage
})
=>
{
test
(
'
PRODM-STL-0
10 日志弹框物料编号与主列表一致
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
rowActionSmoke
(
'
详情
'
);
});
test
(
'
PRODM-STL-008 行内「编辑」可达(只读冒烟)
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
rowActionSmoke
(
'
编辑
'
);
await
prodmSettlePage
.
assertLogMaterialCodeMatchesList
();
});
});
test
(
'
PRODM-STL-009 行内「日志」可达(只读冒烟)
'
,
async
({
prodmSettlePage
})
=>
{
test
.
describe
(
'
结算点设置 · 批量转移
'
,
()
=>
{
test
(
'
PRODM-STL-011 勾选列表明细数量与批量转移按钮显示数量一致
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
rowActionSmoke
(
'
日志
'
);
await
prodmSettlePage
.
assertSelectionMatchesToolbarCount
(
'
批量转移
'
);
});
});
test
.
describe
(
'
结算点设置 · 分页
'
,
()
=>
{
test
(
'
PRODM-STL-01
4
有数据时总条数
'
,
async
({
prodmSettlePage
})
=>
{
test
(
'
PRODM-STL-01
2
有数据时总条数
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
assertTotalWhenHasData
();
});
test
(
'
PRODM-STL-01
5
切换至第 2 页
'
,
async
({
prodmSettlePage
})
=>
{
test
(
'
PRODM-STL-01
3
切换至第 2 页
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
await
prodmSettlePage
.
goToPage2ForProdm
();
});
test
(
'
PRODM-STL-01
6
切换20条每页页面正常且列表同步
'
,
async
({
prodmSettlePage
})
=>
{
test
(
'
PRODM-STL-01
4
切换20条每页页面正常且列表同步
'
,
async
({
prodmSettlePage
})
=>
{
await
prodmSettlePage
.
open
();
const
{
total
,
rowsBefore
,
rowsAfter
}
=
await
prodmSettlePage
.
switchToPageSizeTwenty
();
const
expectedRows
=
Math
.
min
(
total
,
20
);
...
...
Prev
1
…
9
10
11
12
13
14
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment