summaryrefslogtreecommitdiff
path: root/tests/Language/GraphQL
AgeCommit message (Collapse)Author
2021-05-13Add constructor with additional schema typesEugen Wissner
2021-05-12Add location information to the intermediate treeEugen Wissner
2021-05-10Deprecate internal error generation functionsEugen Wissner
The functions generating errors in the executor should be changed anyway when we provide better error messages from the executor, with the error location and response path. So public definitions of these functions are deprecated now and they are replaced by more generic functions in the executor code.
2021-05-09Provide an internal function to add errorsEugen Wissner
The old function, addErrMsg, takes only a string with an error description, but more information is required for the execution errors: locations and path. addErrMsg should be deprecated after the switching to the new addError.
2021-05-06Validate non-nullable values inside listsEugen Wissner
2021-04-12Traverse input object properties onceEugen Wissner
2021-03-16Emit list item errors onceEugen Wissner
2021-02-21Fix some issues with directive definitionsBen Sinclair
I found some issues with directive definitions: - I couldn't use `on FIELD_DEFINITION`, I believe because `FIELD` was parsed first in `executableDirectiveLocation`. I've combined both `executableDirectiveLocation` and `typetypeSystemDirectiveLocation` into one function which can reorder them to ensure every directive location gets a fair chance at parsing. Not actually to do with directives, some literals weren't being parsed correctly. - The GraphQL spec defines list to be `[]` or `[Value]`, but empty literal lists weren't being parsed correctly because of using `some` instead of `many`. - The GraphQL spec defines objects to be `{}` or `{Name: Value}`, but empty literal objects had the same issue.
2021-02-19Replace Map with OrderedMapEugen Wissner
2021-02-15traverseMaybe OrderedMapEugen Wissner
2021-02-14Combine value inserted into the OrderedMapEugen Wissner
2021-02-13Add OrderedMap prototypeEugen Wissner
2021-02-06Split validation rule tests in contextsEugen Wissner
2021-02-04Provide custom Show instances for AST valuesEugen Wissner
2021-02-03Validate valuesEugen Wissner
2020-12-26Validate variable usages are allowed in argumentsEugen Wissner
2020-11-19Validate fragment spreads are possibleEugen Wissner
2020-11-15Implement basic "Field Selection Merging" ruleEugen Wissner
2020-11-06Fix singleFieldSubscriptionsRule fragment lookupEugen Wissner
singleFieldSubscriptionsRule picks up a wrong fragment definition.
2020-10-07Collect types once the schema is createdEugen Wissner
2020-10-05Validate required input fieldsEugen Wissner
2020-10-03Validate required argumentsEugen Wissner
2020-10-02Validate directives are in valid locationsEugen Wissner
2020-09-30Validate input object field namesEugen Wissner
2020-09-29Validate directives are definedEugen Wissner
2020-09-28Validate arguments are definedEugen Wissner
2020-09-26Validate leaf selectionsEugen Wissner
2020-09-26Validate field selections on composite typesEugen Wissner
2020-09-24Validate input fields have unique namesEugen Wissner
2020-09-22Validate variables are usedEugen Wissner
2020-09-21Validate all variables are definedEugen Wissner
2020-09-20Validate fragments are input typesEugen Wissner
2020-09-19Validate variable names are uniqueEugen Wissner
2020-09-18Validate directives are unique per locationEugen Wissner
2020-09-17Validate arguments have unique namesEugen Wissner
2020-09-16Move path to the execution errorEugen Wissner
Since it isn't possible to get a path during validation, without executing the query.
2020-09-15Use Seq as base monad in the validatorEugen Wissner
It is more natural to implement the logic: try to apply each rule to each node.
2020-09-11Validate fragments don't form cyclesEugen Wissner
2020-09-09Validate all fragments are usedEugen Wissner
2020-09-07Validate fragments on composite typesEugen Wissner
2020-09-05Validate fragment spread type existenceEugen Wissner
2020-09-04Collect types from the subscription rootEugen Wissner
2020-08-31Validate fragment spread target existenceEugen Wissner
2020-08-28Validate fragment name uniquenessEugen Wissner
2020-08-27Validate operation name uniquenessEugen Wissner
Fixes #52.
2020-08-26Validate anonymous operation definitionsEugen Wissner
2020-08-25Validate single root field in subscriptionsEugen Wissner
2020-08-22Remove encoder test based on old external filesEugen Wissner
2020-07-20Draft the Validation APIEugen Wissner
2020-07-17Constrain base monad to MonadCatchEugen Wissner
Let's try MonadThrow/MonadCatch. It looks nice at a first glance. The monad transformer stack contains only the ReaderT, less lifts are required. Exception subtyping is easier, the user can (and should) define custom error types and throw them. And it is still possible to use pure error handling, if someone doesn't like runtime exceptions or need to run a query in a pure environment. Fixes #42.