import { describe, it, cy } from 'cypress'; describe('HIS 业务逻辑回归测试集', () => { beforeEach(() => { cy.clearCookies(); cy.clearLocalStorage(); }); // ... 其他历史回归测试用例 ... it('@bug505 @regression 已发药医嘱禁止护士直接退回', () => { // 1. 医生端:开具临时医嘱 cy.login('doctor1', '123456'); cy.visit('/doctor/order'); cy.get('[data-testid="new-order-btn"]').click(); cy.get('[data-testid="drug-input"]').type('头孢哌酮钠舒巴坦钠'); cy.get('[data-testid="submit-order-btn"]').click(); cy.contains('医嘱开具成功').should('be.visible'); // 2. 护士端:校对并执行,产生发药申请 cy.login('wx', '123456'); cy.visit('/nurse/order-verify'); cy.get('[data-testid="verify-btn"]').click(); cy.get('[data-testid="execute-btn"]').click(); cy.contains('执行成功').should('be.visible'); // 3. 药房端:执行发药操作 cy.login('ykk1', '123456'); cy.visit('/pharmacy/dispense'); cy.get('[data-testid="dispense-btn"]').click(); cy.contains('发药成功').should('be.visible'); // 4. 护士端:尝试退回已发药医嘱 cy.login('wx', '123456'); cy.visit('/nurse/order-verify'); cy.get('[data-testid="verified-tab"]').click(); cy.get('[data-testid="order-checkbox"]').first().check(); // 5. 验证拦截逻辑:点击退回应弹出明确警示,且按钮理想状态下应置灰 cy.get('[data-testid="return-btn"]').click(); cy.contains('该药品已由药房发放,请先执行退药处理,不可直接退回').should('be.visible'); // 验证状态未发生流转(仍停留在已校对页签) cy.get('[data-testid="verified-tab"]').should('have.class', 'active'); cy.get('[data-testid="returned-tab"]').should('not.have.class', 'active'); }); });