From fa91f3beb4019f3543c4ece8562d5bccafa14e3b Mon Sep 17 00:00:00 2001 From: RudyOnRails Date: Thu, 20 Aug 2020 16:59:10 +0100 Subject: [PATCH] Field objects are allowed to be supplied without declaring blocks --- core/src/main/kotlin/me/lazmaid/kraph/Kraph.kt | 2 +- .../kotlin/me/lazmaid/kraph/test/BuilderSpek.kt | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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 {