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}', { force: true }) .type(` Layer 1 `, { force: true, 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({ force: true }); // 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({ force: true }); 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({ force: true }); 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({ force: true }); 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({ force: true }); cy.get('#svg_1').click().rightclick(); cy.get('#cmenu_canvas a[href="#delete"]').click({ force: true }); cy.get('#svg_1').should('not.exist'); cy.get('#svg_2').should('not.exist'); }); });