vibe-proxy/backend/internal/signature/gpt_validation_test.go
2026-08-24 00:10:41 +02:00

35 lines
976 B
Go

package signature
import (
"encoding/base64"
"strings"
"testing"
)
func testGPTReasoningSignature() string {
payload := make([]byte, 1+8+16+16+32)
payload[0] = 0x80
for i := 9; i < len(payload); i++ {
payload[i] = byte(i)
}
return base64.RawURLEncoding.EncodeToString(payload)
}
func TestDetectSignatureProvider_GPTReasoning(t *testing.T) {
if got := DetectSignatureProvider(testGPTReasoningSignature()); got != SignatureProviderGPT {
t.Fatalf("DetectSignatureProvider(GPT) = %q, want %q", got, SignatureProviderGPT)
}
}
func TestInspectGPTReasoningSignatureRejectsUnicodeEllipsis(t *testing.T) {
sig := testGPTReasoningSignature()
polluted := sig[:20] + string(rune(0x2026)) + sig[20:]
_, err := InspectGPTReasoningSignature(polluted)
if err == nil {
t.Fatal("expected invalid GPT reasoning signature")
}
if !strings.Contains(err.Error(), "non-base64url character U+2026") {
t.Fatalf("error = %q, want U+2026 base64url detail", err.Error())
}
}