tab.cy.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import {beforeSetup, clickMenu} from './utils';
  2. describe('page tab', function () {
  3. beforeEach(function () {
  4. beforeSetup();
  5. });
  6. function validateTabLength(length: number) {
  7. cy.getTestId('tab_list')
  8. .find('.ant-tabs-nav')
  9. .find('.ant-tabs-nav-wrap')
  10. .find('.ant-tabs-tab')
  11. .should('have.length', length);
  12. }
  13. function validateTabActiveText(text: string) {
  14. cy.getTestId('tab_list')
  15. .find('.ant-tabs-tab-active')
  16. .children('div')
  17. .should('have.text', text);
  18. }
  19. function clickTab(eq: number, contextMenu = false) {
  20. const el = cy
  21. .getTestId('tab_list')
  22. .find('.ant-tabs-nav-list')
  23. .children('span')
  24. .eq(eq);
  25. contextMenu ? el.trigger('contextmenu') : el.find('.ant-tabs-tab').click();
  26. }
  27. it('tab', function () {
  28. validateTabLength(1);
  29. // 判断新增是否正确
  30. clickMenu('基础资料', '容器管理');
  31. validateTabActiveText('容器管理');
  32. clickMenu('系统设置', '角色管理');
  33. validateTabActiveText('角色管理');
  34. clickMenu('系统设置', '菜单管理');
  35. validateTabActiveText('菜单管理');
  36. validateTabLength(4);
  37. // 删除当前标签
  38. clickTab(1);
  39. clickTab(1, true);
  40. cy.getTestId('remove').click();
  41. validateTabLength(3);
  42. validateTabActiveText('首页');
  43. // 删除非当前标签
  44. clickTab(2);
  45. clickTab(1, true);
  46. cy.getTestId('remove').click();
  47. validateTabLength(2);
  48. validateTabActiveText('菜单管理');
  49. clickMenu('基础资料', '容器管理');
  50. clickMenu('系统设置', '角色管理');
  51. clickMenu('系统设置', 'PDA菜单管理');
  52. // 除此之外关闭
  53. clickTab(3, true);
  54. cy.getTestId('remove_other').click();
  55. validateTabLength(2);
  56. validateTabActiveText('角色管理');
  57. clickMenu('基础资料', '容器管理');
  58. clickMenu('系统设置', '菜单管理');
  59. clickMenu('系统设置', 'PDA菜单管理');
  60. // 关闭右侧 移除包含自己
  61. clickTab(2, true);
  62. cy.getTestId('remove_right').click();
  63. validateTabLength(3);
  64. validateTabActiveText('容器管理');
  65. clickMenu('系统设置', '菜单管理');
  66. clickMenu('系统设置', 'PDA菜单管理');
  67. // 关闭右侧 不移除自己
  68. clickTab(1);
  69. clickTab(2, true);
  70. cy.getTestId('remove_right').click();
  71. validateTabLength(3);
  72. validateTabActiveText('角色管理');
  73. clickMenu('系统设置', '菜单管理');
  74. clickMenu('系统设置', 'PDA菜单管理');
  75. // 清除所有
  76. clickTab(1, true);
  77. cy.getTestId('clear').click();
  78. validateTabLength(1);
  79. validateTabActiveText('首页');
  80. });
  81. });