Fix Bug #505: AI修复
This commit is contained in:
@@ -58,26 +58,29 @@ test.describe('Bug Regression Tests', () => {
|
||||
const summaryRowsAfter = await page.locator('.dispense-summary-table tbody tr').count();
|
||||
|
||||
expect(detailRowsAfter).toBeGreaterThan(0);
|
||||
expect(summaryRowsAfter).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
test('@bug505 @regression 验证已发药/已执行医嘱禁止直接退回', async ({ page }) => {
|
||||
// 前置条件:测试环境已预置一条 dispenseStatus=1 且 executeStatus=1 的药品医嘱
|
||||
test('@bug505 @regression 验证已发药/已执行医嘱的退回按钮禁用及拦截逻辑', async ({ page }) => {
|
||||
await page.goto('/inpatient/nurse/order-verify');
|
||||
await page.waitForSelector('el-table__body tr');
|
||||
await page.waitForLoadState('networkidle');
|
||||
|
||||
// 1. 勾选已发药医嘱
|
||||
const firstRowCheckbox = page.locator('el-table__body tr').first().locator('input[type="checkbox"]');
|
||||
await firstRowCheckbox.check();
|
||||
|
||||
// 2. 验证【退回】按钮置灰不可点击
|
||||
const returnBtn = page.locator('button:has-text("退回")');
|
||||
|
||||
// 1. 初始未勾选状态,按钮应禁用
|
||||
await expect(returnBtn).toBeDisabled();
|
||||
|
||||
// 3. 验证若强制绕过前端限制调用接口,后端应拦截并返回明确提示
|
||||
// 模拟点击(若未置灰)或直接验证按钮状态已满足业务预期
|
||||
// 此处通过断言 disabled 状态确认前端拦截生效
|
||||
const isDisabled = await returnBtn.isDisabled();
|
||||
expect(isDisabled).toBe(true);
|
||||
// 2. 模拟勾选一条“已发药”或“已执行”的医嘱(假设表格第一行数据满足条件)
|
||||
const firstRowCheckbox = page.locator('table tbody tr').first().locator('input[type="checkbox"]');
|
||||
await firstRowCheckbox.check();
|
||||
|
||||
// 3. 验证按钮保持禁用状态(核心修复验证)
|
||||
await expect(returnBtn).toBeDisabled();
|
||||
|
||||
// 4. 防御性验证:若通过脚本移除 disabled 属性强制点击,应拦截并提示
|
||||
await returnBtn.evaluate(node => node.removeAttribute('disabled'));
|
||||
await returnBtn.click();
|
||||
|
||||
// 验证警告提示出现
|
||||
await expect(page.locator('.el-message--warning')).toContainText('该药品已由药房发放,请先执行退药处理,不可直接退回');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user