Something went wrong. Try again.
Monorepo for Tangled
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136package models
import ( "encoding/base64" "testing")
func TestSecretMask_BasicMasking(t *testing.T) { mask := NewSecretMask([]string{"mysecret123"})
input := "The password is mysecret123 in this log" expected := "The password is *** in this log"
result := mask.Mask(input) if result != expected { t.Errorf("expected %q, got %q", expected, result) }}
func TestSecretMask_Base64Encoded(t *testing.T) { secret := "mysecret123" mask := NewSecretMask([]string{secret})
b64 := base64.StdEncoding.EncodeToString([]byte(secret)) input := "Encoded: " + b64 expected := "Encoded: ***"
result := mask.Mask(input) if result != expected { t.Errorf("expected %q, got %q", expected, result) }}
func TestSecretMask_Base64NoPadding(t *testing.T) { // "test" encodes to "dGVzdA==" with padding secret := "test" mask := NewSecretMask([]string{secret})
b64NoPad := "dGVzdA" // base64 without padding input := "Token: " + b64NoPad expected := "Token: ***"
result := mask.Mask(input) if result != expected { t.Errorf("expected %q, got %q", expected, result) }}
func TestSecretMask_MultipleSecrets(t *testing.T) { mask := NewSecretMask([]string{"password1", "apikey123"})
input := "Using password1 and apikey123 for auth" expected := "Using *** and *** for auth"
result := mask.Mask(input) if result != expected { t.Errorf("expected %q, got %q", expected, result) }}
func TestSecretMask_MultipleOccurrences(t *testing.T) { mask := NewSecretMask([]string{"secret"})
input := "secret appears twice: secret" expected := "*** appears twice: ***"
result := mask.Mask(input) if result != expected { t.Errorf("expected %q, got %q", expected, result) }}
func TestSecretMask_ShortValues(t *testing.T) { mask := NewSecretMask([]string{"abc", "xy", ""})
if mask == nil { t.Fatal("expected non-nil mask") }
input := "abc xy test" expected := "*** *** test" result := mask.Mask(input) if result != expected { t.Errorf("expected %q, got %q", expected, result) }}
func TestSecretMask_NilMask(t *testing.T) { var mask *SecretMask
input := "some input text" result := mask.Mask(input) if result != input { t.Errorf("expected %q, got %q", input, result) }}
func TestSecretMask_EmptyInput(t *testing.T) { mask := NewSecretMask([]string{"secret"})
result := mask.Mask("") if result != "" { t.Errorf("expected empty string, got %q", result) }}
func TestSecretMask_NoMatch(t *testing.T) { mask := NewSecretMask([]string{"secretvalue"})
input := "nothing to mask here" result := mask.Mask(input) if result != input { t.Errorf("expected %q, got %q", input, result) }}
func TestSecretMask_EmptySecretsList(t *testing.T) { mask := NewSecretMask([]string{})
if mask != nil { t.Error("expected nil mask for empty secrets list") }}
func TestSecretMask_EmptySecretsFiltered(t *testing.T) { mask := NewSecretMask([]string{"ab", "validpassword", "", "xyz"})
input := "Using validpassword here" expected := "Using *** here"
result := mask.Mask(input) if result != expected { t.Errorf("expected %q, got %q", expected, result) }}