github.com/jenkins-x/jx/v2@v2.1.155/pkg/kube/log_masker_test.go (about) 1 // +build unit 2 3 package kube_test 4 5 import ( 6 "bytes" 7 "fmt" 8 "strings" 9 "testing" 10 11 "github.com/jenkins-x/jx/v2/pkg/kube" 12 "github.com/jenkins-x/jx/v2/pkg/testkube" 13 "github.com/stretchr/testify/assert" 14 "k8s.io/apimachinery/pkg/runtime" 15 "k8s.io/client-go/kubernetes/fake" 16 ) 17 18 func TestLogMasker(t *testing.T) { 19 k8sObjects := []runtime.Object{ 20 testkube.CreateFakeGitSecret(), 21 } 22 ns := "jx" 23 client := fake.NewSimpleClientset(k8sObjects...) 24 25 hideValues := []string{ 26 "fakeuser", 27 "fakepwd", 28 } 29 30 var buffer bytes.Buffer 31 32 for i, hideValue := range hideValues { 33 buffer.WriteString(fmt.Sprintf("%d: hide: %s\n", i+1, hideValue)) 34 } 35 text := buffer.String() 36 37 logMasker := &kube.LogMasker{} 38 err := logMasker.LoadSecrets(client, ns) 39 assert.NoError(t, err, "loading secrets in namespace %s", ns) 40 41 actual := logMasker.MaskLog(text) 42 43 t.Logf("created masked text: %s\n", actual) 44 45 for _, hideValue := range hideValues { 46 index := strings.Index(actual, hideValue) 47 assert.True(t, index < 0, "found text %s at index %d in masked log: %s", hideValue, index, actual) 48 } 49 } 50 51 func TestLogMaskerFromMap(t *testing.T) { 52 hideValues := []string{ 53 "fakeuser", 54 "fakepwd", 55 } 56 57 m := map[string]interface{}{ 58 "cheese": map[string]interface{}{ 59 "userName": hideValues[0], 60 "password": hideValues[1], 61 }, 62 } 63 64 var buffer bytes.Buffer 65 for i, hideValue := range hideValues { 66 buffer.WriteString(fmt.Sprintf("%d: hide: %s\n", i+1, hideValue)) 67 } 68 text := buffer.String() 69 70 logMasker := kube.NewLogMaskerFromMap(m) 71 actual := logMasker.MaskLog(text) 72 73 t.Logf("created masked text: %s\n", actual) 74 75 for _, hideValue := range hideValues { 76 index := strings.Index(actual, hideValue) 77 assert.True(t, index < 0, "found text %s at index %d in masked log: %s", hideValue, index, actual) 78 } 79 }