From 794c6b63e485b7560ac9ee027d1744f74de35d96 Mon Sep 17 00:00:00 2001 From: zhifu gao Date: Wed, 15 Jul 2026 20:32:59 +0800 Subject: [PATCH] fix(agent): return DataOperations input form (#16930) ## Summary - return the input form collected by `DataOperationsComponent.GetInputForm` - add a regression test covering system variables, component outputs, and duplicate references --- internal/agent/component/data_operations.go | 2 +- .../agent/component/data_operations_test.go | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/internal/agent/component/data_operations.go b/internal/agent/component/data_operations.go index 939ce1042c..a740dfdbe0 100644 --- a/internal/agent/component/data_operations.go +++ b/internal/agent/component/data_operations.go @@ -279,7 +279,7 @@ func (d *DataOperationsComponent) GetInputForm() map[string]any { } } } - return map[string]any{} + return res } // Outputs returns the transformed payload. diff --git a/internal/agent/component/data_operations_test.go b/internal/agent/component/data_operations_test.go index 7bbd8ef68f..663c7311a9 100644 --- a/internal/agent/component/data_operations_test.go +++ b/internal/agent/component/data_operations_test.go @@ -24,6 +24,34 @@ import ( "ragflow/internal/agent/canvas" ) +func TestDataOperations_GetInputForm(t *testing.T) { + c, err := NewDataOperationsComponent(map[string]any{ + "query": []string{ + "{{sys.query}}", + "{{CodeExec:Run@result}}", + "{{sys.query}}", + }, + }) + if err != nil { + t.Fatalf("NewDataOperationsComponent: %v", err) + } + + got := c.(*DataOperationsComponent).GetInputForm() + want := map[string]any{ + "sys.query": map[string]any{ + "name": "sys.query", + "type": "line", + }, + "CodeExec:Run@result": map[string]any{ + "name": "CodeExec:Run@result", + "type": "line", + }, + } + if !reflect.DeepEqual(got, want) { + t.Errorf("GetInputForm = %#v, want %#v", got, want) + } +} + // TestDataOperations_SelectKeys: keep only specified keys. func TestDataOperations_SelectKeys(t *testing.T) { c, err := NewDataOperationsComponent(map[string]any{