|
@@ -0,0 +1,154 @@
|
|
|
+import {
|
|
|
+ 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 = '菜单';
|
|
|
+
|
|
|
+ it('表格', function() {
|
|
|
+ validateTableList(TABLE_NAME);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('搜索', function() {
|
|
|
+ const validate = validateTableSearch(TABLE_NAME, '菜单搜索');
|
|
|
+
|
|
|
+ cy.get('#filter_menuName').type('name');
|
|
|
+
|
|
|
+ validate();
|
|
|
+ });
|
|
|
+
|
|
|
+ it('删除', function() {
|
|
|
+ validateDelete(TABLE_NAME, LABEL);
|
|
|
+ });
|
|
|
+
|
|
|
+ const {validateAdd, validateEdit} = validatePut(MODAL_NAME, LABEL);
|
|
|
+
|
|
|
+ it('新增', function() {
|
|
|
+ validateAdd(function() {
|
|
|
+ cy.getTestId('field_menuName').type('菜单名称');
|
|
|
+ cy.getTestId('field_menuUrl').type('/test');
|
|
|
+ cy.getTestId('field_menuOrderBy').clear().type('8');
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it('修改', function() {
|
|
|
+ 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');
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ const CHILD_TALBE_NAME = 'child_menu_table',
|
|
|
+ CHILD_MODAL_NAME = 'child_menu_modal',
|
|
|
+ CHILD_LABEL = '菜单';
|
|
|
+
|
|
|
+ it('子菜单展示', function() {
|
|
|
+ tableBtnClick(TABLE_NAME, 2);
|
|
|
+
|
|
|
+ cy.getTestId('child_menu').should('exist').and('be.visible');
|
|
|
+
|
|
|
+ validateTableList(CHILD_TALBE_NAME);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('子菜单关闭', function() {
|
|
|
+ tableBtnClick(TABLE_NAME, 2);
|
|
|
+
|
|
|
+ cy.getTestId('child_menu').should('exist').and('be.visible');
|
|
|
+
|
|
|
+ cy.getTestId('child_menu_back').click();
|
|
|
+ cy.getTestId('child_menu').should('not.exist');
|
|
|
+ });
|
|
|
+
|
|
|
+ it('子菜单查询', function() {
|
|
|
+ tableBtnClick(TABLE_NAME, 2);
|
|
|
+
|
|
|
+ const validate = validateTableSearch(
|
|
|
+ CHILD_TALBE_NAME,
|
|
|
+ 'childMenuSearch',
|
|
|
+ {btnTestId: 'child_menu_search_btn'},
|
|
|
+ );
|
|
|
+ cy.get('#filter_childMenuName').type('子菜单名称');
|
|
|
+
|
|
|
+ validate();
|
|
|
+ });
|
|
|
+
|
|
|
+ it('子菜单删除', function() {
|
|
|
+ tableBtnClick(TABLE_NAME, 2);
|
|
|
+
|
|
|
+ validateDelete(CHILD_TALBE_NAME, CHILD_LABEL);
|
|
|
+ });
|
|
|
+
|
|
|
+ const {
|
|
|
+ validateAdd: childValidateAdd,
|
|
|
+ validateEdit: childValidateEdit,
|
|
|
+ } = validatePut(
|
|
|
+ CHILD_MODAL_NAME,
|
|
|
+ CHILD_LABEL,
|
|
|
+ {addBtnTestId: 'child_menu_add_btn'},
|
|
|
+ );
|
|
|
+
|
|
|
+ it('子菜单新增', function() {
|
|
|
+ tableBtnClick(TABLE_NAME, 2);
|
|
|
+
|
|
|
+ childValidateAdd(function() {
|
|
|
+ cy.getTestId('field_menuName').type('菜单名称');
|
|
|
+ cy.getTestId('field_menuUrl').type('/test');
|
|
|
+ cy.getTestId('field_menuOrderBy').clear().type('8');
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it('子菜单修改', function() {
|
|
|
+ tableBtnClick(TABLE_NAME, 2);
|
|
|
+
|
|
|
+ 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');
|
|
|
+ });
|
|
|
+ });
|
|
|
+});
|