Skip to content

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

Open
@jcromp

Description

@jcromp

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions