tab.cy.ts 2.4 KB

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