tests: update delete key code tests
This commit is contained in:
@@ -1,42 +1,109 @@
|
|||||||
import { useVueFlow } from '@vue-flow/core'
|
import { useVueFlow } from '@vue-flow/core'
|
||||||
import { getElements } from '../../../utils'
|
import { getElements } from '../../../utils'
|
||||||
|
|
||||||
const { nodes, edges } = getElements()
|
const { nodes, edges } = getElements(2, 2)
|
||||||
|
|
||||||
describe('Store State: `deleteKeyCode`', () => {
|
describe('Store State: `deleteKeyCode`', () => {
|
||||||
const store = useVueFlow({ id: 'test' })
|
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(() => {
|
beforeEach(() => {
|
||||||
cy.vueFlow({
|
cy.vueFlow({
|
||||||
nodes,
|
nodes,
|
||||||
edges,
|
edges,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// reset the deleteKeyCode to default
|
||||||
|
store.deleteKeyCode.value = defaultKeyCode
|
||||||
|
})
|
||||||
|
|
||||||
|
it('deleteKeyCode is `Backspace` by default', () => {
|
||||||
|
expect(defaultKeyCode).to.equal('Backspace')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('deletes node', () => {
|
it('deletes node', () => {
|
||||||
cy.window().then(() => {
|
cy.get(`[data-id="${nodeToDelete.id}"]`).click()
|
||||||
cy.get(`[data-id="${nodes[0].id}"]`).click()
|
|
||||||
|
|
||||||
cy.get('body').trigger('keydown', { key: 'Backspace' })
|
cy.get('body').trigger('keydown', { key: defaultKeyCode })
|
||||||
|
|
||||||
cy.tryAssertion(() => {
|
cy.get(`[data-id="${nodeToDelete.id}"]`).should('not.exist')
|
||||||
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.tryAssertion(() => {
|
||||||
})
|
expect(store.findNode(nodeToDelete.id)).to.equal(undefined)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('changes key code', () => {
|
it('changes key code and deletes node', () => {
|
||||||
store.deleteKeyCode.value = 'Delete'
|
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('body').trigger('keydown', { key: 'Delete' })
|
||||||
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('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)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user