github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/pkg/consumer/context_test.go (about)

     1  package consumer_test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/kyma-incubator/compass/components/director/pkg/consumer"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestConsumerContext(t *testing.T) {
    14  	t.Run("load returns consumer previously saved in context", func(t *testing.T) {
    15  		// GIVEN
    16  		id := "223da628-3756-4bef-ab48-fb0061a4eae4"
    17  		givenConsumer := consumer.Consumer{ConsumerID: id, ConsumerType: consumer.Runtime}
    18  		ctx := consumer.SaveToContext(context.TODO(), givenConsumer)
    19  
    20  		// WHEN
    21  		actual, err := consumer.LoadFromContext(ctx)
    22  
    23  		// THEN
    24  		require.NoError(t, err)
    25  		assert.Equal(t, givenConsumer, actual)
    26  	})
    27  	t.Run("load returns error if consumer not found in ctx", func(t *testing.T) {
    28  		// WHEN
    29  		_, err := consumer.LoadFromContext(context.TODO())
    30  		// THEN
    31  		assert.Equal(t, consumer.NoConsumerError, err)
    32  	})
    33  
    34  	t.Run("cannot override consumer accidentally", func(t *testing.T) {
    35  		// GIVEN
    36  		id := "223da628-3756-4bef-ab48-fb0061a4eae4"
    37  		givenConsumer := consumer.Consumer{ConsumerID: id, ConsumerType: consumer.Runtime}
    38  		ctx := consumer.SaveToContext(context.TODO(), givenConsumer)
    39  		ctx = context.WithValue(ctx, 0, "some random value")
    40  
    41  		// WHEN
    42  		actual, err := consumer.LoadFromContext(ctx)
    43  
    44  		// THEN
    45  		require.NoError(t, err)
    46  		assert.Equal(t, givenConsumer, actual)
    47  	})
    48  }