tag.spec.js 1.4 KB

123456789101112131415161718192021222324252627282930313233
  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. // focus + esc + enter
  15. cy.get('body').tab(); // 按下tab键
  16. cy.get('.semi-tag').eq(0).should('be.focused'); // 第一个tag应该被focus
  17. cy.get('.semi-tag').eq(0).type('{enter}'); // 在第一个tag上按enter
  18. cy.get('@consoleLog').should('be.calledWith', '如果能重来,我要做李白'); // 控制台应该打印“如果能重来,我要做李白”
  19. cy.get('.semi-tag').eq(0).type('{esc}'); // 在第一个tag上按ESC
  20. cy.get('.semi-tag').eq(0).should('not.be.focused'); // 第一个tag应该没有被focus
  21. // backspace
  22. cy.get('.semi-tag').eq(0).tab();
  23. cy.get('.semi-tag').eq(4).should('be.focused');
  24. cy.get('.semi-tag').eq(4).type('{backspace}'); // 在第5个tag上按backspace
  25. cy.get('.semi-tag').eq(4).get('.semi-tag-invisible'); // 第5个tag上应该被隐藏
  26. });
  27. });