github.com/jwhonce/docker@v0.6.7-0.20190327063223-da823cf3a5a3/api/server/middleware/debug_test.go (about) 1 package middleware // import "github.com/docker/docker/api/server/middleware" 2 3 import ( 4 "testing" 5 6 "gotest.tools/assert" 7 is "gotest.tools/assert/cmp" 8 ) 9 10 func TestMaskSecretKeys(t *testing.T) { 11 tests := []struct { 12 path string 13 input map[string]interface{} 14 expected map[string]interface{} 15 }{ 16 { 17 path: "/v1.30/secrets/create", 18 input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}}, 19 expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}}, 20 }, 21 { 22 path: "/v1.30/secrets/create//", 23 input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}}, 24 expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}}, 25 }, 26 27 { 28 path: "/secrets/create?key=val", 29 input: map[string]interface{}{"Data": "foo", "Name": "name", "Labels": map[string]interface{}{}}, 30 expected: map[string]interface{}{"Data": "*****", "Name": "name", "Labels": map[string]interface{}{}}, 31 }, 32 { 33 path: "/v1.30/some/other/path", 34 input: map[string]interface{}{ 35 "password": "pass", 36 "other": map[string]interface{}{ 37 "secret": "secret", 38 "jointoken": "jointoken", 39 "unlockkey": "unlockkey", 40 "signingcakey": "signingcakey", 41 }, 42 }, 43 expected: map[string]interface{}{ 44 "password": "*****", 45 "other": map[string]interface{}{ 46 "secret": "*****", 47 "jointoken": "*****", 48 "unlockkey": "*****", 49 "signingcakey": "*****", 50 }, 51 }, 52 }, 53 } 54 55 for _, testcase := range tests { 56 maskSecretKeys(testcase.input, testcase.path) 57 assert.Check(t, is.DeepEqual(testcase.expected, testcase.input)) 58 } 59 }