grackle icon indicating copy to clipboard operation
grackle copied to clipboard

Extract test suite from spec and reference implementation

Open milessabin opened this issue 6 years ago • 4 comments

There is no official GraphQL test suite, however there are a large number of positive and negative examples in the spec and extensive tests in the reference implementation. We should attempt to extract these out as a conformance/interop test suite.

It would be a good idea to participate in the GraphQL working group to cooperate with any other similar efforts.

milessabin avatar Jan 13 '20 13:01 milessabin

Hey @milessabin ,I'd like to work on this issue. I've reviewed the problem statement and plan to start by analyzing the existing test cases in the reference implementation. Could you confirm if there are any specific guidelines or formats you’d like the extracted test suite to follow? Also,are there any related discussions or previous attempts that I should check out? Thanks!

SykoDaedalus avatar Feb 28 '25 09:02 SykoDaedalus

@SykoDaedalus thanks so much for taking an interest in this!

Just to clarify, this would be a set of tests for this Scala GraphQL server implementation. That means that they will need to be written in Scala, in a form similar to what you can see here based on a mapping similar to what you can see here.

The entire Grackle codebase is functional Scala based on the Typelevel ecosystem. The underlying model it uses is very different from the Javascript reference implementation (eg. it doesn't have a concept of a "resolver" as such). You might want to take a look at one of the talks linked from the README to get a flavour of things.

milessabin avatar Feb 28 '25 10:02 milessabin

Ideally, for each example in the current GraphQL spec (positive and negative), there would be a test case that matches it.

milessabin avatar Feb 28 '25 10:02 milessabin

Ok, I will immediately start working on it and will keep on updating about the progress. Thanks for the references @milessabin

SykoDaedalus avatar Feb 28 '25 10:02 SykoDaedalus