Files
ai-gateway-go/internal/platform/license/license_test.go
T
superidou c22669c31d 0.11.0: 旗舰版功能补齐(License/登录记录/会话管理/角色管理/门户定时任务/模型配额/输出脱敏/供应链扫描/记忆管理/AI助手/真实概览)
- 新增迁移 000031-000034(登录日志/角色/模型配额/记忆)
- 新增包: license/memory/modelquota/assistant,扫描引擎
- 全部功能后端+前端+端到端验证通过(25 包单测)
2026-08-13 11:37:18 +08:00

45 lines
1.2 KiB
Go

package license
import "encoding/json"
import (
"testing"
"time"
)
func TestSignParseRoundTrip(t *testing.T) {
key := "test-master-key-123"
claims := Claims{Edition: EditionUltra, IssuedTo: "acme", MaxAccounts: 50,
NotBefore: time.Now().Add(-time.Hour).Format(time.RFC3339),
NotAfter: time.Now().Add(24 * time.Hour).Format(time.RFC3339)}
lic, err := Sign(claims, key)
if err != nil {
t.Fatal(err)
}
raw, _ := json.Marshal(lic)
parsed, err := Parse(raw, deriveKey(key))
if err != nil {
t.Fatalf("parse: %v", err)
}
if parsed.Edition != EditionUltra || parsed.MaxAccounts != 50 {
t.Fatalf("bad claims: %+v", parsed.Claims)
}
}
func TestParseRejectsBadSignature(t *testing.T) {
lic, _ := Sign(Claims{Edition: EditionPro, MaxAccounts: 30}, "key-a")
raw, _ := json.Marshal(lic)
if _, err := Parse(raw, deriveKey("key-b")); err == nil {
t.Fatal("expected signature failure")
}
}
func TestParseRejectsExpired(t *testing.T) {
claims := Claims{Edition: EditionPro, MaxAccounts: 30,
NotAfter: time.Now().Add(-time.Hour).Format(time.RFC3339)}
lic, _ := Sign(claims, "key")
raw, _ := json.Marshal(lic)
if _, err := Parse(raw, deriveKey("key")); err != ErrLicenseExpired {
t.Fatalf("expected expired, got %v", err)
}
}