From f9462d16a95f80ac03cecab50be80aeceb13a5ec Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Wed, 17 May 2023 17:57:12 +0200 Subject: [PATCH] tests: update delete key code tests --- .../1-store/viewpane/deleteKeyCode.cy.ts | 99 ++++++++++++++++--- 1 file changed, 83 insertions(+), 16 deletions(-) diff --git a/tests/cypress/component/1-store/viewpane/deleteKeyCode.cy.ts b/tests/cypress/component/1-store/viewpane/deleteKeyCode.cy.ts index 91d813f4..30d7897c 100644 --- a/tests/cypress/component/1-store/viewpane/deleteKeyCode.cy.ts +++ b/tests/cypress/component/1-store/viewpane/deleteKeyCode.cy.ts @@ -1,42 +1,109 @@ import { useVueFlow } from '@vue-flow/core' import { getElements } from '../../../utils' -const { nodes, edges } = getElements() +const { nodes, edges } = getElements(2, 2) describe('Store State: `deleteKeyCode`', () => { const store = useVueFlow({ id: 'test' }) + const defaultKeyCode = store.deleteKeyCode.value + const nodeToDelete = nodes[Math.floor(Math.random() * nodes.length)] + const edgeToDelete = edges[Math.floor(Math.random() * edges.length)] beforeEach(() => { cy.vueFlow({ nodes, edges, }) + + // reset the deleteKeyCode to default + store.deleteKeyCode.value = defaultKeyCode + }) + + it('deleteKeyCode is `Backspace` by default', () => { + expect(defaultKeyCode).to.equal('Backspace') }) it('deletes node', () => { - cy.window().then(() => { - cy.get(`[data-id="${nodes[0].id}"]`).click() + cy.get(`[data-id="${nodeToDelete.id}"]`).click() - cy.get('body').trigger('keydown', { key: 'Backspace' }) + cy.get('body').trigger('keydown', { key: defaultKeyCode }) - cy.tryAssertion(() => { - cy.get(`[data-id="${nodes[0].id}"]`).should('not.exist') - expect(store.nodes.value.some((node) => node.id === nodes[0].id)).to.equal(false) - }) + cy.get(`[data-id="${nodeToDelete.id}"]`).should('not.exist') + + cy.tryAssertion(() => { + expect(store.findNode(nodeToDelete.id)).to.equal(undefined) }) }) - it('changes key code', () => { + it('changes key code and deletes node', () => { store.deleteKeyCode.value = 'Delete' - cy.window().then(() => { - cy.get(`[data-id="${nodes[0].id}"]`).click() - cy.get('body').trigger('keydown', { key: 'Delete' }) + cy.get(`[data-id="${nodeToDelete.id}"]`).click() - cy.tryAssertion(() => { - cy.get(`[data-id="${nodes[0].id}"]`).should('not.exist') - expect(store.nodes.value.some((node) => node.id === nodes[0].id)).to.equal(false) - }) + cy.get('body').trigger('keydown', { key: 'Delete' }) + + cy.get(`[data-id="${nodeToDelete.id}"]`).should('not.exist') + + cy.tryAssertion(() => { + expect(store.findNode(nodeToDelete.id)).to.equal(undefined) }) }) + + it('does not delete node when node is not deletable', () => { + cy.get(`[data-id="${nodeToDelete.id}"]`).click() + + store.findNode(nodeToDelete.id)!.deletable = false + + cy.get('body').trigger('keydown', { key: defaultKeyCode }) + + cy.get(`[data-id="${nodeToDelete.id}"]`).should('exist') + + expect(store.findNode(nodeToDelete.id)).to.not.equal(undefined) + }) + + it('does not delete node when node is not selected', () => { + cy.get(`[data-id="${nodeToDelete.id}"]`).click() + + store.findNode(nodeToDelete.id)!.selected = false + + cy.get('body').trigger('keydown', { key: defaultKeyCode }) + + cy.get(`[data-id="${nodeToDelete.id}"]`).should('exist') + + expect(store.findNode(nodeToDelete.id)).to.not.equal(undefined) + }) + + it('deletes edge', () => { + cy.get(`[data-id="${edgeToDelete.id}"]`).click() + + cy.get('body').trigger('keydown', { key: defaultKeyCode }) + + cy.get(`[data-id="${edgeToDelete.id}"]`).should('not.exist') + + expect(store.findNode(edgeToDelete.id)).to.equal(undefined) + }) + + it('does not delete edge when edge is not deletable', () => { + cy.get(`[data-id="${edgeToDelete.id}"]`).click() + + store.findEdge(edgeToDelete.id)!.deletable = false + + cy.get('body').trigger('keydown', { key: defaultKeyCode }) + + cy.get(`[data-id="${edgeToDelete.id}"]`).should('exist') + + expect(store.findEdge(edgeToDelete.id)).to.not.equal(undefined) + }) + + it('does not delete edge when edge is not selected', () => { + cy.get(`[data-id="${edgeToDelete.id}"]`).click() + + store.findEdge(edgeToDelete.id)!.selected = false + + cy.get('body').trigger('keydown', { key: defaultKeyCode }) + + cy.get(`[data-id="${edgeToDelete.id}"]`).should('exist') + + expect(store.findEdge(edgeToDelete.id)).to.not.equal(undefined) + }) })