Skip to content

Commit 1bff1a0

Browse files
Fix handling of default values in schema for complex types. (#648)
1 parent 11a343b commit 1bff1a0

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/java/DataTypeGenerator.kt

+1
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ class InputTypeGenerator(config: CodeGenConfig, document: Document) : BaseDataTy
146146
}
147147
}.joinToString()
148148
)
149+
is ObjectValue -> CodeBlock.of("new \$L()", typeUtils.findReturnType(it.type))
149150
else -> CodeBlock.of("\$L", defVal)
150151
}
151152
}

graphql-dgs-codegen-core/src/test/kotlin/com/netflix/graphql/dgs/codegen/CodeGenTest.kt

+26
Original file line numberDiff line numberDiff line change
@@ -1593,6 +1593,32 @@ class CodeGenTest {
15931593
assertCompilesJava(enumTypes + dataTypes)
15941594
}
15951595

1596+
@Test
1597+
fun generateInputWithDefaultValueForComplexType() {
1598+
val schema = """
1599+
enum Color {
1600+
red
1601+
}
1602+
1603+
input ColorFilter {
1604+
color: Color = red
1605+
}
1606+
1607+
input Car {
1608+
color: Color = red
1609+
make: String
1610+
}
1611+
1612+
input MyCar {
1613+
car: Car = {color: red}
1614+
}
1615+
""".trimIndent()
1616+
1617+
val (dataTypes, _, enumTypes) = CodeGen(CodeGenConfig(schemas = setOf(schema), packageName = basePackageName)).generate()
1618+
1619+
assertCompilesJava(enumTypes + dataTypes)
1620+
}
1621+
15961622
@Test
15971623
fun generateInputWithDefaultValueForArray() {
15981624
val schema = """

0 commit comments

Comments
 (0)