31 lines
720 B
Go
31 lines
720 B
Go
package catalog
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestRedactRemovesCredentialAndIdentityPatterns(t *testing.T) {
|
|
raw := strings.Join([]string{
|
|
"Authorization: Bearer header-secret",
|
|
"api_key=key-secret",
|
|
"access-token: token-secret",
|
|
"refresh_token='refresh-secret'",
|
|
"account@example.com",
|
|
}, "\n")
|
|
redacted := Redact(raw)
|
|
for _, secret := range []string{
|
|
"header-secret",
|
|
"key-secret",
|
|
"token-secret",
|
|
"refresh-secret",
|
|
"account@example.com",
|
|
} {
|
|
if strings.Contains(redacted, secret) {
|
|
t.Fatalf("Redact leaked %q in %q", secret, redacted)
|
|
}
|
|
}
|
|
if count := strings.Count(redacted, "[REDACTED]"); count != 4 {
|
|
t.Fatalf("redaction count = %d, output = %q", count, redacted)
|
|
}
|
|
}
|