Initial import

This commit is contained in:
2025-09-04 14:14:02 +02:00
commit ac609a54c2
19 changed files with 1228 additions and 0 deletions

65
provider_test.go Normal file
View File

@@ -0,0 +1,65 @@
package secret
import (
"bytes"
"errors"
"fmt"
"testing"
)
type testProviderCase struct {
Name string
Key string
Err error
Test func([]byte) error
}
func testProvider(t *testing.T, p Provider, tests ...testProviderCase) {
t.Helper()
for _, test := range tests {
if test.Name == "" {
test.Name = test.Key
}
t.Run(test.Name, func(it *testing.T) {
v, err := p.GetSecret(test.Key)
if err != nil {
if test.Err == nil {
it.Fatalf("unexpected error %q in %T (%#+v)", err, p, p)
return
} else if !errors.Is(err, test.Err) {
it.Fatalf("unexpected error %q, expected error %q", err, test.Err)
return
}
return
} else if test.Err != nil {
it.Fatalf("expected error %q", test.Err)
return
}
if err := test.Test(v); err != nil {
it.Error(err)
}
})
}
}
func testNotEmpty(v []byte) error {
if len(v) > 0 {
return nil
}
return fmt.Errorf("expected empty, got %q", v)
}
func testEqual(a []byte) func([]byte) error {
return func(b []byte) error {
if bytes.Equal(a, b) {
return nil
}
return fmt.Errorf("expected %q, got %q", a, b)
}
}
func testEqualString(a string) func([]byte) error {
return testEqual([]byte(a))
}