@@ -2,6 +2,7 @@ package com.expedia.graphql.hooks
22
33import com.expedia.graphql.TopLevelObject
44import com.expedia.graphql.extensions.deepName
5+ import com.expedia.graphql.generator.extensions.getSimpleName
56import com.expedia.graphql.getTestSchemaConfigWithHooks
67import com.expedia.graphql.toSchema
78import graphql.GraphQL
@@ -11,6 +12,7 @@ import graphql.schema.GraphQLFieldDefinition
1112import graphql.schema.GraphQLObjectType
1213import graphql.schema.GraphQLSchema
1314import graphql.schema.GraphQLType
15+ import java.util.concurrent.CompletableFuture
1416import kotlin.reflect.KFunction
1517import kotlin.reflect.KProperty
1618import kotlin.reflect.KType
@@ -207,10 +209,30 @@ class SchemaGeneratorHooksTest {
207209 assertEquals(" Hijacked Description" , query.description)
208210 }
209211
212+ @Test
213+ fun `willResolveMonad returns CompletableFuture wrapped type` () {
214+ val hooks = NoopSchemaGeneratorHooks ()
215+ val type = TestQueryFuture ::comepletableFutre.returnType
216+
217+ assertEquals(expected = " SomeData" , actual = hooks.willResolveMonad(type).getSimpleName())
218+ }
219+
220+ @Test
221+ fun `willResolveMonad returns basic type` () {
222+ val hooks = NoopSchemaGeneratorHooks ()
223+ val type = TestQuery ::query.returnType
224+
225+ assertEquals(expected = " SomeData" , actual = hooks.willResolveMonad(type).getSimpleName())
226+ }
227+
210228 class TestQuery {
211229 fun query (): SomeData = SomeData (0 )
212230 }
213231
232+ class TestQueryFuture {
233+ fun comepletableFutre (): CompletableFuture <SomeData > = CompletableFuture .completedFuture(SomeData (1 ))
234+ }
235+
214236 data class SomeData (val someNumber : Int )
215237
216238 private class WrappingDataFetcher (private val dataFetcher : DataFetcher <* >) : DataFetcher<Any> {
0 commit comments