github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/viewer/resolver_test.go (about) 1 package viewer_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/kyma-incubator/compass/components/director/pkg/apperrors" 8 9 "github.com/google/uuid" 10 "github.com/kyma-incubator/compass/components/director/internal/domain/viewer" 11 "github.com/kyma-incubator/compass/components/director/pkg/consumer" 12 "github.com/kyma-incubator/compass/components/director/pkg/graphql" 13 "github.com/stretchr/testify/assert" 14 "github.com/stretchr/testify/require" 15 ) 16 17 func TestResolver_Viewer(t *testing.T) { 18 cons := consumer.Consumer{ 19 ConsumerID: uuid.New().String(), 20 ConsumerType: consumer.Application, 21 } 22 expectedViewer := graphql.Viewer{ 23 ID: cons.ConsumerID, 24 Type: graphql.ViewerTypeApplication, 25 } 26 27 t.Run("Success", func(t *testing.T) { 28 // GIVEN 29 ctx := context.TODO() 30 ctx = consumer.SaveToContext(ctx, cons) 31 resolver := viewer.NewViewerResolver() 32 33 // WHEN 34 vwr, err := resolver.Viewer(ctx) 35 // THEN 36 require.NoError(t, err) 37 require.NotNil(t, vwr) 38 assert.Equal(t, expectedViewer, *vwr) 39 }) 40 41 t.Run("Error while converting", func(t *testing.T) { 42 // GIVEN 43 ctx := context.TODO() 44 invalidConsumer := consumer.Consumer{ 45 ConsumerID: uuid.New().String(), 46 ConsumerType: "", 47 } 48 ctx = consumer.SaveToContext(ctx, invalidConsumer) 49 resolver := viewer.NewViewerResolver() 50 // WHEN 51 _, err := resolver.Viewer(ctx) 52 // THEN 53 require.Error(t, err) 54 assert.EqualError(t, err, apperrors.NewInternalError("viewer does not exist").Error()) 55 }) 56 57 t.Run("No consumer in ctx", func(t *testing.T) { 58 // GIVEN 59 ctx := context.TODO() 60 resolver := viewer.NewViewerResolver() 61 62 // WHEN 63 _, err := resolver.Viewer(ctx) 64 65 // THEN 66 require.Error(t, err) 67 assert.EqualError(t, err, "while getting viewer from context: Internal Server Error: cannot read consumer from context") 68 }) 69 }