github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/client/client_test.go (about) 1 package client_test 2 3 import ( 4 "context" 5 "fmt" 6 "testing" 7 8 "github.com/kyma-incubator/compass/components/director/internal/domain/client" 9 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestLoadFromContext(t *testing.T) { 15 value := "foo" 16 17 testCases := []struct { 18 Name string 19 Context context.Context 20 21 ExpectedResult string 22 ExpectedErrMessage string 23 }{ 24 { 25 Name: "Success", 26 Context: context.WithValue(context.TODO(), client.ClientUserContextKey, value), 27 ExpectedResult: value, 28 ExpectedErrMessage: "", 29 }, 30 { 31 Name: "Error", 32 Context: context.TODO(), 33 ExpectedResult: "", 34 ExpectedErrMessage: "cannot read client_user from context", 35 }, 36 } 37 38 for i, testCase := range testCases { 39 t.Run(fmt.Sprintf("%d: %s", i, testCase.Name), func(t *testing.T) { 40 // WHEN 41 result, err := client.LoadFromContext(testCase.Context) 42 43 // then 44 if testCase.ExpectedErrMessage != "" { 45 require.Equal(t, testCase.ExpectedErrMessage, err.Error()) 46 return 47 } 48 49 assert.Equal(t, testCase.ExpectedResult, result) 50 }) 51 } 52 } 53 54 func TestSaveToLoadFromContext(t *testing.T) { 55 // GIVEN 56 value := "foo" 57 ctx := context.TODO() 58 59 // WHEN 60 result := client.SaveToContext(ctx, value) 61 62 // then 63 assert.Equal(t, value, result.Value(client.ClientUserContextKey)) 64 }