github.com/deliveroo/gqlgen@v0.7.2/example/selection/selection_test.go (about)

     1  package selection
     2  
     3  import (
     4  	"net/http/httptest"
     5  	"testing"
     6  
     7  	"github.com/99designs/gqlgen/client"
     8  
     9  	"github.com/99designs/gqlgen/handler"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestSelection(t *testing.T) {
    14  	srv := httptest.NewServer(handler.GraphQL(NewExecutableSchema(Config{Resolvers: &Resolver{}})))
    15  	c := client.New(srv.URL)
    16  
    17  	query := `{
    18  			events {
    19  				selection
    20  				collected
    21  
    22  				... on Post {
    23  					message
    24  					sent
    25  				}
    26  
    27  				...LikeFragment
    28  			}
    29  		}
    30  		fragment LikeFragment on Like { reaction sent }
    31  		`
    32  
    33  	var resp struct {
    34  		Events []struct {
    35  			Selection []string
    36  			Collected []string
    37  
    38  			Message  string
    39  			Reaction string
    40  			Sent     string
    41  		}
    42  	}
    43  	c.MustPost(query, &resp)
    44  
    45  	require.Equal(t, []string{
    46  		"selection as selection",
    47  		"collected as collected",
    48  		"inline fragment on Post",
    49  		"named fragment LikeFragment on Like",
    50  	}, resp.Events[0].Selection)
    51  
    52  	require.Equal(t, []string{
    53  		"selection as selection",
    54  		"collected as collected",
    55  		"reaction as reaction",
    56  		"sent as sent",
    57  	}, resp.Events[0].Collected)
    58  }