a91156b134
Dump the top level variables in the config object. Any values with 'secret' or 'password' in the name are masked.
128 lines
2.9 KiB
Go
128 lines
2.9 KiB
Go
package common
|
|
|
|
import "testing"
|
|
|
|
func TestShouldDumpPublicValues(t *testing.T) {
|
|
type S struct {
|
|
MyString string
|
|
myString string
|
|
}
|
|
|
|
data := &S{
|
|
MyString: "value1",
|
|
}
|
|
|
|
dumps := make([]string, 0, 2)
|
|
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
|
|
|
|
if len(dumps) != 1 {
|
|
t.Fatalf("Expected len(dumps) to be 1, but got %d", len(dumps))
|
|
|
|
}
|
|
if dumps[0] != "MyString=value1" {
|
|
t.Errorf("Expected dumps[0] to be 'MyString=value1', but got %s", dumps[0])
|
|
}
|
|
}
|
|
|
|
func TestShouldOnlyDumpStrings(t *testing.T) {
|
|
type S struct {
|
|
MyString string
|
|
MyInt int
|
|
MyFloat32 float32
|
|
MyStringPointer *string
|
|
}
|
|
|
|
s := "value1"
|
|
data := &S{
|
|
MyString: s,
|
|
MyInt: 1,
|
|
MyFloat32: 2.0,
|
|
MyStringPointer: &s,
|
|
}
|
|
|
|
dumps := make([]string, 0, 4)
|
|
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
|
|
|
|
if len(dumps) != 1 {
|
|
t.Fatalf("Expected len(dumps) to be 1, but got %d", len(dumps))
|
|
|
|
}
|
|
if dumps[0] != "MyString=value1" {
|
|
t.Errorf("Expected dumps[0] to be 'MyString=value1', but got %s", dumps[0])
|
|
}
|
|
}
|
|
|
|
func TestDumpShouldMaskSensitiveFieldValues(t *testing.T) {
|
|
type S struct {
|
|
MyString string
|
|
MySecret string
|
|
MySecretValue string
|
|
MyPassword string
|
|
MyPasswordValue string
|
|
}
|
|
|
|
data := &S{
|
|
MyString: "my-string",
|
|
MySecret: "s3cr3t",
|
|
MySecretValue: "s3cr3t-value",
|
|
MyPassword: "p@ssw0rd",
|
|
MyPasswordValue: "p@ssw0rd-value",
|
|
}
|
|
|
|
dumps := make([]string, 0, 5)
|
|
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
|
|
|
|
if len(dumps) != 5 {
|
|
t.Fatalf("Expected len(dumps) to be 5, but got %d", len(dumps))
|
|
|
|
}
|
|
if dumps[0] != "MyString=my-string" {
|
|
t.Errorf("Expected dumps[0] to be 'MyString=my-string', but got %s", dumps[0])
|
|
}
|
|
if dumps[1] != "MySecret=******" {
|
|
t.Errorf("Expected dumps[1] to be 'MySecret=******', but got %s", dumps[1])
|
|
}
|
|
if dumps[2] != "MySecretValue=************" {
|
|
t.Errorf("Expected dumps[2] to be 'MySecret=************', but got %s", dumps[2])
|
|
}
|
|
if dumps[3] != "MyPassword=********" {
|
|
t.Errorf("Expected dumps[3] to be 'MyPassword=******** but got %s", dumps[3])
|
|
}
|
|
if dumps[4] != "MyPasswordValue=**************" {
|
|
t.Errorf("Expected dumps[4] to be 'MyPasswordValue=**************' but got %s", dumps[4])
|
|
}
|
|
}
|
|
|
|
func TestDumpConfigShouldDumpTopLevelValuesOnly(t *testing.T) {
|
|
type N struct {
|
|
NestedString string
|
|
}
|
|
|
|
type S struct {
|
|
Nested1 N
|
|
MyString string
|
|
Nested2 N
|
|
}
|
|
|
|
data := &S{
|
|
Nested1: N{
|
|
NestedString: "nested-string1",
|
|
},
|
|
MyString: "my-string",
|
|
Nested2: N{
|
|
NestedString: "nested-string2",
|
|
},
|
|
}
|
|
|
|
dumps := make([]string, 0, 1)
|
|
DumpConfig(data, func(s string) { dumps = append(dumps, s) })
|
|
|
|
if len(dumps) != 1 {
|
|
t.Fatalf("Expected len(dumps) to be 1, but got %d", len(dumps))
|
|
|
|
}
|
|
if dumps[0] != "MyString=my-string" {
|
|
t.Errorf("Expected dumps[0] to be 'MyString=my-string', but got %s", dumps[0])
|
|
}
|
|
}
|