Files
wehub-resource-sync 48b3ccf279
gitleaks / gitleaks (push) Has been skipped
Test / test (ubuntu-latest) (push) Failing after 0s
Test / test (windows-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:12:29 +08:00

85 lines
1.9 KiB
Go

package report
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestRedact(t *testing.T) {
tests := []struct {
findings []Finding
redact bool
}{
{
redact: true,
findings: []Finding{
{
Match: "line containing secret",
Secret: "secret",
},
}},
}
for _, test := range tests {
for _, f := range test.findings {
f.Redact(100)
assert.Equal(t, "REDACTED", f.Secret)
assert.Equal(t, "line containing REDACTED", f.Match)
}
}
}
func TestMask(t *testing.T) {
tests := map[string]struct {
finding Finding
percent uint
expect Finding
}{
"normal secret": {
finding: Finding{Match: "line containing secret", Secret: "secret"},
expect: Finding{Match: "line containing se...", Secret: "se..."},
percent: 75,
},
"empty secret": {
finding: Finding{Match: "line containing", Secret: ""},
expect: Finding{Match: "line containing", Secret: ""},
percent: 75,
},
"short secret": {
finding: Finding{Match: "line containing", Secret: "ss"},
expect: Finding{Match: "line containing", Secret: "..."},
percent: 75,
},
}
for name, test := range tests {
t.Run(name, func(t *testing.T) {
f := test.finding
e := test.expect
f.Redact(test.percent)
assert.Equal(t, e.Secret, f.Secret)
assert.Equal(t, e.Match, f.Match)
})
}
}
func TestMaskSecret(t *testing.T) {
tests := map[string]struct {
secret string
percent uint
expect string
}{
"normal masking": {secret: "secret", percent: 75, expect: "se..."},
"high masking": {secret: "secret", percent: 90, expect: "s..."},
"low masking": {secret: "secret", percent: 10, expect: "secre..."},
"invalid masking": {secret: "secret", percent: 1000, expect: "..."},
}
for name, test := range tests {
t.Run(name, func(t *testing.T) {
got := maskSecret(test.secret, test.percent)
assert.Equal(t, test.expect, got)
})
}
}