spark-server/internal/module/admin/logic/jwt_test.go

32 lines
837 B
Go

package logic
import "testing"
func TestAdminJWTRoundTrip(t *testing.T) {
s := NewTokenService("wyrs-admin-jwt-secret-change-in-production-2025")
tok, err := s.CreateToken(42, "ops", "SUPER_ADMIN", "users,groups,imMessages")
if err != nil {
t.Fatal(err)
}
claims, err := s.Parse(tok)
if err != nil {
t.Fatal(err)
}
if claims.AdminID != 42 || claims.Type != TypeAdmin || claims.Subject != "ops" {
t.Fatalf("%+v", claims)
}
}
func TestAdminJWTRejectsWrongType(t *testing.T) {
s := NewTokenService("wyrs-admin-jwt-secret-change-in-production-2025")
tok, err := s.CreateToken(1, "x", "SUPER_ADMIN", "")
if err != nil {
t.Fatal(err)
}
// tamper by parsing with different secret
bad := NewTokenService("other-secret-other-secret-other!!")
if _, err := bad.Parse(tok); err == nil {
t.Fatal("expected invalid")
}
}