@@ -198,6 +198,7 @@ def test_ensure_create_graph_scaffold_builds_minimal_start_end_graph(self):
198198 graph = ExternalWorkflowService ._ensure_create_graph_scaffold ({'nodes' : [], 'edges' : []})
199199
200200 self .assertEqual ([node ['data' ]['type' ] for node in graph ['nodes' ]], ['start' , 'end' ])
201+ self .assertEqual ([node ['type' ] for node in graph ['nodes' ]], ['flowNode' , 'flowNode' ])
201202 self .assertEqual (len (graph ['edges' ]), 1 )
202203 self .assertEqual (graph ['edges' ][0 ]['source' ], graph ['nodes' ][0 ]['id' ])
203204 self .assertEqual (graph ['edges' ][0 ]['target' ], graph ['nodes' ][1 ]['id' ])
@@ -224,6 +225,7 @@ def test_ensure_create_graph_scaffold_wraps_initial_node_with_start_and_end(self
224225 end_id = next (node_id for node_id , node_type in node_types .items () if node_type == 'end' )
225226
226227 self .assertEqual (len (graph ['nodes' ]), 3 )
228+ self .assertEqual ([node ['type' ] for node in graph ['nodes' ]], ['flowNode' , 'flowNode' , 'flowNode' ])
227229 self .assertEqual (len (graph ['edges' ]), 2 )
228230 self .assertTrue (any (edge ['source' ] == start_id and edge ['target' ] == 'input-1' for edge in graph ['edges' ]))
229231 self .assertTrue (any (edge ['source' ] == 'input-1' and edge ['target' ] == end_id for edge in graph ['edges' ]))
@@ -258,6 +260,7 @@ def test_ensure_create_graph_scaffold_adds_condition_routes_to_end(self):
258260 start_id = next (node_id for node_id , node_type in node_types .items () if node_type == 'start' )
259261 end_id = next (node_id for node_id , node_type in node_types .items () if node_type == 'end' )
260262
263+ self .assertEqual ([node ['type' ] for node in graph ['nodes' ]], ['flowNode' , 'flowNode' , 'flowNode' ])
261264 self .assertTrue (any (edge ['source' ] == start_id and edge ['target' ] == 'condition-1' for edge in graph ['edges' ]))
262265 self .assertTrue (
263266 any (
@@ -319,8 +322,41 @@ def fake_get_current_version(flow_id):
319322 self .assertEqual (version .id , 11 )
320323 scaffold_types = [node ['data' ]['type' ] for node in captured ['graph_data' ]['nodes' ]]
321324 self .assertEqual (scaffold_types , ['start' , 'end' ])
325+ self .assertEqual ([node ['type' ] for node in captured ['graph_data' ]['nodes' ]], ['flowNode' , 'flowNode' ])
322326 self .assertEqual (len (captured ['graph_data' ]['edges' ]), 1 )
323327
328+ def test_normalize_workflow_editor_graph_rewrites_legacy_node_types (self ):
329+ graph = {
330+ 'nodes' : [{
331+ 'id' : 'start-1' ,
332+ 'type' : 'start' ,
333+ 'position' : {'x' : 0 , 'y' : 0 },
334+ 'data' : {
335+ 'id' : 'start-1' ,
336+ 'type' : 'start' ,
337+ 'name' : 'Start' ,
338+ 'group_params' : [],
339+ },
340+ }, {
341+ 'id' : 'end-1' ,
342+ 'type' : 'end' ,
343+ 'position' : {'x' : 320 , 'y' : 0 },
344+ 'data' : {
345+ 'id' : 'end-1' ,
346+ 'type' : 'end' ,
347+ 'name' : 'End' ,
348+ 'group_params' : [],
349+ },
350+ }],
351+ 'edges' : [],
352+ }
353+
354+ normalized = FlowService ._normalize_workflow_editor_graph (graph )
355+
356+ self .assertEqual ([node ['type' ] for node in normalized ['nodes' ]], ['flowNode' , 'flowNode' ])
357+ self .assertEqual ([node ['data' ]['type' ] for node in normalized ['nodes' ]], ['start' , 'end' ])
358+ self .assertEqual ([node ['type' ] for node in graph ['nodes' ]], ['start' , 'end' ])
359+
324360 def test_get_existing_external_draft_version_limits_recent_versions (self ):
325361 captured = {'statements' : []}
326362
@@ -554,6 +590,7 @@ def fake_update_version(version_info):
554590 self .assertEqual (len (persisted ), 1 )
555591 self .assertEqual (len (persisted [0 ]['nodes' ]), 2 )
556592 self .assertEqual (persisted [0 ]['nodes' ][1 ]['id' ], node_id )
593+ self .assertEqual (persisted [0 ]['nodes' ][1 ]['type' ], 'flowNode' )
557594 self .assertEqual (persisted [0 ]['nodes' ][1 ]['position' ], {'x' : 120 , 'y' : 260 })
558595 self .assertEqual (persisted [0 ]['nodes' ][1 ]['data' ]['type' ], 'code' )
559596 self .assertEqual (persisted [0 ]['nodes' ][1 ]['data' ]['name' ], 'Code Node' )
0 commit comments