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  }