Files
vue-flow/cypress/integration/2-flow/container.spec.ts
T
Braks 39501d0bb0 refactor(flow): export useNodesState and useEdgesState separately from useVueFlow
* bind vueFlow instance to currentInstance when useVueFlow is called multiple times in a single setup call

Signed-off-by: Braks <78412429+bcakmakoglu@users.noreply.github.com>
2021-12-20 19:29:52 +01:00

49 lines
1.4 KiB
TypeScript

import { mount } from '@cypress/vue'
import VueFlow from '../../../src/container/VueFlow/VueFlow.vue'
import { Elements } from '~/types'
import { isEdge, isNode } from '~/utils'
import '~/theme-default.css'
describe('Render VueFlow', () => {
const elements: Elements = [
{ id: '1', type: 'input', label: 'Node 1', position: { x: 250, y: 5 } },
{ id: '2', label: 'Node 2', position: { x: 100, y: 100 } },
{ id: 'e1-2', source: '1', target: '2', animated: true },
]
beforeEach(() => {
mount(VueFlow, {
props: {
modelValue: elements,
},
attrs: {
key: 'flowy',
style: {
height: '100vh',
width: '100vw',
},
},
})
})
it('renders a Vue Flow container', () => {
cy.get('.vue-flow').should('exist')
})
it('renders nodes', () => {
cy.get('.vue-flow__node').should('have.length', elements.filter(isNode).length)
})
it('renders edges', () => cy.get('.vue-flow__edge').should('have.length', elements.filter(isEdge).length))
it('renders correct node labels', () =>
cy.get('.vue-flow__node').each((node) => expect(elements.some((el) => el.label === node.text())).to.be.true))
it('renders nodes at correct position', () =>
cy.get('.vue-flow__node').each((node) => {
expect(
elements.filter(isNode).some((el) => el.position.x === node.position().left && el.position.y === node.position().top),
).to.be.true
}))
})