package service import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/QuantumNous/new-api/common" "github.com/QuantumNous/new-api/model" ) func TestBuildTaskPluginViewRewritesOnlyStructuredTaskIDFields(t *testing.T) { const ( privateTaskID = "upstream-task-123" publicTaskID = "task_public_123" resultURL = "https://cdn.example.com/results/upstream-task-123/video.mp4" ) taskData, err := common.Marshal(map[string]any{ "task_id": privateTaskID, "id": privateTaskID, "taskId": privateTaskID, "url": resultURL, "message": "completed upstream-task-123", "nested": []any{ map[string]any{ "task_id": privateTaskID, "url": resultURL, }, privateTaskID, }, privateTaskID: "opaque map key", }) require.NoError(t, err) task := &model.Task{ TaskID: publicTaskID, PrivateData: model.TaskPrivateData{ UpstreamTaskID: privateTaskID, }, Data: taskData, } view, err := BuildTaskPluginView(task) require.NoError(t, err) data, ok := view.Data.(map[string]any) require.True(t, ok) assert.Equal(t, publicTaskID, data["task_id"]) assert.Equal(t, publicTaskID, data["id"]) assert.Equal(t, publicTaskID, data["taskId"]) assert.Equal(t, resultURL, data["url"]) assert.Equal(t, "completed upstream-task-123", data["message"]) assert.Equal(t, "opaque map key", data[privateTaskID]) nested, ok := data["nested"].([]any) require.True(t, ok) nestedData, ok := nested[0].(map[string]any) require.True(t, ok) assert.Equal(t, publicTaskID, nestedData["task_id"]) assert.Equal(t, resultURL, nestedData["url"]) assert.Equal(t, privateTaskID, nested[1]) }