Files
easyai-ai-gateway/apps/api/internal/executionpool/identity_test.go
T
wangbo 7786692d32 feat(routing): 引入多执行池智能调度
将 Worker 发现、路由画像、容量与执行传输抽象为平台无关接口,新增 Kubernetes 和静态容量适配器,并以 shadow 模式接入生产配置。

实现网络与容量评分、路由防抖、池队列、同步 Worker 租约、一次性执行令牌,以及提交状态不明时禁止重复分配的安全语义。

新增 0105 兼容迁移、管理接口、指标、OpenAPI 和回归测试。已执行全量 Go 测试、go vet、OpenAPI、迁移安全、Compose 与 Kustomize 验证。
2026-08-05 22:25:37 +08:00

45 lines
1.4 KiB
Go

package executionpool
import (
"strings"
"testing"
"time"
)
func TestQueueNameDoesNotExposePoolID(t *testing.T) {
name := QueueName("region-sensitive-name")
if strings.Contains(name, "sensitive") || name == QueueName("other") {
t.Fatalf("unexpected queue name %q", name)
}
}
func TestTokenSigner(t *testing.T) {
now := time.Unix(1000, 0)
signer := TokenSigner{Secret: []byte("01234567890123456789012345678901"), Now: func() time.Time { return now }}
token, err := signer.Sign(ExecutionClaims{
Audience: "worker", TaskID: "task", PoolID: "pool", WorkerID: "worker", Nonce: "nonce", ExpiresAt: now.Add(30 * time.Second).Unix(),
})
if err != nil {
t.Fatal(err)
}
claims, err := signer.Verify(token, "worker")
if err != nil || claims.TaskID != "task" {
t.Fatalf("claims=%+v err=%v", claims, err)
}
if _, err := signer.Verify(token, "other"); err == nil {
t.Fatal("expected audience mismatch")
}
}
func TestValidateAdvertisedEndpoint(t *testing.T) {
if err := ValidateAdvertisedEndpoint("http://10.0.0.2:8088", nil, true); err != nil {
t.Fatal(err)
}
if err := ValidateAdvertisedEndpoint("https://worker.internal.example", []string{"internal.example"}, false); err != nil {
t.Fatal(err)
}
if err := ValidateAdvertisedEndpoint("https://public.example", []string{"internal.example"}, false); err == nil {
t.Fatal("expected untrusted endpoint rejection")
}
}