mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-11 22:49:57 +00:00
feat(task): replace built-in task adaptors with a sandboxed JS plugin system (#7076)
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
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])
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user