diff --git a/core/src/main/kotlin/me/lazmaid/kraph/Kraph.kt b/core/src/main/kotlin/me/lazmaid/kraph/Kraph.kt index a63d7fe..1cc5ed6 100644 --- a/core/src/main/kotlin/me/lazmaid/kraph/Kraph.kt +++ b/core/src/main/kotlin/me/lazmaid/kraph/Kraph.kt @@ -51,7 +51,7 @@ class Kraph(f: Kraph.() -> Unit) { open inner class FieldBuilder { internal val fields = arrayListOf() - fun fieldObject(name: String, alias: String? = null, args: Map? = null, builder: FieldBlock) { + fun fieldObject(name: String, alias: String? = null, args: Map? = null, builder: FieldBlock? = null) { addField(name, alias, args, builder) } diff --git a/core/src/test/kotlin/me/lazmaid/kraph/test/BuilderSpek.kt b/core/src/test/kotlin/me/lazmaid/kraph/test/BuilderSpek.kt index 22e1414..844512d 100644 --- a/core/src/test/kotlin/me/lazmaid/kraph/test/BuilderSpek.kt +++ b/core/src/test/kotlin/me/lazmaid/kraph/test/BuilderSpek.kt @@ -109,6 +109,21 @@ class BuilderSpek : Spek({ }, throws(noFieldInSelectionSetMessageMatcher("test"))) } } + given("sample query with object and no supplied field builder") { + val query = Kraph { + query { + fieldObject("test") + } + } + it("should not throw a NoFieldsInSelectionSetException and build the request correctly") { + assertThat( + query.toRequestString(), + equalTo( + "{\"query\": \"query { test }\", \"variables\": null, \"operationName\": null}" + ) + ) + } + } given("sample mutation") { val query = Kraph { mutation {