All checks were successful
check / check (push) Successful in 1m8s
- Replace .golangci.yml with the canonical strict config (all linters enabled except the standard disable list; lll 88, funlen 80/50, cyclop 15, dupl 100; test files now linted) - Pin the Dockerfile lint stage to golangci/golangci-lint:v2.12.2 by tag and digest (Debian-based) - Fix all ~1550 findings surfaced by the new config: line wrapping, wsl_v5/nlreturn blank lines, noinlineerr splits, err113 sentinel errors, perfsprint/modernize rewrites, goconst constants, thelper, testifylint, noctx CommandContext, testpackage conversions, t.Parallel() where safe, and complexity/dupl helper extraction - Record the change and follow-up items in TODO.md
48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
//nolint:testpackage // white-box test of unexported isValidSecretName
|
|
package vault
|
|
|
|
import "testing"
|
|
|
|
func TestIsValidSecretNameUppercase(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
tests := []struct {
|
|
name string
|
|
valid bool
|
|
}{
|
|
// Lowercase (existing behavior)
|
|
{"valid-name", true},
|
|
{"valid.name", true},
|
|
{"valid_name", true},
|
|
{"valid/path/name", true},
|
|
{"123valid", true},
|
|
|
|
// Uppercase (new behavior - issue #2)
|
|
{"Valid-Upper-Name", true},
|
|
{"2025-11-21-ber1app1-vaultik-test-bucket-AKI", true},
|
|
{"MixedCase/Path/Name", true},
|
|
{"ALLUPPERCASE", true},
|
|
{"ABC123", true},
|
|
|
|
// Still invalid
|
|
{"", false},
|
|
{"invalid name", false},
|
|
{"invalid@name", false},
|
|
{".dotstart", false},
|
|
{"/leading-slash", false},
|
|
{"trailing-slash/", false},
|
|
{"double//slash", false},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
result := isValidSecretName(tt.name)
|
|
if result != tt.valid {
|
|
t.Errorf("isValidSecretName(%q) = %v, want %v", tt.name, result, tt.valid)
|
|
}
|
|
})
|
|
}
|
|
}
|