...
1- name: valid subscription
2 rule: SingleFieldSubscriptions
3 schema: 15
4 query: |2-
5
6 subscription ImportantEmails {
7 importantEmails
8 }
9
10 errors: []
11- name: valid subscription with fragment
12 rule: SingleFieldSubscriptions
13 schema: 15
14 query: |2-
15
16 subscription sub {
17 ...newMessageFields
18 }
19
20 fragment newMessageFields on SubscriptionRoot {
21 newMessage {
22 body
23 sender
24 }
25 }
26
27 errors: []
28- name: valid subscription with fragment and field
29 rule: SingleFieldSubscriptions
30 schema: 15
31 query: |2-
32
33 subscription sub {
34 newMessage {
35 body
36 }
37 ...newMessageFields
38 }
39
40 fragment newMessageFields on SubscriptionRoot {
41 newMessage {
42 body
43 sender
44 }
45 }
46
47 errors: []
48- name: fails with more than one root field
49 rule: SingleFieldSubscriptions
50 schema: 15
51 query: |2-
52
53 subscription ImportantEmails {
54 importantEmails
55 notImportantEmails
56 }
57
58 errors:
59 - message: Subscription "ImportantEmails" must select only one top level field.
60 locations:
61 - {line: 4, column: 9}
62- name: fails with more than one root field including introspection
63 rule: SingleFieldSubscriptions
64 schema: 15
65 query: |2-
66
67 subscription ImportantEmails {
68 importantEmails
69 __typename
70 }
71
72 errors:
73 - message: Subscription "ImportantEmails" must select only one top level field.
74 locations:
75 - {line: 4, column: 9}
76 - message: Subscription "ImportantEmails" must not select an introspection top level field.
77 locations:
78 - {line: 4, column: 9}
79- name: fails with more than one root field including aliased introspection via fragment
80 rule: SingleFieldSubscriptions
81 schema: 15
82 query: |2-
83
84 subscription ImportantEmails {
85 importantEmails
86 ...Introspection
87 }
88 fragment Introspection on SubscriptionRoot {
89 typename: __typename
90 }
91
92 errors:
93 - message: Subscription "ImportantEmails" must select only one top level field.
94 locations:
95 - {line: 7, column: 9}
96 - message: Subscription "ImportantEmails" must not select an introspection top level field.
97 locations:
98 - {line: 7, column: 9}
99- name: fails with many more than one root field
100 rule: SingleFieldSubscriptions
101 schema: 15
102 query: |2-
103
104 subscription ImportantEmails {
105 importantEmails
106 notImportantEmails
107 spamEmails
108 }
109
110 errors:
111 - message: Subscription "ImportantEmails" must select only one top level field.
112 locations:
113 - {line: 4, column: 9}
114 - {line: 5, column: 9}
115- name: fails with many more than one root field via fragments
116 rule: SingleFieldSubscriptions
117 schema: 15
118 query: |2-
119
120 subscription ImportantEmails {
121 importantEmails
122 ... {
123 more: moreImportantEmails
124 }
125 ...NotImportantEmails
126 }
127 fragment NotImportantEmails on SubscriptionRoot {
128 notImportantEmails
129 deleted: deletedEmails
130 ...SpamEmails
131 }
132 fragment SpamEmails on SubscriptionRoot {
133 spamEmails
134 }
135
136 errors:
137 - message: Subscription "ImportantEmails" must select only one top level field.
138 locations:
139 - {line: 5, column: 11}
140 - {line: 10, column: 9}
141 - {line: 11, column: 9}
142 - {line: 15, column: 9}
143- name: does not infinite loop on recursive fragments
144 rule: SingleFieldSubscriptions
145 schema: 15
146 query: |2-
147
148 subscription NoInfiniteLoop {
149 ...A
150 }
151 fragment A on SubscriptionRoot {
152 ...A
153 }
154
155 errors: []
156- name: fails with many more than one root field via fragments (anonymous)
157 rule: SingleFieldSubscriptions
158 schema: 15
159 query: |2-
160
161 subscription {
162 importantEmails
163 ... {
164 more: moreImportantEmails
165 ...NotImportantEmails
166 }
167 ...NotImportantEmails
168 }
169 fragment NotImportantEmails on SubscriptionRoot {
170 notImportantEmails
171 deleted: deletedEmails
172 ... {
173 ... {
174 archivedEmails
175 }
176 }
177 ...SpamEmails
178 }
179 fragment SpamEmails on SubscriptionRoot {
180 spamEmails
181 ...NonExistentFragment
182 }
183
184 errors:
185 - message: Anonymous Subscription must select only one top level field.
186 locations:
187 - {line: 5, column: 11}
188 - {line: 11, column: 9}
189 - {line: 12, column: 9}
190 - {line: 15, column: 13}
191 - {line: 21, column: 9}
192- name: fails with more than one root field in anonymous subscriptions
193 rule: SingleFieldSubscriptions
194 schema: 15
195 query: |2-
196
197 subscription {
198 importantEmails
199 notImportantEmails
200 }
201
202 errors:
203 - message: Anonymous Subscription must select only one top level field.
204 locations:
205 - {line: 4, column: 9}
206- name: fails with introspection field
207 rule: SingleFieldSubscriptions
208 schema: 15
209 query: |2-
210
211 subscription ImportantEmails {
212 __typename
213 }
214
215 errors:
216 - message: Subscription "ImportantEmails" must not select an introspection top level field.
217 locations:
218 - {line: 3, column: 9}
219- name: fails with introspection field in anonymous subscription
220 rule: SingleFieldSubscriptions
221 schema: 15
222 query: |2-
223
224 subscription {
225 __typename
226 }
227
228 errors:
229 - message: Anonymous Subscription must not select an introspection top level field.
230 locations:
231 - {line: 3, column: 9}
232- name: skips if not subscription type
233 rule: SingleFieldSubscriptions
234 schema: 16
235 query: |2-
236
237 subscription {
238 __typename
239 }
240
241 errors: []
View as plain text