tabs.spec.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. describe('tabs', () => {
  2. it('activeKey', () => {
  3. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--active-key&args=&viewMode=story');
  4. cy.get('.semi-tabs').contains('帮助').click();
  5. cy.get('.semi-tabs-pane-active').contains('帮助');
  6. cy.get('.semi-tabs').contains('关于').click();
  7. cy.get('.semi-tabs-pane-active').contains('关于');
  8. });
  9. it('tab list change', () => {
  10. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--tab-list-change&args=&viewMode=story');
  11. cy.get('.semi-tabs').contains('帮助').click();
  12. cy.get('.semi-tabs-bar').should('have.length', 1);
  13. });
  14. it('current pane render', () => {
  15. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--render-current-pane&args=&viewMode=story');
  16. cy.get('.semi-tabs-content').contains('文档');
  17. cy.get('.semi-tabs').contains('帮助').click();
  18. cy.get('.semi-tabs-content').contains('帮助');
  19. cy.get('.semi-tabs').contains('关于').click();
  20. cy.get('.semi-tabs-content').contains('关于');
  21. });
  22. it('collapse', () => {
  23. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--collapse-tabs&args=&viewMode=story');
  24. cy.viewport(800, 1600);
  25. cy.get('.semi-tabs-content').eq(0).contains('Content of card tab 0');
  26. cy.get('.semi-button').eq(1).trigger('mouseover', { force: true });
  27. cy.get('.semi-dropdown').contains('Tab-6').click({ force: true });
  28. cy.get('.semi-tabs-content').eq(0).contains('Content of card tab 6');
  29. // Tab-10 visible
  30. cy.get('.semi-button').eq(0).click({ force: true });
  31. cy.get('.semi-tabs-tab').contains('Tab-10').click({ force: true });
  32. cy.get('.semi-tabs-content').eq(0).contains('Content of card tab 10');
  33. });
  34. it('keyboard test when the tabs is horizontal', () => {
  35. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--disabled-tab&args=&viewMode=story');
  36. cy.get('[id=semiTab2]').click();
  37. cy.get('[id=semiTab2]').should('be.focused');
  38. cy.get('[id=semiTab2]').type('{rightArrow}');
  39. cy.get('[id=semiTab5]').should('be.focused');
  40. cy.get('[id=semiTab5]').type('{home}');
  41. cy.get('[id=semiTab1]').should('be.focused');
  42. cy.get('[id=semiTab1]').type('{leftArrow}');
  43. cy.get('[id=semiTab5]').should('be.focused');
  44. cy.get('[id=semiTab5]').type('{rightArrow}');
  45. cy.get('[id=semiTab1]').should('be.focused');
  46. cy.get('[id=semiTab1]').type('{end}');
  47. cy.get('[id=semiTab5]').should('be.focused');
  48. cy.get('[id=semiTab5]').type('{enter}');
  49. cy.get('[id=semiTab5]').realPress('Tab');
  50. cy.get("[id=semiTabPanel5]").should('be.focused');
  51. });
  52. it('keyboard test when the tabs is vertical', () => {
  53. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--vertical-tabs&args=&viewMode=story');
  54. cy.get('[id=semiTab1]').click();
  55. cy.get('[id=semiTab1]').should('be.focused');
  56. cy.get('[id=semiTab1]').type('{downArrow}');
  57. cy.get('[id=semiTab2]').should('be.focused');
  58. cy.get('[id=semiTab2]').type('{upArrow}');
  59. cy.get('[id=semiTab1]').should('be.focused');
  60. });
  61. it('keyboard test when the tabs is closable', () => {
  62. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--tab-closable&args=&viewMode=story');
  63. cy.get('[data-tabkey=semiTab1]').eq(0).click();
  64. cy.get('[data-tabkey=semiTab1]').eq(0).should('be.focused');
  65. cy.get('[data-tabkey=semiTab1]').eq(0).type('{backspace}');
  66. cy.get('[data-tabkey=semiTab1]').should('not.exist');
  67. });
  68. it('collapsible', () => {
  69. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--fix-1456&args=&viewMode=story');
  70. // Ensure the correctness of the dropdown item after selection
  71. cy.get('[id=semiTab2]').click();
  72. cy.get('.semi-button').eq(1).trigger('mouseover');
  73. cy.get('.semi-dropdown-content .semi-dropdown-item').contains('tab-7').should('exist');
  74. cy.get('li span').contains('Tab-0').should('not.exist');
  75. cy.get('.semi-button').eq(1).trigger('mouseout');
  76. // Make sure that the state of the button does not change after vertical scrolling makes the tabs obscured
  77. cy.get('.semi-button').eq(2).click();
  78. cy.get('[id=wrapper]').scrollTo(0, 40);
  79. cy.get('.semi-button-disabled').eq(0).should('exist');
  80. cy.get('.semi-tabs-bar-arrow .semi-button-primary').eq(0).should('exist');
  81. });
  82. it.skip('activeTab is within the viewport after collapse Tabs did mount', () => {
  83. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--collapse-scroll-into-view-demo&args=&viewMode=story');
  84. cy.wait(1000);
  85. cy.get('.semi-tabs-tab').contains('Tab-9').should('exist').and('be.visible');
  86. });
  87. it('showRestInDropdown', () => {
  88. cy.visit('http://127.0.0.1:6006/iframe.html?id=tabs--show-rest-in-dropdown-demo&args=&viewMode=story');
  89. cy.get('.semi-button').eq(1).trigger('mouseover');
  90. cy.get('.semi-dropdown-content .semi-dropdown-item').should('not.exist');
  91. });
  92. });