@@ -21,9 +21,10 @@ class ProvidedNonNullArgumentsTest extends Specification {
2121 ValidationErrorCollector errorCollector = new ValidationErrorCollector ()
2222 ProvidedNonNullArguments providedNonNullArguments = new ProvidedNonNullArguments (validationContext, errorCollector)
2323
24- def " not provided field argument" () {
24+ def " not provided and not defaulted non null field argument" () {
2525 given :
26- def fieldArg = GraphQLArgument . newArgument(). name(" arg" ). type(GraphQLNonNull . nonNull(GraphQLString ))
26+ def fieldArg = GraphQLArgument . newArgument(). name(" arg" )
27+ .type(GraphQLNonNull . nonNull(GraphQLString ))
2728 def fieldDef = GraphQLFieldDefinition . newFieldDefinition()
2829 .name(" field" )
2930 .type(GraphQLString )
@@ -40,10 +41,32 @@ class ProvidedNonNullArgumentsTest extends Specification {
4041 errorCollector. containsValidationError(ValidationErrorType.MissingFieldArgument )
4142 }
4243
44+ def " not provided and but defaulted non null field argument" () {
45+ given :
46+ def fieldArg = GraphQLArgument . newArgument(). name(" arg" )
47+ .type(GraphQLNonNull . nonNull(GraphQLString ))
48+ .defaultValue(" defaultVal" )
49+ def fieldDef = GraphQLFieldDefinition . newFieldDefinition()
50+ .name(" field" )
51+ .type(GraphQLString )
52+ .argument(fieldArg)
53+ .build()
54+ validationContext. getFieldDef() >> fieldDef
55+
56+ def field = new Field (" field" )
57+
58+ when :
59+ providedNonNullArguments. checkField(field)
60+
61+ then :
62+ errorCollector. getErrors(). isEmpty()
63+ }
64+
4365
4466 def " all field arguments are provided" () {
4567 given :
46- def fieldArg = GraphQLArgument . newArgument(). name(" arg" ). type(GraphQLNonNull . nonNull(GraphQLString ))
68+ def fieldArg = GraphQLArgument . newArgument(). name(" arg" )
69+ .type(GraphQLNonNull . nonNull(GraphQLString ))
4770 def fieldDef = GraphQLFieldDefinition . newFieldDefinition()
4871 .name(" field" )
4972 .type(GraphQLString )
@@ -60,9 +83,10 @@ class ProvidedNonNullArgumentsTest extends Specification {
6083 errorCollector. getErrors(). isEmpty()
6184 }
6285
63- def " not provided directive argument" () {
86+ def " not provided not defaulted directive argument" () {
6487 given :
65- def directiveArg = GraphQLArgument . newArgument(). name(" arg" ). type(GraphQLNonNull . nonNull(GraphQLString ))
88+ def directiveArg = GraphQLArgument . newArgument()
89+ .name(" arg" ). type(GraphQLNonNull . nonNull(GraphQLString ))
6690 def graphQLDirective = GraphQLDirective . newDirective()
6791 .name(" directive" )
6892 .argument(directiveArg)
@@ -78,6 +102,26 @@ class ProvidedNonNullArgumentsTest extends Specification {
78102 errorCollector. containsValidationError(ValidationErrorType.MissingDirectiveArgument )
79103 }
80104
105+ def " not provided but defaulted directive argument" () {
106+ given :
107+ def directiveArg = GraphQLArgument . newArgument()
108+ .name(" arg" ). type(GraphQLNonNull . nonNull(GraphQLString ))
109+ .defaultValue(" defaultVal" )
110+ def graphQLDirective = GraphQLDirective . newDirective()
111+ .name(" directive" )
112+ .argument(directiveArg)
113+ .build()
114+ validationContext. getDirective() >> graphQLDirective
115+
116+ def directive = new Directive (" directive" )
117+
118+ when :
119+ providedNonNullArguments. checkDirective(directive, [])
120+
121+ then :
122+ errorCollector. getErrors(). isEmpty()
123+ }
124+
81125
82126 def " all directive arguments are provided" () {
83127 given :
0 commit comments