graphql-java-kickstart/graphql-java-tools

Repeatable Directives are ignored, only first directive is applied

jimartinmoreno opened this issue · 0 comments

The graphql-java library support repeatable directives as we can see here: graphql-java/graphql-java#1763
Example:
directive @auth(authorities : [String]!) repeatable on FIELD_DEFINITION | INPUT_FIELD_DEFINITION | FIELD_DEFINITION | MUTATION | QUERY

But "SchemaParser" is reading only the first repeated directive like in the example below we got only the first directive triggered:

type Persona {
billingAddress: BillingAddress @retryable @auth(authorities: ["BILLING_ADDRESS_READ"]) @auth(authorities: ["BILLING_ADDRESS_WRITE"])
}

Expected behavior
When more the one of a"repeatable" directive is applied to a field, all repeated directives should be processed.

Actual behavior
Only the first directive is been processed.

Steps to reproduce the bug

  1. Define a directive as "repeatable" like the example above.
  2. Apply this directive more than once to a single field.
  3. All directives should run