Skip to content

Commit f7b11a2

Browse files
committed
Fix coercing default values on schema generation
1 parent 5aac8f9 commit f7b11a2

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

graphql/types.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ function types.inputObject(config)
224224
name = fieldName,
225225
kind = field.kind,
226226
description = field.description,
227+
defaultValue = field.defaultValue,
227228
}
228229
end
229230

test/integration/graphql_test.lua

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1639,3 +1639,53 @@ function g.test_schema_input_arg_described_with_kind_variable_pass()
16391639
local _, errors = check_request(query, query_schema, nil, nil, { variables = variables })
16401640
t.assert_equals(errors, nil)
16411641
end
1642+
1643+
function g.test_arguments_default_values()
1644+
local function callback(_, _)
1645+
return nil
1646+
end
1647+
1648+
local mutation_schema = {
1649+
['test_mutation'] = {
1650+
kind = types.string.nonNull,
1651+
arguments = {
1652+
mutation_arg = types.string,
1653+
mutation_arg_defaults = {
1654+
kind = types.inputObject({
1655+
name = 'test_input_object',
1656+
fields = {
1657+
input_object_arg_defaults = {
1658+
kind = types.string,
1659+
defaultValue = 'input object argument default value'
1660+
},
1661+
input_object_arg = types.string,
1662+
nested_enum_arg_defaults = {
1663+
kind = types.enum({
1664+
schema = schema,
1665+
name = 'mode',
1666+
values = {
1667+
read = 'read',
1668+
write = 'write',
1669+
},
1670+
}),
1671+
defaultValue = 'write',
1672+
}
1673+
},
1674+
kind = types.string,
1675+
}),
1676+
},
1677+
},
1678+
resolve = callback,
1679+
}
1680+
}
1681+
1682+
local data, errors = check_request(introspection.query, nil, mutation_schema)
1683+
t.assert_equals(errors, nil)
1684+
1685+
local test_input_object = util.find_by_name(data.__schema.types, 'test_input_object')
1686+
local input_object_arg_defaults = util.find_by_name(test_input_object.inputFields, 'input_object_arg_defaults')
1687+
t.assert_equals(input_object_arg_defaults.defaultValue, 'input object argument default value')
1688+
1689+
local nested_enum_arg_defaults = util.find_by_name(test_input_object.inputFields, 'nested_enum_arg_defaults')
1690+
t.assert_equals(nested_enum_arg_defaults.defaultValue, 'write')
1691+
end

0 commit comments

Comments
 (0)