mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 10:53:02 +00:00 
			
		
		
		
	
		
			
	
	
		
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | import { preprocessNodesAndEdges } from './workflow-init' | ||
|  | import { BlockEnum } from '@/app/components/workflow/types' | ||
|  | import type { | ||
|  |   Node, | ||
|  | } from '@/app/components/workflow/types' | ||
|  | import { CUSTOM_ITERATION_START_NODE } from '@/app/components/workflow/nodes/iteration-start/constants' | ||
|  | 
 | ||
|  | describe('preprocessNodesAndEdges', () => { | ||
|  |   it('process nodes without iteration node or loop node should return origin nodes and edges.', () => { | ||
|  |     const nodes = [ | ||
|  |       { | ||
|  |         data: { | ||
|  |           type: BlockEnum.Code, | ||
|  |         }, | ||
|  |       }, | ||
|  |     ] | ||
|  | 
 | ||
|  |     const result = preprocessNodesAndEdges(nodes as Node[], []) | ||
|  |     expect(result).toEqual({ | ||
|  |       nodes, | ||
|  |       edges: [], | ||
|  |     }) | ||
|  |   }) | ||
|  | 
 | ||
|  |   it('process nodes with iteration node should return nodes with iteration start node', () => { | ||
|  |     const nodes = [ | ||
|  |       { | ||
|  |         id: 'iteration', | ||
|  |         data: { | ||
|  |           type: BlockEnum.Iteration, | ||
|  |         }, | ||
|  |       }, | ||
|  |     ] | ||
|  | 
 | ||
|  |     const result = preprocessNodesAndEdges(nodes as Node[], []) | ||
|  |     expect(result.nodes).toEqual( | ||
|  |       expect.arrayContaining([ | ||
|  |         expect.objectContaining({ | ||
|  |           data: expect.objectContaining({ | ||
|  |             type: BlockEnum.IterationStart, | ||
|  |           }), | ||
|  |         }), | ||
|  |       ]), | ||
|  |     ) | ||
|  |   }) | ||
|  | 
 | ||
|  |   it('process nodes with iteration node start should return origin', () => { | ||
|  |     const nodes = [ | ||
|  |       { | ||
|  |         data: { | ||
|  |           type: BlockEnum.Iteration, | ||
|  |           start_node_id: 'iterationStart', | ||
|  |         }, | ||
|  |       }, | ||
|  |       { | ||
|  |         id: 'iterationStart', | ||
|  |         type: CUSTOM_ITERATION_START_NODE, | ||
|  |         data: { | ||
|  |           type: BlockEnum.IterationStart, | ||
|  |         }, | ||
|  |       }, | ||
|  |     ] | ||
|  |     const result = preprocessNodesAndEdges(nodes as Node[], []) | ||
|  |     expect(result).toEqual({ | ||
|  |       nodes, | ||
|  |       edges: [], | ||
|  |     }) | ||
|  |   }) | ||
|  | }) |