tab.cy.ts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import {
  2. beforeSetup,
  3. clickMenu,
  4. generateNetworkResult,
  5. intercept,
  6. validateDialog,
  7. } from './utils';
  8. const containerBasicData = {
  9. id: '5',
  10. department: '涂装班组',
  11. departmentId: '000300010012',
  12. type: '充电桩底座+1',
  13. containerName: '特来电002',
  14. code: '00002',
  15. num: '9',
  16. createTime: '2023-03-31 10:11:27',
  17. modifyUser: 'admin',
  18. modifyTime: '2023-03-31 10:46:30',
  19. page: 0,
  20. limit: 0,
  21. };
  22. const roleBasicData = {
  23. id: 11,
  24. roleCode: 'BH000011',
  25. roleName: 'test账户',
  26. createTime: '2023-03-30 14:50:46',
  27. remarks: '测试用账户',
  28. menu: '78,93,88,79,',
  29. menuBefore: '93,88,79',
  30. menuPda: '29,30,31,32,',
  31. modifyUser: 'admin',
  32. modifyTime: '2023-04-12 15:16:15',
  33. page: 0,
  34. limit: 0,
  35. };
  36. const menuBasicData = {
  37. id: '7',
  38. name: '系统设置',
  39. url: '.',
  40. pId: '0',
  41. idCode: null,
  42. type: 'PC',
  43. page: 0,
  44. limit: 0,
  45. orderBy: '0',
  46. menu: null,
  47. img: 'xitongguanli',
  48. modifyUser: 'admin',
  49. modifyTime: '2023-03-29 13:42:47',
  50. pid: '0',
  51. };
  52. describe('page tab', function () {
  53. beforeEach(function () {
  54. beforeSetup();
  55. });
  56. beforeEach(function () {
  57. intercept('/container/getContainer', function ({reply, search}) {
  58. generateNetworkResult({
  59. reply,
  60. search,
  61. basicData: containerBasicData,
  62. title: 'code',
  63. });
  64. });
  65. intercept('/role/getRole', function ({search, reply}) {
  66. generateNetworkResult({
  67. search,
  68. basicData: roleBasicData,
  69. reply,
  70. title: 'roleCode',
  71. });
  72. });
  73. intercept('/menu/getPage', function ({search, reply}) {
  74. generateNetworkResult({
  75. search,
  76. reply,
  77. basicData: menuBasicData,
  78. title: 'name',
  79. skipCondition(name) {
  80. return name === 'pId' || name === 'type';
  81. },
  82. });
  83. });
  84. });
  85. function validateTabLength(length: number) {
  86. cy.getTestId('tab_list')
  87. .find('.ant-tabs-nav')
  88. .find('.ant-tabs-nav-wrap')
  89. .find('.ant-tabs-tab')
  90. .should('have.length', length);
  91. }
  92. function validateTabActiveText(text: string) {
  93. cy.getTestId('tab_list')
  94. .find('.ant-tabs-tab-active')
  95. .children('div')
  96. .should('have.text', text);
  97. }
  98. it('tab', function () {
  99. validateTabLength(1);
  100. // 判断新增是否正确
  101. clickMenu('基础资料', '容器管理');
  102. validateTabActiveText('容器管理');
  103. clickMenu('系统设置', '角色管理');
  104. validateTabActiveText('角色管理');
  105. clickMenu('系统设置', '菜单管理');
  106. validateTabActiveText('菜单管理');
  107. validateTabLength(4);
  108. // 判断删除当前选中的tab
  109. cy.getTestId('tab_list')
  110. .find('.ant-tabs-tab-active')
  111. .find('button')
  112. .click();
  113. validateTabLength(3);
  114. validateTabActiveText('角色管理');
  115. // 判断删除非选中的tab
  116. clickMenu('系统设置', '菜单管理');
  117. cy.getTestId('tab_list').find('.ant-tabs-tab').eq(1).find('button').click();
  118. validateTabLength(3);
  119. validateTabActiveText('菜单管理');
  120. // 判断点击已添加的菜单是否会切换到指定tab
  121. clickMenu('系统设置', '角色管理');
  122. validateTabActiveText('角色管理');
  123. // 清空tab
  124. cy.getTestId('clear_tab_btn').click();
  125. validateDialog('清除标签页', '你确定要关闭所有标签页吗?');
  126. validateTabLength(1);
  127. });
  128. });