Files
vue-flow/e2e/cypress/component/1-store/elements/removeSelectedElements.cy.ts

50 lines
1.5 KiB
TypeScript

import type { Elements } from '@vue-flow/core'
import { isNode, useVueFlow } from '@vue-flow/core'
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', async () => {
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.push(curr)
} else {
acc.push(curr)
}
return acc
}, [] as Elements),
)
await cy.tryAssertion(() => {
expect(store.getSelectedElements.value).to.have.length(randomNumber - 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()
cy.tryAssertion(() => {
expect(store.getSelectedElements.value).to.have.length(0)
})
})
})