|
|
@@ -82,9 +82,9 @@ function generateTestPerson() {
|
|
|
disabilityType: '肢体残疾',
|
|
|
disabilityLevel: '一级',
|
|
|
phone: `138${String(timestamp).slice(-8)}`,
|
|
|
- idAddress: `北京市朝阳区测试路${timestamp % 100}号`,
|
|
|
- province: '北京市',
|
|
|
- city: '北京市',
|
|
|
+ idAddress: `广东省广州市测试路${timestamp % 100}号`,
|
|
|
+ province: '广东省',
|
|
|
+ city: '广州市',
|
|
|
};
|
|
|
}
|
|
|
|
|
|
@@ -200,7 +200,7 @@ test.describe('跨系统数据一致性验证 - Story 13.12 (任务 12-15)', ()
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- await page.waitForTimeout(TEST_POLL_INTERVAL);
|
|
|
+ await page.page.waitForTimeout(TEST_POLL_INTERVAL);
|
|
|
}
|
|
|
|
|
|
testState.updatedEmploymentCount = updatedCount;
|
|
|
@@ -226,7 +226,7 @@ test.describe('跨系统数据一致性验证 - Story 13.12 (任务 12-15)', ()
|
|
|
console.debug(`[小程序] 当前在职人数: ${currentCount ?? '无数据'}`);
|
|
|
});
|
|
|
|
|
|
- test('步骤 2: 后台修改人员状态为离职', async ({ adminPage }) => {
|
|
|
+ test('步骤 2: 后台修改人员状态为未在职', async ({ adminPage }) => {
|
|
|
if (!testState.personName) {
|
|
|
console.debug('[跳过] 未找到测试人员,跳过状态修改测试');
|
|
|
test.skip();
|
|
|
@@ -246,14 +246,12 @@ test.describe('跨系统数据一致性验证 - Story 13.12 (任务 12-15)', ()
|
|
|
await personPage.openEditDialog(testState.personName);
|
|
|
await adminPage.waitForTimeout(TIMEOUTS.MEDIUM);
|
|
|
|
|
|
- // 注意:这里需要修改人员的工作状态为"离职"
|
|
|
- // 具体的实现取决于表单结构,这里提供基础框架
|
|
|
- // TODO: 实现修改工作状态的具体逻辑
|
|
|
+ // 修改人员工作状态为"未在职"(离职)
|
|
|
+ const result = await personPage.updateWorkStatus(false);
|
|
|
|
|
|
- // 提交修改
|
|
|
- // await personPage.submitAndSave();
|
|
|
-
|
|
|
- console.debug(`[后台] 已修改人员状态: ${testState.personName}`);
|
|
|
+ // 验证修改成功
|
|
|
+ expect(result.hasSuccess || !result.hasError).toBe(true);
|
|
|
+ console.debug(`[后台] 已修改人员状态为未在职: ${testState.personName}`);
|
|
|
});
|
|
|
|
|
|
test('步骤 3: 验证小程序在职人数减少', async ({ enterpriseMiniPage: miniPage }) => {
|
|
|
@@ -266,15 +264,44 @@ test.describe('跨系统数据一致性验证 - Story 13.12 (任务 12-15)', ()
|
|
|
await miniPage.navigateToStatisticsPage();
|
|
|
await miniPage.waitForStatisticsDataLoaded();
|
|
|
|
|
|
- // 等待数据更新
|
|
|
- await miniPage.page.waitForTimeout(TIMEOUTS.LONG);
|
|
|
+ // 记录同步开始时间
|
|
|
+ const syncStartTime = Date.now();
|
|
|
+
|
|
|
+ // 轮询检查统计数据是否更新
|
|
|
+ let updatedCount: number | null = null;
|
|
|
+ let found = false;
|
|
|
+
|
|
|
+ for (let elapsed = 0; elapsed <= TEST_SYNC_TIMEOUT; elapsed += TEST_POLL_INTERVAL) {
|
|
|
+ // 强制刷新统计数据
|
|
|
+ await miniPage.forceRefreshStatistics();
|
|
|
+ await miniPage.waitForStatisticsDataLoaded();
|
|
|
+
|
|
|
+ updatedCount = await miniPage.getEmploymentCount();
|
|
|
+
|
|
|
+ // 检查数据是否更新(在职人数应该减少)
|
|
|
+ if (testState.initialEmploymentCount !== null &&
|
|
|
+ updatedCount !== null &&
|
|
|
+ updatedCount < testState.initialEmploymentCount) {
|
|
|
+ found = true;
|
|
|
+ testState.syncTime = Date.now() - syncStartTime;
|
|
|
+ console.debug(`[小程序] 统计数据已更新,耗时: ${testState.syncTime}ms`);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ await miniPage.page.waitForTimeout(TEST_POLL_INTERVAL);
|
|
|
+ }
|
|
|
|
|
|
- const updatedCount = await miniPage.getEmploymentCount();
|
|
|
testState.updatedEmploymentCount = updatedCount;
|
|
|
|
|
|
- // 验证在职人数减少(如果状态修改成功)
|
|
|
- // 注意:此验证依赖于状态修改的实现
|
|
|
- console.debug(`[验证] 当前在职人数: ${updatedCount ?? '无数据'}`);
|
|
|
+ // 验证数据已更新
|
|
|
+ expect(found, `在职人数应该从 ${testState.initialEmploymentCount} 减少`).toBe(true);
|
|
|
+ if (testState.initialEmploymentCount !== null) {
|
|
|
+ expect(updatedCount).toBeLessThan(testState.initialEmploymentCount);
|
|
|
+ }
|
|
|
+
|
|
|
+ console.debug(`[验证] 修改前在职人数: ${testState.initialEmploymentCount}`);
|
|
|
+ console.debug(`[验证] 修改后在职人数: ${updatedCount}`);
|
|
|
+ console.debug(`[验证] 在职人数减少: ${(testState.initialEmploymentCount ?? 0) - (updatedCount ?? 0)}`);
|
|
|
});
|
|
|
});
|
|
|
|