Files
ai_site/platform/internal/agentcap/capsule_test.go
2026-07-31 10:31:17 +08:00

37 lines
861 B
Go

package agentcap
import (
"testing"
)
func TestEncryptDecrypt(t *testing.T) {
key := DeriveKey("secret", 1, 2)
cap, err := Encrypt(key, &Descriptor{
Version: "1",
BaseURL: "http://127.0.0.1:8888",
AppSlug: "demo",
Auth: AuthSpec{Type: "bearer_jwt", Header: "Authorization"},
Resources: []ResourceSpec{{
Name: "items", Path: "/api/v1/apps/demo/items",
Methods: []string{"GET", "POST"}, PrimaryKey: "id",
Fields: []FieldSpec{{Name: "title", Type: "string"}},
}},
})
if err != nil {
t.Fatal(err)
}
if cap[:4] != Prefix {
t.Fatalf("prefix: %s", cap)
}
desc, err := Decrypt(key, cap)
if err != nil {
t.Fatal(err)
}
if desc.AppSlug != "demo" || len(desc.Resources) != 1 {
t.Fatalf("%+v", desc)
}
if _, err := Decrypt([]byte("bad-key-bad-key-bad-key-bad!!!!"), cap); err == nil {
t.Fatal("expected decrypt fail")
}
}