tag.spec.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. describe('tag', () => {
  2. it('tag group with max count', () => {
  3. cy.visit('http://127.0.0.1:6006/iframe.html?id=tag--tag-group&args=&viewMode=story');
  4. // focus and esc
  5. cy.get('.semi-tag-content').eq(3).click();
  6. cy.get('.semi-portal');
  7. });
  8. it('keyboard test', () => {
  9. cy.visit('http://127.0.0.1:6006/iframe.html?id=tag--tag-avatar&args=&viewMode=story', {
  10. onBeforeLoad(win) {
  11. cy.stub(win.console, 'log').as('consoleLog'); // 测试时用到控制台的前置步骤
  12. },
  13. });
  14. // cy.visit('http://127.0.0.1:6006/iframe.html?id=tag--tag-avatar&args=&viewMode=story');
  15. // focus + esc + enter
  16. /**
  17. * TODO:
  18. * cypress v>10 后,原有的 cypress-plugin-tab无法再使用,即 cy.body.tab() 的方式调用会报错
  19. * 同时 cypress-real-event 的 realPress('Tab') 在某些情况下依然不符合预期,所以这里暂时将一部分 tab的测试逻辑注释掉,避免阻塞整个测试流程
  20. */
  21. // cy.realPress('Tab'); // 按下tab键
  22. // cy.body.tab(); // 按下tab键
  23. // cy.get('.semi-tag').eq(0).should('be.focused'); // 第一个tag应该被focus
  24. cy.get('.semi-tag').eq(0).type('{enter}'); // 在第一个tag上按enter
  25. cy.get('@consoleLog').should('be.calledWith', '如果能重来,我要做李白'); // 控制台应该打印“如果能重来,我要做李白”
  26. cy.get('.semi-tag').eq(0).type('{esc}'); // 在第一个tag上按ESC
  27. cy.get('.semi-tag').eq(0).should('not.be.focused'); // 第一个tag应该没有被focus
  28. // // backspace
  29. cy.get('.semi-tag').eq(0).realPress('Tab');
  30. cy.get('.semi-tag').eq(4).should('be.focused');
  31. cy.get('.semi-tag').eq(4).type('{backspace}'); // 在第5个tag上按backspace
  32. cy.get('.semi-tag').eq(4).get('.semi-tag-invisible'); // 第5个tag上应该被隐藏
  33. });
  34. });