feat(tests): add remove selected elements action tests

This commit is contained in:
braks
2022-10-07 22:55:38 +02:00
committed by Braks
parent c5291e7ab1
commit e3327ebea3
3 changed files with 116 additions and 0 deletions
@@ -0,0 +1,34 @@
import { useVueFlow } from '@braks/vue-flow'
import { getElements } from '../../../../utils'
const { nodes, edges } = getElements()
describe('Store Action: `removeSelectedEdges`', () => {
const store = useVueFlow({ id: 'test' })
let randomNumber: number
let randomNumber2: number
beforeEach(() => {
cy.vueFlow({
nodes,
edges,
})
})
beforeEach(() => {
randomNumber = Math.floor(Math.random() * edges.length)
randomNumber2 = Math.floor(Math.random() * randomNumber)
store.addSelectedEdges(Array.from({ length: randomNumber }, (_, i) => store.edges.value[i]))
store.removeSelectedEdges(Array.from({ length: randomNumber2 }, (_, i) => store.edges.value[i]))
})
it('removes selected edges from store', () => {
expect(store.getSelectedEdges.value).to.have.length(randomNumber2)
})
it('removes `selected` class from edges', () => {
cy.get('.vue-flow__edge').then((edges) => {
expect(edges[randomNumber2 - 1]).to.have.class('selected')
})
})
})
@@ -0,0 +1,48 @@
import type { GraphEdge, GraphNode } from '@braks/vue-flow'
import { isNode, useVueFlow } from '@braks/vue-flow'
import { getElements } from '../../../../utils'
const { nodes, edges } = getElements()
describe('Store Action: `removeSelectedElements`', () => {
const store = useVueFlow({ id: 'test' })
let randomNumber: number
let randomNumber2: number
beforeEach(() => {
cy.vueFlow({
nodes,
edges,
})
})
it('removes passed elements from selected elements in store', () => {
randomNumber = Math.floor(Math.random() * [...nodes, ...edges].length)
randomNumber2 = Math.floor(Math.random() * randomNumber)
store.addSelectedElements(Array.from({ length: randomNumber }, (_, i) => store.getElements.value[i]))
store.removeSelectedElements(
Array.from({ length: randomNumber2 }, (_, i) => store.getElements.value[i]).reduce(
(acc, curr) => {
if (isNode(curr)) {
acc.nodes.push(curr)
} else {
acc.edges.push(curr)
}
return acc
},
{ nodes: [] as GraphNode[], edges: [] as GraphEdge[] },
),
)
expect(store.getSelectedElements.value).to.have.length(randomNumber2)
})
it('resets all selected elements in store when no argument is passed', () => {
randomNumber = Math.floor(Math.random() * [...nodes, ...edges].length)
store.addSelectedElements(Array.from({ length: randomNumber }, (_, i) => store.getElements.value[i]))
store.removeSelectedElements()
expect(store.getSelectedElements.value).to.have.length(0)
})
})
@@ -0,0 +1,34 @@
import { useVueFlow } from '@braks/vue-flow'
import { getElements } from '../../../../utils'
const { nodes, edges } = getElements()
describe('Store Action: `removeSelectedNodes`', () => {
const store = useVueFlow({ id: 'test' })
let randomNumber: number
let randomNumber2: number
beforeEach(() => {
cy.vueFlow({
nodes,
edges,
})
})
beforeEach(() => {
randomNumber = Math.floor(Math.random() * nodes.length)
randomNumber2 = Math.floor(Math.random() * randomNumber)
store.addSelectedNodes(Array.from({ length: randomNumber }, (_, i) => store.nodes.value[i]))
store.removeSelectedNodes(Array.from({ length: randomNumber2 }, (_, i) => store.nodes.value[i]))
})
it('removes selected nodes from store', () => {
expect(store.getSelectedNodes.value).to.have.length(randomNumber2)
})
it('removes `selected` class from nodes', () => {
cy.get('.vue-flow__node').then((nodes) => {
expect(nodes[randomNumber2 - 1]).to.have.class('selected')
})
})
})