Files
new-api/service/task_plugin_view_test.go

65 lines
1.6 KiB
Go

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])
}