modal.spec.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // modal.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. describe('modal', () => {
  8. it('useModal', () => {
  9. cy.visit("http://localhost:6006/iframe.html?id=modal--use-modal-demo&viewMode=story");
  10. cy.get(".semi-button").click();
  11. cy.get(".semi-modal-confirm-title-text").contains("old title");
  12. cy.get(".semi-modal-confirm-content").contains("old content");
  13. cy.wait(1000);
  14. cy.get(".semi-modal-confirm-title-text").contains("new title");
  15. cy.get(".semi-modal-confirm-content").contains("new content");
  16. cy.get(".semi-modal-footer .semi-button").last().contains("Confirm");
  17. cy.get(".semi-modal-header .semi-modal-close").click();
  18. cy.get(".semi-modal").should("not.exist");
  19. });
  20. it('useModal destroy', () => {
  21. cy.visit("http://localhost:6006/iframe.html?id=modal--use-modal-destroy&viewMode=story");
  22. cy.get(".semi-button").click();
  23. cy.wait(1000);
  24. cy.get(".semi-modal").should("not.exist");
  25. });
  26. it('useModal afterClose', () => {
  27. cy.visit("http://localhost:6006/iframe.html?id=modal--use-modal-after-close&viewMode=story");
  28. cy.get(".semi-button").click();
  29. cy.get(".semi-modal").should("not.exist");
  30. cy.get(".semi-tag").first().contains("true");
  31. });
  32. it.only('useModal FocusTrap',()=>{
  33. cy.visit("http://localhost:6006/iframe.html?id=modal--default&viewMode=story");
  34. cy.get(".semi-button").click();
  35. cy.get('input').should('be.focused');
  36. cy.get('input').tab();
  37. cy.contains('hide dialog').should('be.focused');
  38. cy.contains('确定').focus();
  39. cy.contains('确定').tab();
  40. cy.get('button[aria-label=close]').should('be.focused');
  41. cy.get('button[aria-label=close]').tab({ shift:true });
  42. cy.contains('确定').should('be.focused');
  43. });
  44. });