@@ -85,10 +85,35 @@ func TestFieldSelectionHelpers(t *testing.T) {
85
85
expectSorted []string
86
86
hasChecks map [string ]bool
87
87
}{
88
- {name : "enabled order" , query : `query { customer { name id } }` , expectNames : []string {"name" , "id" }, expectSorted : []string {"id" , "name" }, hasChecks : map [string ]bool {"id" : true , "name" : true }},
89
- {name : "one field" , query : `query { customer { id } }` , expectNames : []string {"id" }, expectSorted : []string {"id" }, hasChecks : map [string ]bool {"id" : true , "name" : false }},
90
- {name : "nested paths" , query : `query { customer { items { id name category { id } } id } }` , expectNames : []string {"items" , "items.id" , "items.name" , "items.category" , "items.category.id" , "id" }, expectSorted : []string {"id" , "items" , "items.category" , "items.category.id" , "items.id" , "items.name" }, hasChecks : map [string ]bool {"items" : true , "items.id" : true , "items.name" : true , "items.category" : true , "items.category.id" : true , "id" : true }},
91
- {name : "disabled" , schemaOpts : []graphql.SchemaOpt {graphql .DisableFieldSelections ()}, query : `query { customer { name id } }` , expectNames : []string {}, expectSorted : []string {}, hasChecks : map [string ]bool {"id" : false , "name" : false }},
88
+ {
89
+ name : "enabled order" ,
90
+ query : `query { customer { name id } }` ,
91
+ expectNames : []string {"name" , "id" },
92
+ expectSorted : []string {"id" , "name" },
93
+ hasChecks : map [string ]bool {"id" : true , "name" : true },
94
+ },
95
+ {
96
+ name : "one field" ,
97
+ query : `query { customer { id } }` ,
98
+ expectNames : []string {"id" },
99
+ expectSorted : []string {"id" },
100
+ hasChecks : map [string ]bool {"id" : true , "name" : false },
101
+ },
102
+ {
103
+ name : "nested paths" ,
104
+ query : `query { customer { items { id name category { id } } id } }` ,
105
+ expectNames : []string {"items" , "items.id" , "items.name" , "items.category" , "items.category.id" , "id" },
106
+ expectSorted : []string {"id" , "items" , "items.category" , "items.category.id" , "items.id" , "items.name" },
107
+ hasChecks : map [string ]bool {"items" : true , "items.id" : true , "items.name" : true , "items.category" : true , "items.category.id" : true , "id" : true },
108
+ },
109
+ {
110
+ name : "disabled" ,
111
+ schemaOpts : []graphql.SchemaOpt {graphql .DisableFieldSelections ()},
112
+ query : `query { customer { name id } }` ,
113
+ expectNames : []string {},
114
+ expectSorted : []string {},
115
+ hasChecks : map [string ]bool {"id" : false , "name" : false },
116
+ },
92
117
}
93
118
for _ , tt := range tests {
94
119
t .Run (tt .name , func (t * testing.T ) {
@@ -108,10 +133,30 @@ func TestSelectedFieldNames_FragmentsAliasesMeta(t *testing.T) {
108
133
expectNames []string
109
134
hasChecks map [string ]bool
110
135
}{
111
- {"alias ignored" , `query { customer { idAlias: id name } }` , []string {"id" , "name" }, map [string ]bool {"id" : true , "idAlias" : false , "name" : true }},
112
- {"fragment spread" , `fragment CFields on Customer { id name } query { customer { ...CFields } }` , []string {"id" , "name" }, map [string ]bool {"id" : true , "name" : true }},
113
- {"inline fragment" , `query { customer { id ... on Customer { id name } } }` , []string {"id" , "name" }, map [string ]bool {"id" : true , "name" : true }},
114
- {"meta excluded" , `query { customer { id __typename name } }` , []string {"id" , "name" }, map [string ]bool {"id" : true , "name" : true , "__typename" : false }},
136
+ {
137
+ name : "alias ignored" ,
138
+ query : `query { customer { idAlias: id name } }` ,
139
+ expectNames : []string {"id" , "name" },
140
+ hasChecks : map [string ]bool {"id" : true , "idAlias" : false , "name" : true },
141
+ },
142
+ {
143
+ name : "fragment spread" ,
144
+ query : `fragment CFields on Customer { id name } query { customer { ...CFields } }` ,
145
+ expectNames : []string {"id" , "name" },
146
+ hasChecks : map [string ]bool {"id" : true , "name" : true },
147
+ },
148
+ {
149
+ name : "inline fragment" ,
150
+ query : `query { customer { id ... on Customer { id name } } }` ,
151
+ expectNames : []string {"id" , "name" },
152
+ hasChecks : map [string ]bool {"id" : true , "name" : true },
153
+ },
154
+ {
155
+ name : "meta excluded" ,
156
+ query : `query { customer { id __typename name } }` ,
157
+ expectNames : []string {"id" , "name" },
158
+ hasChecks : map [string ]bool {"id" : true , "name" : true , "__typename" : false },
159
+ },
115
160
}
116
161
for _ , tt := range tests {
117
162
t .Run (tt .name , func (t * testing.T ) {
0 commit comments