Skip to content

Commit adb00f0

Browse files
committed
Added some more tests around providing default values
1 parent d6dbf61 commit adb00f0

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package graphql
2+
3+
import graphql.schema.DataFetcher
4+
import spock.lang.Specification
5+
6+
import static graphql.ExecutionInput.newExecutionInput
7+
8+
class DefaultValuesTest extends Specification {
9+
10+
def "provided values override defaults"() {
11+
def sdl = """
12+
type Query {
13+
myField(deleted: Boolean = true) : String
14+
myField2(deleted: Boolean = true) : String
15+
}
16+
"""
17+
18+
def df = { env ->
19+
return "dataFetcherArg=" + env.getArgument("deleted")
20+
} as DataFetcher
21+
def graphQL = TestUtil.graphQL(sdl, [Query: [
22+
myField : df,
23+
myField2: df]]
24+
).build()
25+
26+
when:
27+
def ei = newExecutionInput('''
28+
query myQuery($deleted: Boolean = false) {
29+
myField(deleted : $deleted)
30+
}
31+
''').variables(["deleted": null]).build()
32+
def er = graphQL.execute(ei)
33+
34+
then:
35+
er.errors.isEmpty()
36+
er.data == [myField: "dataFetcherArg=null"]
37+
38+
when:
39+
ei = newExecutionInput('''
40+
query myQuery($deleted: Boolean = false) {
41+
myField(deleted : $deleted)
42+
}
43+
''').variables(["deleted": true]).build()
44+
er = graphQL.execute(ei)
45+
46+
then:
47+
er.errors.isEmpty()
48+
er.data == [myField: "dataFetcherArg=true"]
49+
50+
when:
51+
ei = newExecutionInput('''
52+
query myQuery($deleted: Boolean = false) {
53+
myField(deleted : $deleted)
54+
}
55+
''').variables(["NotProvided": "valueNotProvided"]).build()
56+
er = graphQL.execute(ei)
57+
58+
then:
59+
er.errors.isEmpty()
60+
er.data == [myField: "dataFetcherArg=false"]
61+
62+
when:
63+
ei = newExecutionInput('''
64+
query myQuery($deleted: Boolean = false) {
65+
myField
66+
myField2(deleted : $deleted)
67+
}
68+
''').variables(["NotProvided": "valueNotProvided"]).build()
69+
er = graphQL.execute(ei)
70+
71+
then:
72+
er.errors.isEmpty()
73+
er.data == [myField : "dataFetcherArg=true",
74+
myField2: "dataFetcherArg=false"]
75+
76+
when:
77+
ei = newExecutionInput('''
78+
query myQuery {
79+
myField(deleted :false)
80+
myField2
81+
}
82+
''').variables(["NotProvided": "valueNotProvided"]).build()
83+
er = graphQL.execute(ei)
84+
85+
then:
86+
er.errors.isEmpty()
87+
er.data == [myField : "dataFetcherArg=false",
88+
myField2: "dataFetcherArg=true"]
89+
}
90+
}

0 commit comments

Comments
 (0)