mirror of
https://github.com/QuantumNous/new-api.git
synced 2026-09-10 22:20:25 +00:00
feat(task): replace built-in task adaptors with a sandboxed JS plugin system (#7076)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"os"
|
||||
"sync"
|
||||
@@ -8,6 +9,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/QuantumNous/new-api/common"
|
||||
"github.com/QuantumNous/new-api/constant"
|
||||
"github.com/glebarez/sqlite"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -99,6 +101,40 @@ func insertTask(t *testing.T, task *Task) {
|
||||
require.NoError(t, DB.Create(task).Error)
|
||||
}
|
||||
|
||||
func TestGetTaskForProtocolObservationScopesOwnerAndPlatform(t *testing.T) {
|
||||
truncateTables(t)
|
||||
task := &Task{
|
||||
TaskID: "task_protocol_scope",
|
||||
UserId: 7,
|
||||
Platform: "plugin-a",
|
||||
Status: TaskStatusInProgress,
|
||||
}
|
||||
insertTask(t, task)
|
||||
|
||||
got, exists, err := GetTaskForProtocolObservation(context.Background(), 7, "plugin-a", task.TaskID)
|
||||
require.NoError(t, err)
|
||||
require.True(t, exists)
|
||||
assert.Equal(t, task.ID, got.ID)
|
||||
|
||||
for _, query := range []struct {
|
||||
userID int
|
||||
platform string
|
||||
}{
|
||||
{userID: 8, platform: "plugin-a"},
|
||||
{userID: 7, platform: "plugin-b"},
|
||||
} {
|
||||
got, exists, err = GetTaskForProtocolObservation(context.Background(), query.userID, constant.TaskPlatform(query.platform), task.TaskID)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, exists)
|
||||
assert.Nil(t, got)
|
||||
}
|
||||
|
||||
cancelled, cancel := context.WithCancel(context.Background())
|
||||
cancel()
|
||||
_, _, err = GetTaskForProtocolObservation(cancelled, 7, "plugin-a", task.TaskID)
|
||||
require.ErrorIs(t, err, context.Canceled)
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Snapshot / Equal — pure logic tests (no DB)
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user