...
1 package followschema
2
3 import (
4 "context"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8
9 "github.com/99designs/gqlgen/client"
10 "github.com/99designs/gqlgen/graphql/handler"
11 )
12
13 func assertDefaults(t *testing.T, ret *DefaultParametersMirror) {
14 require.NotNil(t, ret)
15 require.NotNil(t, ret.FalsyBoolean)
16 require.Equal(t, *ret.FalsyBoolean, false)
17 require.NotNil(t, ret.TruthyBoolean)
18 require.Equal(t, *ret.TruthyBoolean, true)
19 }
20
21 func TestDefaults(t *testing.T) {
22 resolvers := &Stub{}
23 srv := handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers}))
24 c := client.New(srv)
25
26 t.Run("default field parameters", func(t *testing.T) {
27 resolvers.QueryResolver.DefaultParameters = func(
28 ctx context.Context,
29 falsyBoolean, truthyBoolean *bool,
30 ) (*DefaultParametersMirror, error) {
31 return &DefaultParametersMirror{
32 FalsyBoolean: falsyBoolean,
33 TruthyBoolean: truthyBoolean,
34 }, nil
35 }
36
37 var resp struct{ DefaultParameters *DefaultParametersMirror }
38 err := c.Post(`query {
39 defaultParameters {
40 falsyBoolean
41 truthyBoolean
42 }
43 }`, &resp)
44 require.NoError(t, err)
45 assertDefaults(t, resp.DefaultParameters)
46 })
47
48 t.Run("default input fields", func(t *testing.T) {
49 resolvers.MutationResolver.DefaultInput = func(
50 ctx context.Context,
51 input DefaultInput,
52 ) (*DefaultParametersMirror, error) {
53 return &DefaultParametersMirror{
54 FalsyBoolean: input.FalsyBoolean,
55 TruthyBoolean: input.TruthyBoolean,
56 }, nil
57 }
58
59 var resp struct{ DefaultInput *DefaultParametersMirror }
60 err := c.Post(`mutation {
61 defaultInput(input: {}) {
62 falsyBoolean
63 truthyBoolean
64 }
65 }`, &resp)
66 require.NoError(t, err)
67 assertDefaults(t, resp.DefaultInput)
68 })
69 }
70
View as plain text