1
0

modal.spec.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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('useModal FocusTrap', ()=>{
  33. cy.visit("http://localhost:6006/iframe.html?id=modal--default&viewMode=story");
  34. cy.get(".semi-button").click();
  35. cy.contains('取消').should('be.focused');
  36. cy.get('input').click();
  37. cy.get('input').realPress('Tab');
  38. cy.contains('hide dialog').should('be.focused');
  39. cy.contains('确定').focus();
  40. cy.contains('确定').realPress('Tab');
  41. cy.get('button[aria-label=close]').should('be.focused');
  42. // TODO:
  43. // we need to remove cypress-plugin-tab cause it can't work with cypress v>10, we use cyress-real-event instead, but it didn't provide combine
  44. // keyboard event in this time,
  45. // cy.get('button[aria-label=close]').tab({ shift: true });
  46. // cy.contains('确定').should('be.focused');
  47. });
  48. });