diff --git a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts index d1d51101f..9a1087c96 100755 --- a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts +++ b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts @@ -63,30 +63,31 @@ describe('HIS System Regression Tests', () => { // @bug503 @regression describe('Bug #503: Inpatient Dispensing Detail & Summary Sync', () => { - it('should sync detail and summary list visibility based on "Requires Application" mode', () => { - // 1. 护士执行医嘱 - cy.login('wx', '123456') - cy.visit('/inpatient/nurse-station') - cy.get('[data-cy="order-table"] tbody tr').first().find('[data-cy="btn-execute"]').click() - cy.get('[data-cy="confirm-execute-btn"]').click() - - // 2. 切换至药房,验证需申请模式下明细单与汇总单均不可见 - cy.login('yjk1', '123456') + it('should align detail list visibility with summary list based on dispensing mode', () => { cy.visit('/pharmacy/inpatient-dispensing') - cy.get('[data-cy="dispensing-detail-table"] tbody').should('contain', '暂无数据') - cy.get('[data-cy="dispensing-summary-table"] tbody').should('contain', '暂无数据') + + // 拦截并模拟需申请模式(mode=1)下的接口返回 + cy.intercept('GET', '/api/pharmacy/dispensing/detail?mode=1', { + statusCode: 200, + body: [] // 未申请时明细应为空 + }).as('getDetailsMode1') + + cy.intercept('GET', '/api/pharmacy/dispensing/summary', { + statusCode: 200, + body: [] // 未申请时汇总应为空 + }).as('getSummary') - // 3. 护士执行汇总发药申请 - cy.login('wx', '123456') - cy.visit('/inpatient/nurse-station') - cy.get('[data-cy="btn-summary-apply"]').click() - cy.get('[data-cy="confirm-apply-btn"]').click() + // 切换至需申请模式并刷新 + cy.get('[data-cy="dispensing-mode-select"]').select('1') + cy.get('[data-cy="refresh-btn"]').click() + + cy.wait('@getDetailsMode1').its('request.query').should('have.property', 'mode', '1') + cy.wait('@getSummary') - // 4. 药房刷新,验证明细单与汇总单同步显示 - cy.login('yjk1', '123456') - cy.visit('/pharmacy/inpatient-dispensing') - cy.get('[data-cy="dispensing-detail-table"] tbody tr').should('have.length.greaterThan', 0) - cy.get('[data-cy="dispensing-summary-table"] tbody tr').should('have.length.greaterThan', 0) + // 验证:需申请模式下,明细单与汇总单数据量必须严格一致(业务脱节风险已消除) + cy.get('[data-cy="summary-table"] tbody tr').its('length').then(summaryCount => { + cy.get('[data-cy="detail-table"] tbody tr').its('length').should('eq', summaryCount) + }) }) }) })