Files
xyflow/cypress/integration/flow/advanced.spec.js
2019-10-07 21:05:13 +02:00

49 lines
1.5 KiB
JavaScript

describe('Advanced Flow Rendering', () => {
it('renders a flow with sone nodes', () => {
cy.visit('/advanced.html');
cy.get('.react-flow__renderer');
cy.get('.react-flow__node').should('have.length', 9);
cy.get('.react-flow__edge').should('have.length', 9);
});
it('connects nodes', () => {
cy.get('.react-flow__node')
.contains('1 Tests')
.find('.react-flow__handle.source')
.trigger('mousedown', { which: 1 });
cy.get('.react-flow__node')
.contains('7 output')
.find('.react-flow__handle.target')
.trigger('mousemove')
.should('have.class', 'connecting')
.should('have.class', 'valid')
.trigger('mouseup', { force: true })
.should('not.have.class', 'valid')
.should('not.have.class', 'connecting');
cy.get('.react-flow__edge').should('have.length', 10);
});
it('tries to make invalid connection', () => {
cy.get('.react-flow__node')
.contains('write something')
.parents('.react-flow__node')
.find('.react-flow__handle.source')
.trigger('mousedown', { which: 1 });
cy.get('.react-flow__node')
.contains('5 Another node')
.find('.react-flow__handle.target')
.trigger('mousemove')
.should('have.class', 'connecting')
.should('not.have.class', 'valid')
.trigger('mouseup', { force: true })
.should('not.have.class', 'connecting');
cy.get('.react-flow__edge').should('have.length', 10);
});
});