neo4j / graphql

A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations.
https://neo4j.com/docs/graphql-manual/current/
Apache License 2.0
508 stars 149 forks source link

Invalid `@default` validation rules #5436

Open MacondoExpress opened 3 months ago

MacondoExpress commented 3 months ago

Describe the bug

Current @default validation does not provide the correct error message for some typeDefs.

For instance: Time issue:

type typeNode {
  time: Time @default(value: "10:00:00")
}

Raise the following error: "@default.value is not a valid Time" with a correct Time value. The error in this case should be that Time is not supported.

DateTime case: DateTime is a supported type, however, no validation rules happen for a List of DateTime values.

type typeNode {
  dateTimes: [DateTime] @default(value: ["dummy"])
}

The above, in fact, does not raise any error while dateTime: DateTime @default(value: "dummy") raise @default.value is not a valid DateTime.

Float case: The Float type is supported, however, when not specifying the fraction part it raises an error:

type typeNode {
  float: Float @default(value: 1)
}

Raise the error: "@default.value on Float fields must be of type Float". However, this is different from the GraphQL input specification: https://spec.graphql.org/October2021/#sel-GAHXTHDCAACEB68G

System (please complete the following information):

neo4j-team-graphql commented 3 months ago

Many thanks for raising this bug report @MacondoExpress. :bug: We will now attempt to reproduce the bug based on the steps you have provided.

Please ensure that you've provided the necessary information for a minimal reproduction, including but not limited to:

If you have a support agreement with Neo4j, please link this GitHub issue to a new or existing Zendesk ticket.

Thanks again! :pray:

neo4j-team-graphql commented 3 months ago

We've been able to confirm this bug using the steps to reproduce that you provided - many thanks @MacondoExpress! :pray: We will now prioritise the bug and address it appropriately.

MacondoExpress commented 3 weeks ago

Initial PR #5437 was introduced to fix this case on the v6 POC that was dismissed and needs to be backported to v6.