github.com/geneva/gqlgen@v0.17.7-0.20230801155730-7b9317164836/codegen/testserver/singlefile/ptr_to_any_test.go (about)

     1  package singlefile
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/geneva/gqlgen/client"
     8  	"github.com/geneva/gqlgen/graphql/handler"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestPtrToAny(t *testing.T) {
    13  	resolvers := &Stub{}
    14  
    15  	c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers})))
    16  
    17  	var a any = `{"some":"thing"}`
    18  	resolvers.QueryResolver.PtrToAnyContainer = func(ctx context.Context) (wrappedStruct *PtrToAnyContainer, e error) {
    19  		ptrToAnyContainer := PtrToAnyContainer{
    20  			PtrToAny: &a,
    21  		}
    22  		return &ptrToAnyContainer, nil
    23  	}
    24  
    25  	t.Run("binding to pointer to any", func(t *testing.T) {
    26  		var resp struct {
    27  			PtrToAnyContainer struct {
    28  				Binding *any
    29  			}
    30  		}
    31  
    32  		err := c.Post(`query { ptrToAnyContainer { binding }}`, &resp)
    33  		require.NoError(t, err)
    34  
    35  		require.Equal(t, &a, resp.PtrToAnyContainer.Binding)
    36  	})
    37  }