tooltip.spec.js 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // tooltip.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. * Cypress will default scroll element into view
  9. * @see https://docs.cypress.io/guides/core-concepts/interacting-with-elements#Scrolling
  10. */
  11. describe('tooltip', () => {
  12. it('leftTopOver autoAdjustOverflow', () => {
  13. const viewportWidth = 1200;
  14. const viewportHeight = 660;
  15. const triggerWidth = 200;
  16. const triggerHeight = 32;
  17. const leftTopPosition = { offset: { top: 0, left: 0 } };
  18. const rightBottomPosition = { offset: { top: -viewportHeight + triggerHeight, left: -viewportWidth + triggerWidth } };
  19. cy.visit('http://127.0.0.1:6006/iframe.html?id=tooltip--left-top-over-auto-adjust-overflow&args=&viewMode=story');
  20. cy.viewport(viewportWidth, viewportHeight);
  21. const dataSelector = `[data-cy=leftTopOver]`;
  22. cy.get(dataSelector).scrollIntoView(leftTopPosition);
  23. cy.get(dataSelector).click({ force: true });
  24. cy.get('[x-placement="leftTopOver"]').should('have.length', 1);
  25. cy.get(dataSelector).scrollIntoView(rightBottomPosition);
  26. cy.get('[x-placement="rightBottomOver"]').should('have.length', 1);
  27. });
  28. });
  29. describe('tooltip', () => {
  30. it('autoFocusHover', () => {
  31. cy.visit('http://127.0.0.1:6006/iframe.html?id=tooltip--auto-focus-content-demo&args=&viewMode=story');
  32. const dataSelector = `[data-cy=hover]`;
  33. const input = `[data-cy=hoverInput]`;
  34. cy.get(dataSelector).trigger('mouseover');
  35. cy.get(input).should('be.focused');
  36. });
  37. it('autoFocusHoverNoMotion', () => {
  38. cy.visit('http://127.0.0.1:6006/iframe.html?id=tooltip--auto-focus-content-demo&args=&viewMode=story');
  39. const dataSelector = `[data-cy=hoverNoMotion]`;
  40. const input = `[data-cy=hoverNoMotionInput]`;
  41. cy.get(dataSelector).trigger('mouseover');
  42. cy.get(input).should('be.focused');
  43. });
  44. it('autoFocusClick', () => {
  45. cy.visit('http://127.0.0.1:6006/iframe.html?id=tooltip--auto-focus-content-demo&args=&viewMode=story');
  46. const dataSelector = `[data-cy=click]`;
  47. const input = `[data-cy=clickInput]`;
  48. cy.get(dataSelector).click({ force: true });
  49. cy.get(input).should('be.focused');
  50. });
  51. it('autoFocusClickNoMotion', () => {
  52. cy.visit('http://127.0.0.1:6006/iframe.html?id=tooltip--auto-focus-content-demo&args=&viewMode=story');
  53. const dataSelector = `[data-cy=clickNoMotion]`;
  54. const input = `[data-cy=clickNoMotionInput]`;
  55. cy.get(dataSelector).click({ force: true });
  56. cy.get(input).should('be.focused');
  57. });
  58. it('autoFocusControlled', () => {
  59. cy.visit('http://127.0.0.1:6006/iframe.html?id=tooltip--auto-focus-content-demo&args=&viewMode=story');
  60. const trigger = `[data-cy=controlled]`;
  61. const disableBtn = `[data-cy=controlledDisableBtn]`;
  62. const input = `[data-cy=controlledInput]`;
  63. // 校验受控功能
  64. cy.get(disableBtn).click({ force: true });
  65. cy.get(input).should('not.exist');
  66. cy.get(trigger).click({ force: true });
  67. cy.get(input).should('be.focused');
  68. });
  69. it('autoFocusControlledNoMotion', () => {
  70. cy.visit('http://127.0.0.1:6006/iframe.html?id=tooltip--auto-focus-content-demo&args=&viewMode=story');
  71. const trigger = `[data-cy=controlledNoMotion]`;
  72. const disableBtn = `[data-cy=controlledNoMotionDisableBtn]`;
  73. const input = `[data-cy=controlledNoMotionInput]`;
  74. // 校验受控功能
  75. cy.get(disableBtn).click({ force: true });
  76. cy.get(input).should('not.exist');
  77. cy.get(trigger).click({ force: true });
  78. cy.get(input).should('be.focused');
  79. });
  80. });