github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/onetimetoken/coverter_test.go (about) 1 package onetimetoken_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/kyma-incubator/compass/components/director/internal/domain/onetimetoken" 8 "github.com/kyma-incubator/compass/components/director/internal/model" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 var ( 13 validConnectorURL = "http://connector.domain.local" 14 validLegacyConnectorURL = "http://legacy-connector.domain.local" 15 validLegacyConnectorURLWithQuery = "http://legacy-connector.domain.local?abc=1" 16 invalidURL = ":123:invalid-url" 17 token = "token123" 18 ) 19 20 func TestConverter_ToGraphQLForRuntime(t *testing.T) { 21 // GIVEN 22 tokenModel := model.OneTimeToken{Token: token, ConnectorURL: validConnectorURL} 23 conv := onetimetoken.NewConverter(validLegacyConnectorURL) 24 // WHEN 25 graphqlToken := conv.ToGraphQLForRuntime(tokenModel) 26 // THEN 27 assert.Equal(t, token, graphqlToken.Token) 28 assert.Equal(t, validConnectorURL, graphqlToken.ConnectorURL) 29 } 30 31 func TestConverter_ToGraphQLForApplication(t *testing.T) { 32 // GIVEN 33 tokenModel := model.OneTimeToken{Token: token, ConnectorURL: validConnectorURL} 34 conv := onetimetoken.NewConverter(validLegacyConnectorURL) 35 // WHEN 36 graphqlToken, err := conv.ToGraphQLForApplication(tokenModel) 37 // THEN 38 assert.NoError(t, err) 39 assert.Equal(t, token, graphqlToken.Token) 40 assert.Equal(t, validConnectorURL, graphqlToken.ConnectorURL) 41 assert.Equal(t, fmt.Sprintf("%s?token=%s", validLegacyConnectorURL, token), graphqlToken.LegacyConnectorURL) 42 } 43 44 func TestConverter_ToGraphQLForApplication_WithLegacyURLWithQueryParam(t *testing.T) { 45 // GIVEN 46 tokenModel := model.OneTimeToken{Token: token, ConnectorURL: validConnectorURL} 47 conv := onetimetoken.NewConverter(validLegacyConnectorURLWithQuery) 48 // WHEN 49 graphqlToken, err := conv.ToGraphQLForApplication(tokenModel) 50 // THEN 51 assert.NoError(t, err) 52 assert.Equal(t, token, graphqlToken.Token) 53 assert.Equal(t, validConnectorURL, graphqlToken.ConnectorURL) 54 assert.Equal(t, fmt.Sprintf("%s&token=%s", validLegacyConnectorURLWithQuery, token), graphqlToken.LegacyConnectorURL) 55 } 56 57 func TestConverter_ToGraphQLForApplication_ErrorWithInvalidLegacyURL(t *testing.T) { 58 // GIVEN 59 tokenModel := model.OneTimeToken{Token: token, ConnectorURL: validConnectorURL} 60 conv := onetimetoken.NewConverter(invalidURL) 61 // WHEN 62 _, err := conv.ToGraphQLForApplication(tokenModel) 63 // THEN 64 assert.EqualError(t, err, "while parsing string (:123:invalid-url) as the URL: parse \":123:invalid-url\": missing protocol scheme") 65 }