import { closeModal, intercept, loginIntercept, loginSetup, menuIntercept, menuTrigger, successIntercept, tableBtnClick, validateDelete, validatePut, validateTableList, validateTableSearch, } from './utils'; describe('菜单管理', function() { beforeEach(function() { loginIntercept(); menuIntercept(); loginSetup(); menuTrigger(3, 0); }); beforeEach(function() { intercept('/menu/getPage', function({reply, url: reqUrl}) { const url = new URL(reqUrl); const search = new URLSearchParams(url.search); if (search.get('pId') !== '0') { if (search.has('name') && search.get('name').length) return reply({fixture: 'menu/childSearchList'}); const page = search.get('page'); return reply({fixture: `menu/childList${page}`}); } if (search.has('name') && search.get('name').length) return reply({fixture: 'menu/searchList'}); const page = search.get('page'); return reply({fixture: `menu/list${page}`}); }); successIntercept('/menu/addMenu'); successIntercept('/menu/updateMenu'); successIntercept('/menu/delMenu'); }); const TABLE_NAME = 'menu_table', MODAL_NAME = 'menu_modal', LABEL = '菜单'; const CHILD_TALBE_NAME = 'child_menu_table', CHILD_MODAL_NAME = 'child_menu_modal', CHILD_LABEL = '菜单'; it('表格', function() { validateTableList(TABLE_NAME); const validate = validateTableSearch(TABLE_NAME, '菜单搜索'); cy.get('#filter_menuName').type('name'); validate(); }); it('列表操作', function() { const {validateAdd, validateEdit} = validatePut(MODAL_NAME, LABEL); validateAdd(function() { cy.getTestId('field_menuName').type('菜单名称'); cy.getTestId('field_menuUrl').type('/test'); cy.getTestId('field_menuOrderBy').clear().type('8'); }); validateEdit(TABLE_NAME, function() { cy.getTestId('field_menuName').should('have.value', '用户设置'); cy.getTestId('field_menuUrl').should('have.value', '.'); cy.getTestId('field_menuOrderBy').should('have.value', '1'); }); validateDelete(TABLE_NAME, LABEL); // #region 子菜单 tableBtnClick(TABLE_NAME, 2); cy.getTestId('child_menu').should('exist').and('be.visible'); validateTableList(CHILD_TALBE_NAME); cy.getTestId('child_menu').should('exist').and('be.visible'); closeModal(); cy.getTestId('child_menu').should('not.exist'); // #endregion }); it('子菜单操作', function() { tableBtnClick(TABLE_NAME, 2); // #region 搜索 const validate = validateTableSearch( CHILD_TALBE_NAME, 'childMenuSearch', {btnTestId: 'child_menu_search_btn'}, ); cy.get('#filter_childMenuName').type('子菜单名称'); validate(); // #endregion const { validateAdd: childValidateAdd, validateEdit: childValidateEdit, } = validatePut( CHILD_MODAL_NAME, CHILD_LABEL, {addBtnTestId: 'child_menu_add_btn'}, ); childValidateAdd(function() { cy.getTestId('field_menuName').type('菜单名称'); cy.getTestId('field_menuUrl').type('/test'); cy.getTestId('field_menuOrderBy').clear().type('8'); }); childValidateEdit(CHILD_TALBE_NAME, function() { cy.getTestId('field_menuName').should('have.value', '用户管理'); cy.getTestId('field_menuUrl').should('have.value', '/user'); cy.getTestId('field_menuOrderBy').should('have.value', '0'); }); validateDelete(CHILD_TALBE_NAME, CHILD_LABEL); }); });