From cc4a007254d4eeba394c522eceb38cdf32e74175 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 7 Oct 2022 18:38:51 +0200 Subject: [PATCH] feat(tests): add selected elements action tests --- .../actions/edges/addSelectedEdges.cy.ts | 31 +++++++++++++++++++ .../elements/addSelectedElements.cy.ts | 25 +++++++++++++++ .../actions/{ => elements}/setElements.cy.ts | 2 +- .../actions/nodes/addSelectedNodes.cy.ts | 31 +++++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 e2e/cypress/component/1-store/actions/edges/addSelectedEdges.cy.ts create mode 100644 e2e/cypress/component/1-store/actions/elements/addSelectedElements.cy.ts rename e2e/cypress/component/1-store/actions/{ => elements}/setElements.cy.ts (98%) create mode 100644 e2e/cypress/component/1-store/actions/nodes/addSelectedNodes.cy.ts diff --git a/e2e/cypress/component/1-store/actions/edges/addSelectedEdges.cy.ts b/e2e/cypress/component/1-store/actions/edges/addSelectedEdges.cy.ts new file mode 100644 index 00000000..155d79f3 --- /dev/null +++ b/e2e/cypress/component/1-store/actions/edges/addSelectedEdges.cy.ts @@ -0,0 +1,31 @@ +import { useVueFlow } from '@braks/vue-flow' +import { getElements } from '../../../../utils' + +const { nodes, edges } = getElements() + +describe('Store Action: `addSelectedEdges`', () => { + const store = useVueFlow({ id: 'test' }) + let randomNumber: number + + beforeEach(() => { + cy.vueFlow({ + nodes, + edges, + }) + }) + + beforeEach(() => { + randomNumber = Math.floor(Math.random() * edges.length) + store.addSelectedEdges(Array.from({ length: randomNumber }, (_, i) => store.edges.value[i])) + }) + + it('adds selected edges to store', () => { + expect(store.getSelectedEdges.value).to.have.length(randomNumber) + }) + + it('adds `selected` class to edges', () => { + cy.get('.vue-flow__edge').then((edges) => { + expect(edges[randomNumber - 1]).to.have.class('selected') + }) + }) +}) diff --git a/e2e/cypress/component/1-store/actions/elements/addSelectedElements.cy.ts b/e2e/cypress/component/1-store/actions/elements/addSelectedElements.cy.ts new file mode 100644 index 00000000..cedd5cc9 --- /dev/null +++ b/e2e/cypress/component/1-store/actions/elements/addSelectedElements.cy.ts @@ -0,0 +1,25 @@ +import { useVueFlow } from '@braks/vue-flow' +import { getElements } from '../../../../utils' + +const { nodes, edges } = getElements() + +describe('Store Action: `addSelectedElements`', () => { + const store = useVueFlow({ id: 'test' }) + let randomNumber: number + + beforeEach(() => { + cy.vueFlow({ + nodes, + edges, + }) + }) + + beforeEach(() => { + randomNumber = Math.floor(Math.random() * [...nodes, ...edges].length) + store.addSelectedElements(Array.from({ length: randomNumber }, (_, i) => store.getElements.value[i])) + }) + + it('adds selected elements to store', () => { + expect(store.getSelectedElements.value).to.have.length(randomNumber) + }) +}) diff --git a/e2e/cypress/component/1-store/actions/setElements.cy.ts b/e2e/cypress/component/1-store/actions/elements/setElements.cy.ts similarity index 98% rename from e2e/cypress/component/1-store/actions/setElements.cy.ts rename to e2e/cypress/component/1-store/actions/elements/setElements.cy.ts index 911b54e7..4cf00084 100644 --- a/e2e/cypress/component/1-store/actions/setElements.cy.ts +++ b/e2e/cypress/component/1-store/actions/elements/setElements.cy.ts @@ -1,5 +1,5 @@ import { isEdge, isNode, useVueFlow } from '@braks/vue-flow' -import { getElements } from '../../../utils' +import { getElements } from '../../../../utils' const { nodes, edges } = getElements() diff --git a/e2e/cypress/component/1-store/actions/nodes/addSelectedNodes.cy.ts b/e2e/cypress/component/1-store/actions/nodes/addSelectedNodes.cy.ts new file mode 100644 index 00000000..ee280edf --- /dev/null +++ b/e2e/cypress/component/1-store/actions/nodes/addSelectedNodes.cy.ts @@ -0,0 +1,31 @@ +import { useVueFlow } from '@braks/vue-flow' +import { getElements } from '../../../../utils' + +const { nodes, edges } = getElements() + +describe('Store Action: `addSelectedNodes`', () => { + const store = useVueFlow({ id: 'test' }) + let randomNumber: number + + beforeEach(() => { + cy.vueFlow({ + nodes, + edges, + }) + }) + + beforeEach(() => { + randomNumber = Math.floor(Math.random() * nodes.length) + store.addSelectedNodes(Array.from({ length: randomNumber }, (_, i) => store.nodes.value[i])) + }) + + it('adds selected nodes to store', () => { + expect(store.getSelectedNodes.value).to.have.length(randomNumber) + }) + + it('adds `selected` class to nodes', () => { + cy.get('.vue-flow__node').then((nodes) => { + expect(nodes[randomNumber - 1]).to.have.class('selected') + }) + }) +})