Files
vue-flow/tests/cypress/component/2-vue-flow/updateEdge.cy.ts
2023-02-22 20:20:11 +01:00

74 lines
1.8 KiB
TypeScript

import { useVueFlow } from '@vue-flow/core'
describe('Check if edges are updatable', () => {
const store = useVueFlow({ id: 'test' })
store.onEdgeUpdate((params) => store.updateEdge(params.edge, params.connection))
beforeEach(() => {
cy.vueFlow({
fitViewOnInit: false,
edgesUpdatable: true,
modelValue: [
{
id: '1',
label: 'Node 1',
position: { x: 0, y: 0 },
},
{
id: '2',
label: 'Node 2',
position: { x: 300, y: 300 },
},
{
id: '3',
label: 'Node 3',
position: { x: 300, y: 0 },
},
{
id: 'e1-2',
source: '1',
target: '2',
},
],
autoConnect: true,
})
})
it('updates edge', () => {
cy.window().then((win) => {
const edgeAnchor = cy.get('.vue-flow__edgeupdater[data-type="target"]')
const targetTargetHandle = cy.get(`[data-nodeid="3"].target`)
targetTargetHandle.then(async (handle) => {
const target = handle[0]
const { x, y } = target.getBoundingClientRect()
edgeAnchor
.trigger('mousedown', {
button: 0,
force: true,
view: win,
})
.trigger('mousemove', {
clientX: x + 5,
clientY: y + 5,
force: true,
})
.trigger('mouseup', {
clientX: x + 5,
clientY: y + 5,
force: true,
view: win,
})
await cy.tryAssertion(() => {
const storedEdges = store.edges.value
expect(storedEdges).to.have.length(1)
expect(storedEdges[0].target).to.equal('3')
expect(storedEdges[0].source).to.equal('1')
})
})
})
})
})