diff --git a/src/main/kotlin/com/coxautodev/graphql/tools/SchemaParser.kt b/src/main/kotlin/com/coxautodev/graphql/tools/SchemaParser.kt index b5c071ee..87ff4b8e 100644 --- a/src/main/kotlin/com/coxautodev/graphql/tools/SchemaParser.kt +++ b/src/main/kotlin/com/coxautodev/graphql/tools/SchemaParser.kt @@ -158,6 +158,8 @@ class SchemaParser internal constructor(scanResult: ScannedSchemaObjects, privat val wiredField = directiveGenerator.onField(field.build(), DirectiveBehavior.Params(runtimeWiring)) GraphQLFieldDefinition.Builder(wiredField) + .clearArguments() + .argument(wiredField.arguments) } } diff --git a/src/test/groovy/com/coxautodev/graphql/tools/SuperclassResolverSpec.groovy b/src/test/groovy/com/coxautodev/graphql/tools/SuperclassResolverSpec.groovy index 676a7470..5b6b5e1f 100644 --- a/src/test/groovy/com/coxautodev/graphql/tools/SuperclassResolverSpec.groovy +++ b/src/test/groovy/com/coxautodev/graphql/tools/SuperclassResolverSpec.groovy @@ -12,8 +12,13 @@ class SuperclassResolverSpec extends Specification { bar: Bar! } - type Bar { + type Bar implements Foo{ value: String + getValueWithSeveralParameters(arg1: Boolean!, arg2: String): String! + } + + interface Foo { + getValueWithSeveralParameters(arg1: Boolean!, arg2: String): String! } ''') .resolvers(new QueryResolver(), new BarResolver()) @@ -37,6 +42,14 @@ class SuperclassResolverSpec extends Specification { String getValue(T foo) { return "value" } + + String getValueWithSeveralParameters(T foo, boolean arg1, String arg2) { + if (arg1) { + return "value" + } else { + return arg2 + } + } } class BarResolver extends FooResolver {