...
1 package introspection
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/require"
7 "github.com/vektah/gqlparser/v2/ast"
8 )
9
10 func TestSchema(t *testing.T) {
11 query := &ast.Definition{
12 Name: "Query",
13 Kind: ast.Object,
14 }
15
16 mutation := &ast.Definition{
17 Name: "Mutation",
18 Kind: ast.Object,
19 }
20
21 subscription := &ast.Definition{
22 Name: "Subscription",
23 Kind: ast.Object,
24 }
25
26 directive := &ast.Definition{
27 Name: "__Directive",
28 Kind: ast.Object,
29 }
30
31 schema := &Schema{
32 schema: &ast.Schema{
33 Query: query,
34 Mutation: mutation,
35 Subscription: subscription,
36 Types: map[string]*ast.Definition{
37 "Query": query,
38 "Mutation": mutation,
39 "__Directive": directive,
40 },
41 Description: "test description",
42 },
43 }
44
45 t.Run("description", func(t *testing.T) {
46 require.EqualValues(t, "test description", *schema.Description())
47 })
48
49 t.Run("query type", func(t *testing.T) {
50 require.Equal(t, "Query", *schema.QueryType().Name())
51 })
52
53 t.Run("mutation type", func(t *testing.T) {
54 require.Equal(t, "Mutation", *schema.MutationType().Name())
55 })
56
57 t.Run("subscription type", func(t *testing.T) {
58 require.Equal(t, "Subscription", *schema.SubscriptionType().Name())
59 })
60
61 t.Run("types", func(t *testing.T) {
62 types := schema.Types()
63 require.Len(t, types, 3)
64 require.Equal(t, "Mutation", *types[0].Name())
65 require.Equal(t, "Query", *types[1].Name())
66 require.Equal(t, "__Directive", *types[2].Name())
67 })
68 }
69
View as plain text