datePicker.spec.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. // datePicker.spec.js created with Cypress
  2. //
  3. // Start writing your Cypress tests below!
  4. // If you're unfamiliar with how Cypress works,
  5. // check out the link below and learn how to write your first test:
  6. // https://on.cypress.io/writing-first-test
  7. /**
  8. * why use `.then`?
  9. * @see https://docs.cypress.io/guides/core-concepts/variables-and-aliases#Return-Values
  10. */
  11. describe('DatePicker', () => {
  12. it('dateTime needConfirm cancel', () => {
  13. cy.visit('http://127.0.0.1:6009/iframe.html?id=datepicker--fix-need-confirm&args=&viewMode=story');
  14. cy.get('[data-cy=1] .semi-input-wrapper').click();
  15. cy.get('.semi-datepicker-footer > .semi-button-borderless')
  16. .then(($btn) => {
  17. console.log('then');
  18. $btn.trigger('click');
  19. });
  20. cy.get('body').find('.semi-popover .semi-datepicker').should('have.length', 0);
  21. });
  22. it('dateTime needConfirm confirm', () => {
  23. cy.visit('http://127.0.0.1:6009/iframe.html?id=datepicker--fix-need-confirm&args=&viewMode=story');
  24. cy.get('[data-cy=1] .semi-input-wrapper').click();
  25. cy.get('.semi-datepicker-day').contains('15')
  26. .then($day => {
  27. $day.trigger('click');
  28. });
  29. cy.get('.semi-datepicker-footer > button:nth-child(2)').then($btn => {
  30. $btn.trigger('click');
  31. });
  32. cy.get('body').find('.semi-popover .semi-datepicker').should('have.length', 0);
  33. cy.get('[data-cy=1] .semi-input').should('have.value', '2021-12-15 10:37:13');
  34. });
  35. it('dateTime needConfirm select+cancel', () => {
  36. cy.visit('http://127.0.0.1:6009/iframe.html?id=datepicker--fix-need-confirm&args=&viewMode=story');
  37. cy.get('[data-cy=1] .semi-input-wrapper').click();
  38. cy.get('.semi-datepicker-day').contains('15')
  39. .then($day => {
  40. $day.trigger('click');
  41. });
  42. cy.get('.semi-datepicker-footer > button:nth-child(1)')
  43. .then($btn => {
  44. $btn.trigger('click');
  45. });
  46. cy.get('body').find('.semi-popover .semi-datepicker').should('have.length', 0);
  47. cy.get('[data-cy=1] .semi-input').should('have.value', '2021-12-27 10:37:13');
  48. });
  49. it('dateTimeRange needConfirm cancel', () => {
  50. cy.visit('http://127.0.0.1:6009/iframe.html?id=datepicker--fix-need-confirm&args=&viewMode=story');
  51. cy.get('[data-cy=3] .semi-datepicker-range-input-wrapper-start .semi-input-wrapper').click();
  52. cy.get('.semi-datepicker-footer > .semi-button-borderless')
  53. .then($btn => {
  54. $btn.trigger('click');
  55. });
  56. cy.get('body').find('.semi-popover .semi-datepicker').should('have.length', 0);
  57. });
  58. it('dateTimeRange needConfirm select+cancel', () => {
  59. cy.visit('http://127.0.0.1:6009/iframe.html?id=datepicker--fix-need-confirm&args=&viewMode=story');
  60. cy.get('[data-cy=3] .semi-datepicker-range-input-wrapper-start .semi-input-wrapper').click();
  61. cy.get('.semi-datepicker-month-grid-left .semi-datepicker-day').contains('15')
  62. .then($day => {
  63. $day.trigger('click');
  64. });
  65. cy.get('.semi-datepicker-month-grid-right .semi-datepicker-day').contains('20')
  66. .then($day => {
  67. $day.trigger('click');
  68. });
  69. cy.get('.semi-datepicker-footer > button:nth-child(1)').then($cancelBtn => {
  70. $cancelBtn.trigger('click');
  71. });
  72. cy.get('body').find('.semi-popover .semi-datepicker').should('have.length', 0);
  73. cy.get('[data-cy=3] .semi-datepicker-range-input-wrapper-start .semi-input').should('have.value', '2021-12-27 10:37:13');
  74. cy.get('[data-cy=3] .semi-datepicker-range-input-wrapper-end .semi-input').should('have.value', '2022-01-28 10:37:13');
  75. });
  76. it('dateTimeRange needConfirm confirm', () => {
  77. cy.visit('http://127.0.0.1:6009/iframe.html?id=datepicker--fix-need-confirm&args=&viewMode=story');
  78. cy.get('[data-cy=3] .semi-datepicker-range-input-wrapper-start .semi-input-wrapper').click();
  79. cy.get('.semi-datepicker-month-grid-left .semi-datepicker-day').contains('15')
  80. .then($day => {
  81. $day.trigger('click');
  82. });
  83. cy.get('.semi-datepicker-month-grid-right .semi-datepicker-day').contains('20')
  84. .then($day => {
  85. $day.trigger('click');
  86. });
  87. cy.get('.semi-datepicker-footer > button:nth-child(2)')
  88. .then($confirmBtn => {
  89. $confirmBtn.trigger('click');
  90. });
  91. cy.get('body').find('.semi-popover .semi-datepicker').should('have.length', 0);
  92. cy.get('[data-cy=3] .semi-datepicker-range-input-wrapper-start .semi-input').should('have.value', '2021-12-15 10:37:13');
  93. cy.get('[data-cy=3] .semi-datepicker-range-input-wrapper-end .semi-input').should('have.value', '2022-01-20 10:37:13');
  94. });
  95. /**
  96. * 测试 open 受控时,点击面板内按钮关闭面板后,输入框应该清除 focus 状态
  97. */
  98. it('input range focus when open is controlled', () => {
  99. cy.visit('http://localhost:6009/iframe.html?id=datepicker--fix-input-range-focus&args=&viewMode=story');
  100. cy.get('.semi-datepicker-range-input-wrapper-start > .semi-input-wrapper').click();
  101. cy.get('.semi-datepicker-day').contains('10')
  102. .then($btn => {
  103. $btn.trigger('click');
  104. });
  105. cy.get('.semi-datepicker-day').contains('15')
  106. .then($btn => {
  107. $btn.trigger('click');
  108. });
  109. cy.get('.semi-datepicker-bottomSlot .semi-button')
  110. .then($btn => {
  111. $btn.trigger('click');
  112. cy.get('.semi-datepicker-range-input-wrapper-start').should('not.have.class', 'semi-datepicker-range-input-wrapper-active');
  113. cy.get('.semi-datepicker-range-input-wrapper-end').should('not.have.class', 'semi-datepicker-range-input-wrapper-active');
  114. });
  115. });
  116. });