role.cy.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import {
  2. loginIntercept,
  3. menuIntercept,
  4. loginSetup,
  5. menuTrigger,
  6. validateDelete,
  7. validatePut,
  8. validateTableList,
  9. validateTableSearch,
  10. successIntercept,
  11. normalIntercept,
  12. intercept,
  13. tableBtnClick,
  14. } from './utils';
  15. describe('角色管理', function() {
  16. beforeEach(function() {
  17. loginIntercept();
  18. menuIntercept();
  19. loginSetup();
  20. menuTrigger(1, 1);
  21. });
  22. beforeEach(function() {
  23. intercept('/role/getRole', function({url: reqUrl, reply}) {
  24. const url = new URL(reqUrl);
  25. const search = new URLSearchParams(url.search);
  26. if (search.has('roleName') && search.get('roleName').length)
  27. return reply({fixture: 'role/search'});
  28. const page = search.get('page');
  29. reply({fixture: page === '1' ? 'role/list1' : 'role/list2'});
  30. });
  31. successIntercept('/role/addRole');
  32. successIntercept('/role/updateRole');
  33. successIntercept('/role/delRole');
  34. normalIntercept('/menu/getMenu', 'menu/all');
  35. });
  36. const TABLE_NAME = 'role_table',
  37. MODAL_NAME = 'role_modal',
  38. LABEL = '角色';
  39. it('角色列表', function() {
  40. validateTableList(TABLE_NAME);
  41. });
  42. it('搜索', function() {
  43. const validate = validateTableSearch(TABLE_NAME, 'roleSearch');
  44. cy.get('#filter_roleName').type('roleName');
  45. validate();
  46. });
  47. const {validateAdd, validateEdit} = validatePut(
  48. MODAL_NAME,
  49. LABEL,
  50. );
  51. it('新增操作', function() {
  52. validateAdd(function() {
  53. cy.get('#operation_roleName').type('roleName');
  54. cy.get('#operation_roleRemarks').type('roleRemarks');
  55. });
  56. });
  57. it('修改操作', function() {
  58. validateEdit(TABLE_NAME, function() {
  59. cy.get('#operation_roleName').should('have.value', '仓库管理员');
  60. cy.get('#operation_roleRemarks').should('have.value', 'cangk');
  61. });
  62. });
  63. it('删除操作', function() {
  64. validateDelete(TABLE_NAME, LABEL);
  65. });
  66. it('设置菜单权限', function() {
  67. tableBtnClick(TABLE_NAME, 2);
  68. cy.getTestId('role_tree_modal').find('h3')
  69. .should('include.html', '菜单权限');
  70. cy.getTestId('role_tree_modal').should('exist').and('be.visible');
  71. cy.getTestId('role_tree').find('.ant-tree-list-holder-inner')
  72. .find('.ant-tree-treenode').each(function(res, idx) {
  73. idx <= 3
  74. ? expect(res.hasClass('ant-tree-treenode-checkbox-checked')).to.true
  75. : expect(res.hasClass('ant-tree-treenode-checkbox-checked')).to.false;
  76. }).should('have.length', 9);
  77. cy.getTestId('role_tree_modal').find('form').submit();
  78. cy.getTestId('modal_btn_group').find('.ant-btn-loading').should('exist');
  79. cy.get('.ant-message-notice-content').should('include.text', '设置成功');
  80. cy.getTestId('role_tree_modal').should('not.exist');
  81. });
  82. });