...
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 type FieldsOrderPayloadResults struct {
14 OverrideValueViaInput struct {
15 FirstFieldValue *string `json:"firstFieldValue"`
16 } `json:"overrideValueViaInput"`
17 }
18
19 func TestFieldsOrder(t *testing.T) {
20 resolvers := &Stub{}
21
22 c := client.New(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolvers})))
23 resolvers.FieldsOrderInputResolver.OverrideFirstField = func(ctx context.Context, in *FieldsOrderInput, data *string) error {
24 if data != nil {
25 in.FirstField = data
26 }
27 return nil
28 }
29 resolvers.MutationResolver.OverrideValueViaInput = func(ctx context.Context, in FieldsOrderInput) (ret *FieldsOrderPayload, err error) {
30 ret = &FieldsOrderPayload{
31 FirstFieldValue: in.FirstField,
32 }
33 return ret, nil
34 }
35
36 t.Run("firstField", func(t *testing.T) {
37 var resp FieldsOrderPayloadResults
38
39 err := c.Post(`mutation {
40 overrideValueViaInput(input: { firstField:"newName" }) {
41 firstFieldValue
42 }
43 }`, &resp)
44 require.NoError(t, err)
45
46 require.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue)
47 require.Equal(t, "newName", *resp.OverrideValueViaInput.FirstFieldValue)
48 })
49
50 t.Run("firstField/override", func(t *testing.T) {
51 var resp FieldsOrderPayloadResults
52
53 err := c.Post(`mutation { overrideValueViaInput(input: {
54 firstField:"newName",
55 overrideFirstField: "override"
56 }) {
57 firstFieldValue
58 }
59 }`, &resp)
60 require.NoError(t, err)
61
62 require.NotNil(t, resp.OverrideValueViaInput.FirstFieldValue)
63 require.NotEqual(t, "newName", *resp.OverrideValueViaInput.FirstFieldValue)
64 require.Equal(t, "override", *resp.OverrideValueViaInput.FirstFieldValue)
65 })
66 }
67
View as plain text