From e98d1df630088de1772b3d670852b34b00bbcf56 Mon Sep 17 00:00:00 2001 From: Johan ROUVE Date: Tue, 9 Mar 2021 14:53:27 +0100 Subject: [PATCH 1/2] Remove error when DataFetcherResult is not the root type --- .../kotlin/graphql/kickstart/tools/TypeClassMatcher.kt | 4 ---- .../kotlin/graphql/kickstart/tools/EndToEndSpecHelper.kt | 7 ++++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/graphql/kickstart/tools/TypeClassMatcher.kt b/src/main/kotlin/graphql/kickstart/tools/TypeClassMatcher.kt index 4f4a460f..840c4a19 100644 --- a/src/main/kotlin/graphql/kickstart/tools/TypeClassMatcher.kt +++ b/src/main/kotlin/graphql/kickstart/tools/TypeClassMatcher.kt @@ -32,10 +32,6 @@ internal class TypeClassMatcher(private val definitionsByName: Map() { return DataFetcherResult.newResult().data(items.first()).build() } + fun dataFetcherResultItems(): List> { + return listOf(DataFetcherResult.newResult().data(items.first()).build()) + } + suspend fun coroutineItems(): List = CompletableDeferred(items).await() fun arrayItems() = items.toTypedArray() @@ -329,7 +334,7 @@ class Mutation : GraphQLMutationResolver { } fun saveUser(userInput: UserInput): String { - return userInput.name + "/" + userInput.password; + return userInput.name + "/" + userInput.password } class UserInput { From 0bb2853be2515e31ab6d0227bf66948b3d046bc0 Mon Sep 17 00:00:00 2001 From: Johan ROUVE Date: Tue, 9 Mar 2021 15:07:35 +0100 Subject: [PATCH 2/2] Add test on generated schema --- .../graphql/kickstart/tools/EndToEndTest.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/test/kotlin/graphql/kickstart/tools/EndToEndTest.kt b/src/test/kotlin/graphql/kickstart/tools/EndToEndTest.kt index b67d6973..6ca764c1 100644 --- a/src/test/kotlin/graphql/kickstart/tools/EndToEndTest.kt +++ b/src/test/kotlin/graphql/kickstart/tools/EndToEndTest.kt @@ -532,6 +532,21 @@ class EndToEndTest { assertEquals(data["dataFetcherResult"], mapOf("name" to "item1")) } + @Test + fun `generated schema supports list of DataFetcherResult`() { + val data = assertNoGraphQlErrors(gql) { + """ + { + dataFetcherResultItems { + name + } + } + """ + } + + assertEquals(data["dataFetcherResultItems"], listOf(mapOf("name" to "item1"))) + } + @Test fun `generated schema supports Kotlin suspend functions`() { val data = assertNoGraphQlErrors(gql) {