TestMaskSecretKeys: use subtests

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 32d70c7e21631224674cd60021d3ec908c2d888c)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit ebb542b3f8)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2019-07-02 13:29:24 +02:00
parent 638cf86cbe
commit 685f13f3fd
No known key found for this signature in database
GPG key ID: 76698F39D527CE8C

View file

@ -9,26 +9,31 @@ import (
func TestMaskSecretKeys(t *testing.T) { func TestMaskSecretKeys(t *testing.T) {
tests := []struct { tests := []struct {
doc string
path string path string
input map[string]interface{} input map[string]interface{}
expected map[string]interface{} expected map[string]interface{}
}{ }{
{ {
doc: "secret create with API version",
path: "/v1.30/secrets/create", path: "/v1.30/secrets/create",
input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}}, input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}},
expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}}, expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}},
}, },
{ {
doc: "secret create with API version and trailing slashes",
path: "/v1.30/secrets/create//", path: "/v1.30/secrets/create//",
input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}}, input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}},
expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}}, expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}},
}, },
{ {
doc: "secret create with query param",
path: "/secrets/create?key=val", path: "/secrets/create?key=val",
input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}}, input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}},
expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}}, expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}},
}, },
{ {
doc: "other paths with API version",
path: "/v1.30/some/other/path", path: "/v1.30/some/other/path",
input: map[string]interface{}{ input: map[string]interface{}{
"password": "pass", "password": "pass",
@ -60,6 +65,7 @@ func TestMaskSecretKeys(t *testing.T) {
}, },
}, },
{ {
doc: "other paths with API version case insensitive",
path: "/v1.30/some/other/path", path: "/v1.30/some/other/path",
input: map[string]interface{}{ input: map[string]interface{}{
"PASSWORD": "pass", "PASSWORD": "pass",
@ -77,7 +83,9 @@ func TestMaskSecretKeys(t *testing.T) {
} }
for _, testcase := range tests { for _, testcase := range tests {
maskSecretKeys(testcase.input, testcase.path) t.Run(testcase.doc, func(t *testing.T) {
assert.Check(t, is.DeepEqual(testcase.expected, testcase.input)) maskSecretKeys(testcase.input, testcase.path)
assert.Check(t, is.DeepEqual(testcase.expected, testcase.input))
})
} }
} }