...

Source file src/github.com/vektah/gqlparser/ast/document_test.go

Documentation: github.com/vektah/gqlparser/ast

     1  package ast_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	. "github.com/vektah/gqlparser/ast"
    10  	"github.com/vektah/gqlparser/parser"
    11  )
    12  
    13  func TestQueryDocMethods(t *testing.T) {
    14  	doc, err := parser.ParseQuery(&Source{Input: `
    15  		query Bob { foo { ...Frag } }
    16  		fragment Frag on Foo {
    17  			bar
    18  		}
    19  	`})
    20  
    21  	require.Nil(t, err)
    22  	t.Run("GetOperation", func(t *testing.T) {
    23  		require.EqualValues(t, "Bob", doc.Operations.ForName("Bob").Name)
    24  		require.Nil(t, doc.Operations.ForName("Alice"))
    25  	})
    26  
    27  	t.Run("GetFragment", func(t *testing.T) {
    28  		require.EqualValues(t, "Frag", doc.Fragments.ForName("Frag").Name)
    29  		require.Nil(t, doc.Fragments.ForName("Alice"))
    30  	})
    31  }
    32  
    33  func TestNamedTypeCompatability(t *testing.T) {
    34  	assert.True(t, NamedType("A", nil).IsCompatible(NamedType("A", nil)))
    35  	assert.False(t, NamedType("A", nil).IsCompatible(NamedType("B", nil)))
    36  
    37  	assert.True(t, ListType(NamedType("A", nil), nil).IsCompatible(ListType(NamedType("A", nil), nil)))
    38  	assert.False(t, ListType(NamedType("A", nil), nil).IsCompatible(ListType(NamedType("B", nil), nil)))
    39  	assert.False(t, ListType(NamedType("A", nil), nil).IsCompatible(ListType(NamedType("B", nil), nil)))
    40  
    41  	assert.True(t, ListType(NamedType("A", nil), nil).IsCompatible(ListType(NamedType("A", nil), nil)))
    42  	assert.False(t, ListType(NamedType("A", nil), nil).IsCompatible(ListType(NamedType("B", nil), nil)))
    43  	assert.False(t, ListType(NamedType("A", nil), nil).IsCompatible(ListType(NamedType("B", nil), nil)))
    44  
    45  	assert.True(t, NonNullNamedType("A", nil).IsCompatible(NamedType("A", nil)))
    46  	assert.False(t, NamedType("A", nil).IsCompatible(NonNullNamedType("A", nil)))
    47  
    48  	assert.True(t, NonNullListType(NamedType("String", nil), nil).IsCompatible(NonNullListType(NamedType("String", nil), nil)))
    49  	assert.True(t, NonNullListType(NamedType("String", nil), nil).IsCompatible(ListType(NamedType("String", nil), nil)))
    50  	assert.False(t, ListType(NamedType("String", nil), nil).IsCompatible(NonNullListType(NamedType("String", nil), nil)))
    51  
    52  	assert.True(t, ListType(NonNullNamedType("String", nil), nil).IsCompatible(ListType(NamedType("String", nil), nil)))
    53  	assert.False(t, ListType(NamedType("String", nil), nil).IsCompatible(ListType(NonNullNamedType("String", nil), nil)))
    54  }
    55  

View as plain text