1
0

cascader.spec.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. describe('cascader', () => {
  2. it('clear when single choose', () => {
  3. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--show-clear&args=&viewMode=story');
  4. cy.viewport(1500, 1000);
  5. cy.get('.semi-cascader-selection').eq(0).click();
  6. cy.get('span').contains('Node1').click();
  7. cy.get('span').contains('Child Node2').click();
  8. cy.get('.semi-cascader-search-wrapper span').eq(0).contains('Child Node2').should('exist');
  9. cy.get('.semi-cascader-selection').eq(0).trigger('mouseover');
  10. cy.get('.semi-cascader-clearbtn').click();
  11. cy.get('.semi-cascader-search-wrapper span').eq(0).contains('Child Node2').should('not.exist');
  12. });
  13. it('clear by key press', () => {
  14. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--show-clear&args=&viewMode=story');
  15. cy.viewport(1500, 1000);
  16. cy.get('.semi-cascader-selection').eq(0).click();
  17. cy.get('span').contains('Node1').click();
  18. cy.get('span').contains('Child Node2').click();
  19. cy.get('.semi-cascader-search-wrapper span').eq(0).contains('Child Node2').should('exist');
  20. cy.get('.semi-cascader-selection').eq(0).trigger('mouseover');
  21. cy.get(".semi-cascader-clearbtn").focus();
  22. cy.get('.semi-cascader-clearbtn').type('{enter}');
  23. cy.get('.semi-cascader-search-wrapper span').eq(0).contains('Child Node2').should('not.exist');;
  24. // cy.get('#root').click('right');
  25. cy.root().click('right');
  26. cy.get('.semi-cascader').eq(1).click();
  27. cy.get('.semi-checkbox').eq(0).click();
  28. cy.get('.semi-checkbox').eq(1).click();
  29. cy.get('.semi-cascader-selection-multiple').contains('Node1');
  30. cy.get('.semi-cascader-selection-multiple').contains('Node2');
  31. cy.get('.semi-cascader-selection').eq(1).click();
  32. cy.get(".semi-cascader-clearbtn").focus();
  33. cy.get('.semi-cascader-clearbtn').type('{enter}');
  34. cy.get('.semi-cascader-selection .semi-tag').should('not.exist');
  35. });
  36. it('scroll', () => {
  37. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--super-long-list&args=&viewMode=story');
  38. cy.viewport(1000, 1000);
  39. cy.get('.semi-cascader').eq(0).click();
  40. cy.get('.semi-cascader-option-list').scrollTo('bottom');
  41. });
  42. it('multiple close', () => {
  43. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--cascader&args=&viewMode=story');
  44. cy.get('.semi-cascader').eq(1).click();
  45. cy.get('.semi-checkbox').eq(0).click();
  46. cy.get('.semi-cascader-selection .semi-tag').should('exist');
  47. cy.get('.semi-tag-close').click();
  48. cy.get('.semi-cascader-selection .semi-tag').should('not.exist');
  49. });
  50. it('placeholder change', () => {
  51. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--dynamic-placeholder&args=&viewMode=story');
  52. cy.get('.semi-cascader-selection-placeholder').contains('Please select');
  53. cy.get('.semi-button-content').contains('Toggle').click();
  54. cy.get('.semi-cascader-search-wrapper span').eq(0).contains('Search something').should('exist');
  55. });
  56. it('load data', () => {
  57. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--load-data&args=&viewMode=story');
  58. cy.get('.semi-cascader-selection').eq(0).click();
  59. // click to load data
  60. cy.contains('Node1').click();
  61. cy.wait(1000);
  62. // data has be loaded
  63. cy.contains('Node1 - 1');
  64. });
  65. it('on exceed', () => {
  66. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--cascader-with-max-on-exceed&args=&viewMode=story');
  67. // when autoMergeValue is true
  68. cy.get('.semi-cascader-selection').eq(1).click();
  69. cy.contains('浙江省').click();
  70. cy.contains('杭州市').click();
  71. cy.get('input').eq(4).click({ force: true });
  72. cy.get('.semi-cascader-selection > div').contains('海曙区');
  73. cy.get('.semi-cascader-selection > div').contains('西湖区');
  74. cy.get('body').click('right');
  75. // when autoMergeValue is false
  76. cy.get('.semi-cascader-selection').eq(2).click();
  77. cy.contains('浙江省').click();
  78. cy.get('input').eq(2).click({ force: true });
  79. cy.get('.semi-cascader-selection').eq(2).contains('海曙区');
  80. });
  81. it('not exit default value', () => {
  82. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--default-value-not-exist&args=&viewMode=story');
  83. cy.get('.semi-cascader-search-wrapper span').eq(0).contains('yazhou not exist').should('exist');
  84. });
  85. it('multiple onChangeWithObject value=undefined', () => {
  86. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--undefined-value-while-mutiple-and-on-change-with-object&args=&viewMode=story');
  87. cy.get('.semi-cascader-selection-placeholder').contains('请选择所在地区');
  88. cy.get('.semi-cascader').click();
  89. cy.get('.semi-checkbox').eq(0).click();
  90. cy.get('.semi-tag-content').contains('亚洲');
  91. });
  92. it('value change in search', () => {
  93. cy.visit('http://127.0.0.1:6006/iframe.html?id=cascader--set-value-in-search&args=&viewMode=story');
  94. cy.get('.semi-cascader-selection').click();
  95. // mouse over change value
  96. cy.get('#mouseIn').trigger('mouseover');
  97. // value change should not effect input value
  98. cy.get('input').should('have.value', '');
  99. });
  100. });