treeSelect.spec.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. describe('treeSelect', () => {
  2. it('searchPosition is trigger', () => {
  3. cy.visit('http://127.0.0.1:6006/iframe.html?id=treeselect--search-position&args=&viewMode=story');
  4. // test trigger focus
  5. cy.get('input').eq(0).click();
  6. cy.get('.semi-tree-select-focus').should('exist');
  7. // test trigger blur
  8. cy.get('body').click('right');
  9. cy.get('.semi-tree-select-focus').should('not.exist');
  10. });
  11. it('load data', () => {
  12. cy.visit('http://127.0.0.1:6006/iframe.html?id=treeselect--load-data&args=&viewMode=story');
  13. cy.get('.semi-tree-select-selection').click();
  14. cy.wait(200);
  15. cy.get('.semi-tree-option-list .semi-icon-tree_triangle_down').eq(0).click();
  16. cy.wait(1000);
  17. // assert data had load success
  18. cy.get('.semi-tree-option-list').contains('Child Node');
  19. });
  20. it('clear and close', () => {
  21. cy.visit('http://127.0.0.1:6006/iframe.html?id=treeselect--check-relation-demo&args=&viewMode=story');
  22. cy.viewport(1000, 1000);
  23. // test remove tag
  24. cy.get('.semi-tag-close').eq(3).click();
  25. cy.get('.semi-tag-content').contains('Japan').should('not.exist');
  26. cy.get('.semi-tree-select-selection').eq(8).contains('China');
  27. cy.get('.semi-tree-select-selection').eq(8).trigger('mouseover');
  28. cy.get('.semi-tree-select-clearbtn').click();
  29. cy.get('.semi-tagInput-wrapper .semi-tag').should('not.exist');
  30. // multiple When triggerSearch, clicking the clear button will trigger to clear Input
  31. cy.get('input').eq(1).type('dddd');
  32. cy.get('.semi-tree-select-selection').eq(8).trigger('mouseover');
  33. cy.get('.semi-tree-select-clearbtn').click();
  34. cy.get('.semi-tree-select-selection').eq(8).get('input').should('have.value', '');
  35. cy.get('body').click('right');
  36. // wait for the panel close
  37. cy.wait(500);
  38. // single selection When triggerSearch, clicking the clear button will trigger to clear Input
  39. cy.get('input').eq(2).type('dddd');
  40. cy.get('.semi-tree-select-selection').eq(9).trigger('mouseover');
  41. cy.get('.semi-tree-select-clearbtn').click();
  42. cy.get('.semi-tree-select-selection').eq(9).get('input').should('have.value', '');
  43. });
  44. it('clear by key press', () => {
  45. cy.visit('http://127.0.0.1:6006/iframe.html?id=treeselect--check-relation-demo&args=&viewMode=story');
  46. cy.get('.semi-tree-select-selection').eq(8).contains('China');
  47. cy.get('.semi-tree-select-selection').eq(8).trigger('mouseover');
  48. cy.get('.semi-tree-select-clearbtn').focus();
  49. cy.get('.semi-tree-select-clearbtn').type('{enter}');
  50. cy.get('.semi-tagInput-wrapper .semi-tag').should('not.exist');
  51. });
  52. it('onblur / onfocus', () => {
  53. cy.visit('http://127.0.0.1:6006/iframe.html?id=treeselect--on-blur-on-focus&args=&viewMode=story', {
  54. onBeforeLoad(win) {
  55. cy.stub(win.console, 'log').as('consoleLog');
  56. },
  57. });
  58. // 单选,点击 trigger 触发 onFocus, 点击选项触发 onBlur,
  59. cy.get('.semi-tree-select').eq(0).click();
  60. cy.get('@consoleLog').should('be.calledWith', 'focus');
  61. cy.get('.semi-tree-option').eq(0).click();
  62. cy.get('@consoleLog').should('be.calledWith', 'blur');
  63. // 单选,点击 trigger 触发 onFocus,再次点击 trigger 收起面板,但不会触发 onBlur, 点击外部触发 onBlur,
  64. cy.get('.semi-tree-select').eq(0).click();
  65. cy.get('@consoleLog').should('be.calledWith', 'focus');
  66. cy.get('.semi-tree-select').eq(0).click();
  67. cy.get('.semi-tree-select').eq(1).click();
  68. cy.get('@consoleLog').should('be.calledWith', 'blur');
  69. // 多选, 点击 trigger 触发 onFocus,在此点击再次点击收起面板,但不会触发 onBlur, 点击外部触发 onBlur,
  70. cy.get('@consoleLog').should('be.calledWith', 'focus');
  71. cy.get('.semi-tree-select').eq(1).click();
  72. cy.get('.semi-tree-select').eq(2).click();
  73. cy.get('@consoleLog').should('be.calledWith', 'blur');
  74. });
  75. });