import { visitAndApproveStorage } from '../../support/ui-test-helper.js' describe('UI - Clipboard', function () { beforeEach(() => { visitAndApproveStorage() }) it('Editor - Copy and paste', () => { cy.get('#tool_source').click({ force: true }) cy.get('#svg_source_textarea') .type('{selectall}', { force: true }) .type(` Layer 1 `, { force: true, parseSpecialCharSequences: false }) cy.get('#tool_source_save').click({ force: true }) cy.get('#testCircle').should('exist') cy.get('#svg_1').should('not.exist') cy.get('#svg_2').should('not.exist') // Copy. cy.get('#testCircle').click({ force: true }).rightclick({ force: true }) 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({ force: true }).rightclick({ force: true }) 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({ force: true }).rightclick({ force: true }) cy.get('#cmenu_canvas a[href="#delete"]').click({ force: true }) cy.get('#svg_1').click({ force: true }).rightclick({ force: true }) cy.get('#cmenu_canvas a[href="#delete"]').click({ force: true }) cy.get('#svg_1').should('not.exist') cy.get('#svg_2').should('not.exist') }) })