@@ -148,6 +148,19 @@ class GraphQLServletSpec extends Specification {
148
148
149
149
}
150
150
151
+ def " query over HTTP GET with empty non-null operationName returns data" () {
152
+ when :
153
+ response = new MockHttpServletResponse ()
154
+ request. addParameter(' query' , ' query echo{ echo: echo(arg:"test") }' )
155
+ request. addParameter(' operationName' , ' ' )
156
+ servlet. doGet(request, response)
157
+ then :
158
+ response. getStatus() == STATUS_OK
159
+ response. getContentType() == CONTENT_TYPE_JSON_UTF8
160
+ getResponseContent(). data. echo == " test"
161
+
162
+ }
163
+
151
164
def " mutation over HTTP GET returns errors" () {
152
165
setup :
153
166
request. addParameter(' query' , ' mutation { echo(arg:"test") }' )
@@ -217,6 +230,22 @@ class GraphQLServletSpec extends Specification {
217
230
getResponseContent(). data. echoTwo == " test-two"
218
231
}
219
232
233
+ def " query over HTTP POST body with empty non-null operationName returns data" () {
234
+ setup :
235
+ request. setContent(mapper. writeValueAsBytes([
236
+ query : ' query echo{ echo: echo(arg:"test") }' ,
237
+ operationName : ' '
238
+ ]))
239
+
240
+ when :
241
+ servlet. doPost(request, response)
242
+
243
+ then :
244
+ response. getStatus() == STATUS_OK
245
+ response. getContentType() == CONTENT_TYPE_JSON_UTF8
246
+ getResponseContent(). data. echo == " test"
247
+ }
248
+
220
249
def " query over HTTP POST multipart named 'graphql' returns data" () {
221
250
setup :
222
251
request. setContentType(" multipart/form-data, boundary=test" )
@@ -271,6 +300,24 @@ class GraphQLServletSpec extends Specification {
271
300
getResponseContent(). data. echoTwo == " test-two"
272
301
}
273
302
303
+ def " query over HTTP POST multipart named 'query' with empty non-null operationName returns data" () {
304
+ setup :
305
+ request. setContentType(" multipart/form-data, boundary=test" )
306
+ request. setMethod(" POST" )
307
+ request. setContent(new TestMultipartContentBuilder ()
308
+ .addPart(' query' , ' query echo{ echo: echo(arg:"test") }' )
309
+ .addPart(' operationName' , ' ' )
310
+ .build())
311
+
312
+ when :
313
+ servlet. doPost(request, response)
314
+
315
+ then :
316
+ response. getStatus() == STATUS_OK
317
+ response. getContentType() == CONTENT_TYPE_JSON_UTF8
318
+ getResponseContent(). data. echo == " test"
319
+ }
320
+
274
321
def " query over HTTP POST multipart named 'query' with variables returns data" () {
275
322
setup :
276
323
request. setContentType(" multipart/form-data, boundary=test" )
0 commit comments