将 Worker 发现、路由画像、容量与执行传输抽象为平台无关接口,新增 Kubernetes 和静态容量适配器,并以 shadow 模式接入生产配置。 实现网络与容量评分、路由防抖、池队列、同步 Worker 租约、一次性执行令牌,以及提交状态不明时禁止重复分配的安全语义。 新增 0105 兼容迁移、管理接口、指标、OpenAPI 和回归测试。已执行全量 Go 测试、go vet、OpenAPI、迁移安全、Compose 与 Kustomize 验证。
28 lines
868 B
Go
28 lines
868 B
Go
package config
|
|
|
|
import "testing"
|
|
|
|
func TestCapacityPoolsAreDataDriven(t *testing.T) {
|
|
cfg := Config{CapacityPoolsJSON: `[
|
|
{"id":"pool-a","adapterRef":"deployment-a","bootstrapReplicas":1,"minReplicas":1,"maxReplicas":3},
|
|
{"id":"pool-b","adapterRef":"deployment-b","bootstrapReplicas":0,"minReplicas":0,"maxReplicas":2}
|
|
]`}
|
|
pools, err := cfg.CapacityPools()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(pools) != 2 || pools[0].ID != "pool-a" || pools[1].AdapterRef != "deployment-b" {
|
|
t.Fatalf("pools=%+v", pools)
|
|
}
|
|
}
|
|
|
|
func TestCapacityPoolsRejectDuplicates(t *testing.T) {
|
|
cfg := Config{CapacityPoolsJSON: `[
|
|
{"id":"pool-a","bootstrapReplicas":1,"minReplicas":1,"maxReplicas":1},
|
|
{"id":"pool-a","bootstrapReplicas":1,"minReplicas":1,"maxReplicas":1}
|
|
]`}
|
|
if _, err := cfg.CapacityPools(); err == nil {
|
|
t.Fatal("expected duplicate pool rejection")
|
|
}
|
|
}
|