@@ -779,3 +779,134 @@ function g.test_middleware()
779779 }
780780 )
781781end
782+
783+ g .test_default_values = function ()
784+ local server = cluster .main_server
785+
786+ server .net_box :eval ([[
787+ package.loaded['test'] = package.loaded['test'] or {}
788+ package.loaded['test']['test_default_value'] = function(_, args)
789+ if args.arg == nil then
790+ return 'nil'
791+ end
792+ return args.arg
793+ end
794+
795+ package.loaded['test']['test_default_list'] = function(_, args)
796+ if args.arg == nil then
797+ return 'nil'
798+ end
799+ return args.arg[1]
800+ end
801+
802+ package.loaded['test']['test_default_object'] = function(_, args)
803+ if args.arg == nil then
804+ return 'nil'
805+ end
806+ return args.arg.field
807+ end
808+
809+ local graphql = require('cartridge.graphql')
810+ local types = require('cartridge.graphql.types')
811+
812+ graphql.add_callback({
813+ name = 'test_default_value',
814+ args = {
815+ arg = types.string,
816+ },
817+ kind = types.string,
818+ callback = 'test.test_default_value',
819+ })
820+
821+ graphql.add_callback({
822+ name = 'test_default_list',
823+ args = {
824+ arg = types.list(types.string),
825+ },
826+ kind = types.string,
827+ callback = 'test.test_default_list',
828+ })
829+
830+ local input_object = types.inputObject({
831+ name = 'default_input_object',
832+ fields = {
833+ field = types.string,
834+ }
835+ })
836+
837+ graphql.add_callback({
838+ name = 'test_default_object',
839+ args = {
840+ arg = input_object,
841+ },
842+ kind = types.string,
843+ callback = 'test.test_default_object',
844+ })
845+ ]] )
846+
847+ t .assert_equals (
848+ server :graphql ({
849+ query = [[
850+ query($arg: String = "default_value") {
851+ test_default_value(arg: $arg)
852+ }
853+ ]] ,
854+ variables = {}}
855+ ).data .test_default_value , ' default_value'
856+ )
857+
858+ t .assert_equals (
859+ server :graphql ({
860+ query = [[
861+ query($arg: String = "default_value") {
862+ test_default_value(arg: $arg)
863+ }
864+ ]] ,
865+ variables = {arg = box .NULL }}
866+ ).data .test_default_value , ' nil'
867+ )
868+
869+ t .assert_equals (
870+ server :graphql ({
871+ query = [[
872+ query($arg: [String] = ["default_value"]) {
873+ test_default_list(arg: $arg)
874+ }
875+ ]] ,
876+ variables = {}}
877+ ).data .test_default_list , ' default_value'
878+ )
879+
880+ t .assert_equals (
881+ server :graphql ({
882+ query = [[
883+ query($arg: [String] = ["default_value"]) {
884+ test_default_list(arg: $arg)
885+ }
886+ ]] ,
887+ variables = {arg = box .NULL }}
888+ ).data .test_default_list , ' nil'
889+ )
890+
891+ t .assert_equals (
892+ server :graphql ({
893+ query = [[
894+ query($arg: default_input_object = {field: "default_value"}) {
895+ test_default_object(arg: $arg)
896+ }
897+ ]] ,
898+ variables = {}}
899+ ).data .test_default_object , ' default_value'
900+ )
901+
902+ t .assert_equals (
903+ server :graphql ({
904+ query = [[
905+ query($arg: default_input_object = {field: "default_value"}) {
906+ test_default_object(arg: $arg)
907+ }
908+ ]] ,
909+ variables = {arg = box .NULL }}
910+ ).data .test_default_object , ' nil'
911+ )
912+ end
0 commit comments