graphql-java-tools icon indicating copy to clipboard operation
graphql-java-tools copied to clipboard

Enum not converted to Enum type when fetched from DataFetchingEvironment arguments when Query Default Value is used

Open jcromp opened this issue 5 years ago • 1 comments

I'd like to preface this by saying I am new to GraphQL and this could easily be an issue in my Query.

I have recreated the issue with unit tests here: https://github.com/jcromp/graphql-enum-error-example mvn test should do the trick.

The query should take a list of Enum's and if no values are provided it should default to a list of ALL the possible enum values:

type Query {
     foos(fooStatus: [StatusEnum!] = [GOOD, BAD, UGLY]): [Foo]
}

enum StatusEnum {
    GOOD,
    BAD,
    UGLY
}

This works perfectly fine if I am providing the values to the query. However, when I don't provide value(s) and the default value is used, when the resolver gets the arguments from the DataFetchingEnvironment they come out as Strings and not their Enum type, this causes a ClassCastException: class java.lang.String cannot be cast to class com.example.enumerrorexample.StatusEnum

If this is me not understanding something could someone please let me know what I am doing wrong.

Thanks.

jcromp avatar Oct 01 '20 00:10 jcromp

@vojtapol Is this issue resolved? Can I take this bug if no one is working on it.

kumartheashwani avatar Jan 25 '21 17:01 kumartheashwani