diff --git a/examples/nextjs/cypress/components/hooks/useNodesInitialized.cy.tsx b/examples/nextjs/cypress/components/hooks/useNodesInitialized.cy.tsx new file mode 100644 index 00000000..0d7be072 --- /dev/null +++ b/examples/nextjs/cypress/components/hooks/useNodesInitialized.cy.tsx @@ -0,0 +1,68 @@ +import ReactFlow, { useNodesInitialized } from 'reactflow'; + +import { nodes } from '../../fixtures/simpleflow'; +import ControlledFlow from '../../support/ControlledFlow'; + +describe('useNodesInitialized.cy.tsx', () => { + it('returns false for no nodes', () => { + const initSpy = cy.spy().as('initSpy'); + + cy.mount( + + + + ); + + cy.get('@initSpy').should('to.be.calledOnce'); + cy.get('@initSpy').should('have.been.calledWith', false); + }); + + it('returns false without onNodesChange', () => { + const initSpy = cy.spy().as('initSpy'); + + cy.mount( + + + + ); + + cy.get('@initSpy').should('to.be.calledOnce'); + cy.get('@initSpy').should('have.be.calledWith', false); + }); + + it('returns true for defaultNodes', () => { + const initSpy = cy.spy().as('initSpy'); + + cy.mount( + + + + ); + + cy.get('@initSpy').should('have.been.calledWith', false); + cy.get('@initSpy').should('have.been.calledWith', true); + }); + + it('returns true for nodes + onNodesChange', () => { + const initSpy = cy.spy().as('initSpy'); + + cy.mount( + + + + ); + + cy.get('@initSpy').should('have.been.calledWith', false); + cy.get('@initSpy').should('have.been.calledWith', true); + }); +}); + +// test specific helpers + +function HookHelperComponent({ onChange }: { onChange: (init: boolean) => void }) { + const initialized = useNodesInitialized(); + + onChange(initialized); + + return null; +}