import { visitAndApproveStorage } from '../../support/ui-test-helper.js'; describe('UI - Clipboard', function () { beforeEach(() => { visitAndApproveStorage(); }); it('Editor - Copy and paste', () => { cy.get('#tool_source').click(); cy.get('#svg_source_textarea') .type('{selectall}') .type(` Layer 1 `, {parseSpecialCharSequences: false}); cy.get('#tool_source_save').click(); cy.get('#testCircle').should('exist'); cy.get('#svg_1').should('not.exist'); cy.get('#svg_2').should('not.exist'); // Copy. cy.get('#testCircle').click().rightclick(); cy.get('#cmenu_canvas a[href="#copy"]').click(); // Paste. // Scrollbars fail to recenter in Cypress test. Works fine in reality. // Thus forcing click is needed since workspace is mostly offscreen. cy.get('#svgroot').rightclick({force: true}); cy.get('#cmenu_canvas a[href="#paste"]').click(); cy.get('#testCircle').should('exist'); cy.get('#svg_1').should('exist'); cy.get('#svg_2').should('not.exist'); // Cut. cy.get('#testCircle').click().rightclick(); cy.get('#cmenu_canvas a[href="#cut"]').click(); cy.get('#testCircle').should('not.exist'); cy.get('#svg_1').should('exist'); cy.get('#svg_2').should('not.exist'); // Paste. // Scrollbars fail to recenter in Cypress test. Works fine in reality. // Thus forcing click is needed since workspace is mostly offscreen. cy.get('#svgroot').rightclick({force: true}); cy.get('#cmenu_canvas a[href="#paste"]').click(); cy.get('#testCircle').should('not.exist'); cy.get('#svg_1').should('exist'); cy.get('#svg_2').should('exist'); // Delete. cy.get('#svg_2').click().rightclick(); cy.get('#cmenu_canvas a[href="#delete"]').click(); cy.get('#svg_1').click().rightclick(); cy.get('#cmenu_canvas a[href="#delete"]').click(); cy.get('#svg_1').should('not.exist'); cy.get('#svg_2').should('not.exist'); }); });