diff --git a/e2e/cypress/component/1-store/viewpane/selectionKeyCode.cy.ts b/e2e/cypress/component/1-store/viewpane/selectionKeyCode.cy.ts new file mode 100644 index 00000000..8e0d6b7e --- /dev/null +++ b/e2e/cypress/component/1-store/viewpane/selectionKeyCode.cy.ts @@ -0,0 +1,92 @@ +import { useVueFlow } from '@braks/vue-flow' +import { getElements } from '../../../utils' + +const { nodes, edges } = getElements() + +describe('Store State: `selectionKeyCode`', () => { + const store = useVueFlow({ id: 'test' }) + + beforeEach(() => { + cy.vueFlow({ + nodes, + edges, + }) + }) + + it('triggers selection', () => { + cy.window().then((win) => { + cy.get('body').trigger('keydown', { key: 'Shift', release: false }) + + cy.get('.vue-flow__selectionpane') + .should('exist') + .trigger('mousedown', { + which: 1, + force: true, + view: win, + }) + .trigger('mousemove', { + clientX: 100, + clientY: 100, + force: true, + }) + .click() + + cy.get('body').trigger('keyup', { key: 'Shift', release: true }) + + cy.wait(1).then(() => { + expect(store.getSelectedElements.value).to.not.have.length(0) + }) + }) + }) + + it('changes keycode', () => { + cy.window().then((win) => { + store.selectionKeyCode.value = 'Control' + cy.get('body').trigger('keydown', { key: 'Control', release: false }) + + cy.get('.vue-flow__selectionpane') + .should('exist') + .trigger('mousedown', { + which: 1, + force: true, + view: win, + }) + .trigger('mousemove', { + clientX: 100, + clientY: 100, + force: true, + }) + .click() + + cy.get('body').trigger('keyup', { key: 'Control', release: true }) + + cy.wait(1).then(() => { + expect(store.getSelectedElements.value).to.not.have.length(0) + }) + }) + }) + + it('allows `true` as keycode', () => { + cy.window().then((win) => { + store.selectionKeyCode.value = true + + cy.get('.vue-flow__selectionpane') + .should('exist') + .trigger('mousedown', { + which: 1, + force: true, + view: win, + }) + .trigger('mousemove', { + clientX: 100, + clientY: 100, + force: true, + }) + .click() + + cy.wait(1).then(() => { + expect(store.getSelectedElements.value).to.not.have.length(0) + }) + }) + }) +})