@@ -51,6 +51,11 @@ var TestType = new GraphQLObjectType({
51
51
args : { input : { type : new GraphQLNonNull ( GraphQLString ) } } ,
52
52
resolve : ( _ , { input } ) => input && JSON . stringify ( input )
53
53
} ,
54
+ fieldWithDefaultArgumentValue : {
55
+ type : GraphQLString ,
56
+ args : { input : { type : GraphQLString , defaultValue : 'Hello World' } } ,
57
+ resolve : ( _ , { input } ) => input && JSON . stringify ( input )
58
+ } ,
54
59
list : {
55
60
type : GraphQLString ,
56
61
args : { input : { type : new GraphQLList ( GraphQLString ) } } ,
@@ -720,4 +725,45 @@ describe('Execute: Handles inputs', () => {
720
725
} ) ;
721
726
722
727
} ) ;
728
+
729
+ describe ( 'Execute: Uses argument default values' , ( ) => {
730
+
731
+ it ( 'when no argument provided' , async ( ) => {
732
+ var ast = parse ( `{
733
+ fieldWithDefaultArgumentValue
734
+ }` ) ;
735
+
736
+ return expect ( await execute ( schema , ast ) ) . to . deep . equal ( {
737
+ data : {
738
+ fieldWithDefaultArgumentValue : '"Hello World"'
739
+ }
740
+ } ) ;
741
+ } ) ;
742
+
743
+ it ( 'when nullable variable provided' , async ( ) => {
744
+ var ast = parse ( `query optionalVariable($optional: String) {
745
+ fieldWithDefaultArgumentValue(input: $optional)
746
+ }` ) ;
747
+
748
+ return expect ( await execute ( schema , ast ) ) . to . deep . equal ( {
749
+ data : {
750
+ fieldWithDefaultArgumentValue : '"Hello World"'
751
+ }
752
+ } ) ;
753
+ } ) ;
754
+
755
+ it ( 'when argument provided cannot be coerced' , async ( ) => {
756
+ var ast = parse ( `{
757
+ fieldWithDefaultArgumentValue(input: WRONG_TYPE)
758
+ }` ) ;
759
+
760
+ return expect ( await execute ( schema , ast ) ) . to . deep . equal ( {
761
+ data : {
762
+ fieldWithDefaultArgumentValue : '"Hello World"'
763
+ }
764
+ } ) ;
765
+ } ) ;
766
+
767
+ } ) ;
768
+
723
769
} ) ;
0 commit comments