Browse Source

test: 增加用户管理的菜单权限测试

xyh 2 years ago
parent
commit
75e8d0f97e

+ 30 - 3
cypress/e2e/manager.cy.ts

@@ -4,6 +4,7 @@ import {
   generateNetworkResult,
   intercept,
   intoMenu,
+  normalIntercept,
   selectAllFilters,
   successIntercept,
   tableBtnClick,
@@ -11,6 +12,7 @@ import {
   validateDialog,
   validateExport,
   validateMessageContent,
+  validateModalBtnGroup,
   validatePut,
   validateTableList,
   validateTableSearch,
@@ -32,11 +34,11 @@ const basicData = {
   departmentId: '00029999',
   createTime: '2023-04-03 14:01:45',
   token: null,
-  menu: null,
   modifyUser: 'admin',
   modifyTime: '2023-04-03 14:18:21',
   page: 0,
   limit: 0,
+  menu: '78,93,88,79,',
 };
 
 const TABLE_NAME = 'user_table',
@@ -62,6 +64,7 @@ describe('首页', function () {
       '/user/delUser',
       '/user/resetPassword',
     ]);
+    normalIntercept('/menu/getMenu', 'menu/all');
   });
 
   it('table', function () {
@@ -110,12 +113,36 @@ describe('首页', function () {
       {id: 'userPhone', type: 'field', value: basicData.phone},
     ]);
 
+    // 设置菜单权限
+    tableBtnClick(TABLE_NAME, 1);
+
+    cy.getTestId('user_tree_modal')
+      .find('h3')
+      .should('include.html', '菜单权限');
+    cy.getTestId('user_tree_modal').should('exist').and('be.visible');
+
+    cy.getTestId('user_tree')
+      .find('.ant-tree-list-holder-inner')
+      .find('.ant-tree-treenode')
+      .each(function (res, idx) {
+        idx <= 3
+          ? expect(res.hasClass('ant-tree-treenode-checkbox-checked')).to.true
+          : expect(res.hasClass('ant-tree-treenode-checkbox-checked')).to.false;
+      })
+      .should('have.length', 17);
+
+    cy.getTestId('user_tree_modal').find('form').submit();
+
+    validateModalBtnGroup('user_tree_modal');
+    cy.get('.ant-message-notice-content').should('include.text', '设置成功');
+    cy.getTestId('user_tree_modal').should('not.exist');
+
     // 重置密码
-    const resetBtn = tableBtnClick(TABLE_NAME, 1);
+    const resetBtn = tableBtnClick(TABLE_NAME, 2);
     validateDialog('重置密码', '你确定要将测试2的密码重置为123456吗?');
     resetBtn().should('have.class', 'ant-btn-loading');
     validateMessageContent('重置成功');
 
-    validateDelete(TABLE_NAME, LABEL, {eq: 2, title: 'admin2'});
+    validateDelete(TABLE_NAME, LABEL, {eq: 3, title: 'admin2'});
   });
 });

+ 2 - 2
packages/app/src/pages/user/table/tree-modal/hooks.ts

@@ -2,7 +2,7 @@ import {useContextSection} from '@hooks';
 import {context} from './context';
 import {FormEvent, useEffect} from 'react';
 import {useMutation, useQueryClient} from '@tanstack/react-query';
-import {editUserMenu, getRoleList, getTreeMenu} from '@apis';
+import {editUserMenu, getTreeMenu, getUserList} from '@apis';
 import {message} from 'antd';
 import {TreeMenuListData, UserListData} from '@models';
 
@@ -114,7 +114,7 @@ export function useWatchId(id: string, visible: boolean) {
     function () {
       if (!visible) return;
 
-      const data = client.getQueryData<UserListData[]>([getRoleList.name], {
+      const data = client.getQueryData<UserListData[]>([getUserList.name], {
         exact: false,
       });
 

+ 1 - 1
packages/app/src/pages/user/table/tree-modal/index.tsx

@@ -29,7 +29,7 @@ const TreeModal: FC<Props> = function ({id, visible, onClose, onFetch}) {
       isLoading={isLoading}
       onSubmit={onSubmit}
       onClose={onClose}
-      testId='role_tree_modal'
+      testId='user_tree_modal'
     >
       <ErrorBoundary>
         <Suspense fallback={<Loading tip='正在获取菜单' height='200px' />}>

+ 1 - 1
packages/app/src/pages/user/table/tree-modal/info/index.tsx

@@ -14,7 +14,7 @@ const TreeInfo: FC = function () {
       checkedKeys={list}
       defaultExpandAll
       height={300}
-      data-testid='role_tree'
+      data-testid='user_tree'
       style={{width: '240px', margin: '0 auto'}}
     />
   );