@@ -14,7 +14,8 @@ import (
1414func TestRequestOptions_GET_BasicQueryString (t * testing.T ) {
1515 queryString := "query=query RebelsShipsQuery { rebels { name } }"
1616 expected := & RequestOptions {
17- Query : "query RebelsShipsQuery { rebels { name } }" ,
17+ Query : "query RebelsShipsQuery { rebels { name } }" ,
18+ Variables : make (map [string ]interface {}),
1819 }
1920
2021 req , _ := http .NewRequest ("GET" , fmt .Sprintf ("/graphql?%v" , queryString ), nil )
@@ -69,7 +70,8 @@ func TestRequestOptions_GET_ContentTypeApplicationUrlEncoded(t *testing.T) {
6970func TestRequestOptions_POST_BasicQueryString_WithNoBody (t * testing.T ) {
7071 queryString := "query=query RebelsShipsQuery { rebels { name } }"
7172 expected := & RequestOptions {
72- Query : "query RebelsShipsQuery { rebels { name } }" ,
73+ Query : "query RebelsShipsQuery { rebels { name } }" ,
74+ Variables : make (map [string ]interface {}),
7375 }
7476
7577 req , _ := http .NewRequest ("POST" , fmt .Sprintf ("/graphql?%v" , queryString ), nil )
@@ -150,6 +152,27 @@ func TestRequestOptions_POST_ContentTypeApplicationJSON(t *testing.T) {
150152 t .Fatalf ("wrong result, graphql result diff: %v" , testutil .Diff (expected , result ))
151153 }
152154}
155+
156+ func TestRequestOptions_GET_WithVariablesAsObject (t * testing.T ) {
157+ variables := url .QueryEscape (`{ "a": 1, "b": "2" }` )
158+ query := url .QueryEscape ("query RebelsShipsQuery { rebels { name } }" )
159+ queryString := fmt .Sprintf ("query=%s&variables=%s" , query , variables )
160+ expected := & RequestOptions {
161+ Query : "query RebelsShipsQuery { rebels { name } }" ,
162+ Variables : map [string ]interface {}{
163+ "a" : float64 (1 ),
164+ "b" : "2" ,
165+ },
166+ }
167+
168+ req , _ := http .NewRequest ("GET" , fmt .Sprintf ("/graphql?%v" , queryString ), nil )
169+ result := NewRequestOptions (req )
170+
171+ if ! reflect .DeepEqual (result , expected ) {
172+ t .Fatalf ("wrong result, graphql result diff: %v" , testutil .Diff (expected , result ))
173+ }
174+ }
175+
153176func TestRequestOptions_POST_ContentTypeApplicationJSON_WithVariablesAsObject (t * testing.T ) {
154177 body := `
155178 {
@@ -223,7 +246,8 @@ func TestRequestOptions_POST_ContentTypeApplicationUrlEncoded(t *testing.T) {
223246 data .Add ("query" , "query RebelsShipsQuery { rebels { name } }" )
224247
225248 expected := & RequestOptions {
226- Query : "query RebelsShipsQuery { rebels { name } }" ,
249+ Query : "query RebelsShipsQuery { rebels { name } }" ,
250+ Variables : make (map [string ]interface {}),
227251 }
228252
229253 req , _ := http .NewRequest ("POST" , "/graphql" , bytes .NewBufferString (data .Encode ()))
@@ -263,7 +287,8 @@ func TestRequestOptions_POST_ContentTypeApplicationUrlEncoded_WithNilBody(t *tes
263287func TestRequestOptions_PUT_BasicQueryString (t * testing.T ) {
264288 queryString := "query=query RebelsShipsQuery { rebels { name } }"
265289 expected := & RequestOptions {
266- Query : "query RebelsShipsQuery { rebels { name } }" ,
290+ Query : "query RebelsShipsQuery { rebels { name } }" ,
291+ Variables : make (map [string ]interface {}),
267292 }
268293
269294 req , _ := http .NewRequest ("PUT" , fmt .Sprintf ("/graphql?%v" , queryString ), nil )
@@ -318,7 +343,8 @@ func TestRequestOptions_PUT_ContentTypeApplicationUrlEncoded(t *testing.T) {
318343func TestRequestOptions_DELETE_BasicQueryString (t * testing.T ) {
319344 queryString := "query=query RebelsShipsQuery { rebels { name } }"
320345 expected := & RequestOptions {
321- Query : "query RebelsShipsQuery { rebels { name } }" ,
346+ Query : "query RebelsShipsQuery { rebels { name } }" ,
347+ Variables : make (map [string ]interface {}),
322348 }
323349
324350 req , _ := http .NewRequest ("DELETE" , fmt .Sprintf ("/graphql?%v" , queryString ), nil )
0 commit comments