123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- function typeTextAtPosition(lineNumber, column, text) {
- let rightArrow = '{rightArrow}';
- let leftArrow = '{leftArrow}';
- for (let i = 0; i < column - 1; i++) {
- rightArrow += '{rightArrow}';
- }
- if (lineNumber === 1) {
- cy.get('.lines-content').children().eq(0).type(`${leftArrow}${rightArrow}${text}`);
- } else {
- cy.get('.lines-content').children().eq(lineNumber - 2).type(`${rightArrow}${text}`);
- }
- }
- function undo(times) {
- let z = '{meta+z}';
- for (let i = 0; i < times - 1; i++) {
- z += '{meta+z}';
- }
- cy.get('.lines-content').type(z);
- }
- function redo(times) {
- let z = '{meta+shift+z}';
- for (let i = 0; i < times - 1; i++) {
- z += '{meta+shift+z}';
- }
- cy.get('.lines-content').type(z);
- }
- describe('jsonViewer', () => {
- it('scroll to bottom', () => {
- cy.visit('http://127.0.0.1:6006/iframe.html?path=/story/jsonviewer--default-json-viewer');
- cy.get('.json-viewer-container').scrollTo('bottom');
- cy.get('.lines-content').children().last().should('have.attr', 'data-line-number', '36');
- });
- it('scroll to top', () => {
- cy.visit('http://127.0.0.1:6006/iframe.html?path=/story/jsonviewer--default-json-viewer');
- cy.get('.json-viewer-container').scrollTo('top');
- cy.get('.lines-content').children().first().should('have.attr', 'data-line-number', '1');
- });
- it('fold', () => {
- cy.visit('http://127.0.0.1:6006/iframe.html?path=/story/jsonviewer--default-json-viewer');
- cy.get('.line-scroll-container').trigger('mouseover', { which: 1 });
- cy.get('.semi-json-viewer-line-number[data-line-number="1"]').children().should('have.length', 2);
- cy.get('.semi-json-viewer-line-number[data-line-number="1"]').children().eq(1).click();
- cy.get('.lines-content').children().should('have.length', 2);
- cy.get('.lines-content').children().last().should('have.attr', 'data-line-number', '36');
- cy.get('.line-scroll-container').trigger('mouseover', { which: 1 });
- cy.get('.semi-json-viewer-line-number[data-line-number="1"]').children().should('have.length', 2);
- cy.get('.semi-json-viewer-line-number[data-line-number="1"]').children().eq(1).click();
- cy.get('.lines-content').children().should('have.length', 21);
- cy.get('.line-scroll-container').trigger('mouseover', { which: 1 });
- cy.get('.semi-json-viewer-line-number[data-line-number="13"]').children().should('have.length', 2);
- cy.get('.semi-json-viewer-line-number[data-line-number="13"]').children().eq(1).click();
- cy.get('.lines-content').children().should('have.length', 15);
- cy.get('.line-scroll-container').trigger('mouseover', { which: 1 });
- cy.get('.semi-json-viewer-line-number[data-line-number="13"]').children().should('have.length', 2);
- cy.get('.semi-json-viewer-line-number[data-line-number="13"]').children().eq(1).click();
- cy.get('.lines-content').children().should('have.length', 21);
- });
- it('edit', () => {
- cy.visit('http://127.0.0.1:6006/iframe.html?path=/story/jsonviewer--default-json-viewer');
- //insert
- typeTextAtPosition(1, 1, '{enter}');
- cy.get('.lines-content').children().eq(1).children().should('have.length', 1);
- typeTextAtPosition(2, 2, `"`);
- typeTextAtPosition(2, 3, `key`);
- typeTextAtPosition(2, 7, `:`);
- typeTextAtPosition(2, 8, `1`);
- typeTextAtPosition(2, 9, `,`);
- cy.get('.lines-content').children().eq(1).children().children().should('have.length', 5);
- // undo redo
- undo(1);
- cy.get('.lines-content').children().eq(1).children().children().should('have.length', 4);
- redo(1);
- cy.get('.lines-content').children().eq(1).children().children().should('have.length', 5);
- undo(8);
- cy.get('.lines-content').children().eq(1).children().children().should('have.length', 6);
- //del
- typeTextAtPosition(2, 1, `{backspace}`);
- cy.get('.lines-content').children().eq(0).children().children().should('have.length', 7);
- undo(1);
- cy.get('.lines-content').children().eq(0).children().children().should('have.length', 1);
- cy.get('.lines-content').children().eq(1).children().children().should('have.length', 6);
- // cut
- // typeTextAtPosition(2, 1, `{meta+x}`);
- // cy.get('.lines-content').children().eq(1).children().should('have.length', 0);
- // cy.get('.lines-content').type('{meta+z}');
- // cy.get('.lines-content').children().eq(1).children().should('have.length', 6);
- //complete
- typeTextAtPosition(14, 4, '{enter}');
- cy.get('.lines-content').children().eq(14).children().children().should('have.length', 1);
- typeTextAtPosition(15, 4, `c`);
- cy.get('.semi-json-viewer-complete-suggestions-container').children().should('have.length', 2);
- cy.get('.lines-content').type('{enter}');
- cy.get('.semi-json-viewer-complete-container').should('have.css', 'display', 'none');
- cy.get('.lines-content').children().eq(14).children().children().should('have.length', 2);
- typeTextAtPosition(15, 11, `:`);
- cy.get('.semi-json-viewer-complete-container').should('have.css', 'display', 'block');
- cy.get('.semi-json-viewer-complete-suggestions-container').children().should('have.length', 2);
- cy.get('.lines-content').type('{enter}');
- cy.get('.semi-json-viewer-complete-container').should('have.css', 'display', 'none');
- typeTextAtPosition(15, 19, `,{enter}`);
- cy.get('.lines-content').children().eq(14).children().children().should('have.length', 5);
- typeTextAtPosition(16, 4, `a`);
- cy.get('.semi-json-viewer-complete-suggestions-container').children().should('have.length', 2);
- typeTextAtPosition(16, 5, `{rightArrow}`);
- cy.get('.semi-json-viewer-complete-container').should('have.css', 'display', 'none');
- typeTextAtPosition(16, 5, `g`);
- cy.get('.semi-json-viewer-complete-suggestions-container').children().should('have.length', 2);
- cy.get('.lines-content').type('{enter}');
- cy.get('.semi-json-viewer-complete-container').should('have.css', 'display', 'none');
- typeTextAtPosition(16, 9, `:`);
- cy.get('.lines-content').type('{enter}');
- cy.get('.semi-json-viewer-complete-container').should('have.css', 'display', 'none');
- cy.get('.lines-content').children().eq(15).children().children().should('have.length', 4);
- //search
- cy.get('.semi-json-viewer-search-bar-trigger').click();
- cy.get('.semi-json-viewer-search-bar').children().eq(0).type('a');
- cy.get('.semi-json-viewer-search-result').should('have.length.at.least', 1);
- cy.get('.semi-icon.semi-icon-default.semi-icon-whole_word').click();
- cy.get('.semi-json-viewer-search-result').should('have.length', 0);
- cy.get('.semi-icon.semi-icon-default.semi-icon-whole_word').click();
- cy.get('.semi-json-viewer-search-bar').children().eq(0).clear();
- cy.get('.semi-json-viewer-search-result').should('have.length', 0);
- const str = '\\d+';
- cy.get('.semi-json-viewer-search-bar').children().eq(0).type(str);
- cy.get('.semi-icon.semi-icon-default.semi-icon-reg_exp').click();
- cy.get('.semi-json-viewer-search-result').should('have.length.at.least', 1);
- cy.get('.semi-icon.semi-icon-default.semi-icon-reg_exp').click();
- cy.get('.semi-json-viewer-search-bar').children().eq(0).clear();
- //replace
- cy.get('.semi-json-viewer-search-bar').children().eq(0).type('a');
- cy.get('.semi-json-viewer-replace-bar').children().eq(0).type('x');
- cy.get('.semi-json-viewer-search-result').then(($el) => {
- let length = $el.length;
- cy.get('.semi-json-viewer-replace-bar').children().eq(1).click();
- cy.get('.semi-json-viewer-search-result').should('have.length', length - 1);
- cy.get('.semi-json-viewer-replace-bar').children().eq(2).click();
- cy.get('.semi-json-viewer-search-result').should('have.length', 0);
- });
- });
- });
|