gopkg.in/raphael/goa.v1@v1.4.2/client/client_test.go (about)

     1  package client_test
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/goadesign/goa/client"
     7  
     8  	. "github.com/onsi/ginkgo"
     9  	. "github.com/onsi/gomega"
    10  )
    11  
    12  var _ = Describe("client", func() {
    13  	Context("with background context", func() {
    14  		var ctx context.Context
    15  
    16  		BeforeEach(func() {
    17  			ctx = context.Background()
    18  		})
    19  
    20  		Context("ContextRequestID", func() {
    21  			It("should have empty request ID", func() {
    22  				Expect(client.ContextRequestID(ctx)).To(BeEmpty())
    23  			})
    24  		})
    25  
    26  		Context("ContextWithRequestID", func() {
    27  			It("should generate a new request ID", func() {
    28  				newCtx, reqID := client.ContextWithRequestID(ctx)
    29  				Expect(reqID).ToNot(BeEmpty())
    30  				Expect(client.ContextRequestID(newCtx)).To(Equal(reqID))
    31  			})
    32  		})
    33  
    34  		Context("SetContextRequestID", func() {
    35  			It("should set a custom request ID", func() {
    36  				const customID = "foo"
    37  				newCtx := client.SetContextRequestID(ctx, customID)
    38  				Expect(newCtx).ToNot(Equal(ctx))
    39  				Expect(client.ContextRequestID(newCtx)).To(Equal(customID))
    40  
    41  				// request ID should not need to be generated again. the same context should be returned instead.
    42  				newCtx2, reqID := client.ContextWithRequestID(newCtx)
    43  				Expect(newCtx).To(Equal(newCtx2))
    44  				Expect(reqID).To(Equal(customID))
    45  			})
    46  		})
    47  	})
    48  })