summaryrefslogtreecommitdiff
path: root/tests/Language/GraphQL
AgeCommit message (Collapse)Author
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.
2020-07-15Respect subscriptions in the executorEugen Wissner
After the last commit there were a few places needed to be adjusted to support subscriptions. This is done and a test case is added. It is important to implement subscriptions now, because they require changes to the library API, and they are a big missing part to finish the executor. When the executor is finished, we can start to provide more stable API without breaking everything every release. Validation and introspection shouldn't require much changes to the API; AST would require some changes to report good errors after the validation - this is one thing I can think of. Fixes #5.
2020-07-14Support subscriptionsEugen Wissner
This is experimental support. The implementation is based on conduit and is boring. There is a new resolver data constructor that should create a source event stream. The executor receives the events, pipes them through the normal execution and puts them into the response stream which is returned to the user. - Tests are missing. - The executor should check field value resolver on subscription types. - The graphql function should probably return (Either ResponseEventStream Response), but I'm not sure about this. It will make the usage more complicated if no subscriptions are involved, but with the current API implementing subscriptions is more difficult than it should be.
2020-07-11Parse subscriptionsEugen Wissner
2020-07-09Parse comments in the front of definitionsEugen Wissner
2020-07-08Return parser error location in a listEugen Wissner
An error can have multiple locations which are returned in a listt with key "locations".
2020-07-05Handle errors using custom typesEugen Wissner
Fixes #32.
2020-06-29Combine Resolver and ActionT in ResolverTEugen Wissner
2020-06-19Fix list input coercionEugen Wissner
2020-06-13Coerce resultEugen Wissner
Fixes #45.
2020-06-12Merge selection setsEugen Wissner
2020-06-10Skip unknown fieldsEugen Wissner
2020-06-07Add description to the enum type valuesEugen Wissner
2020-06-06Coerce argument values properlyEugen Wissner
Fixes #44.
2020-05-29Define resolvers on type fieldsEugen Wissner
Returning resolvers from other resolvers isn't supported anymore. Since we have a type system now, we define the resolvers in the object type fields and pass an object with the previous result to them.
2020-05-25Split input/output types and values into 2 modulesEugen Wissner
2020-05-24Check pointEugen Wissner
2020-05-23Don't fail on invalid fragments and variablesEugen Wissner
2020-05-22Reject variables as default valuesEugen Wissner
2020-05-21Coerce variable valuesEugen Wissner
2020-05-13Accept resolvers given by the user as isEugen Wissner
2020-04-10Don't encode controls as block stringsDmitrii Skurikhin
Fixes #39. String containing control sequences should be encoded as simple strings even if they contain newlines, since the block strings can contain only SourceCharacters.
2020-03-31encode null value as "null"Dmitrii Skurikhin
2020-01-28Try all extension parsersEugen Wissner
2020-01-25Parse schema extensionsEugen Wissner
2020-01-17Add "extend symbol" lexer to parse extensionsEugen Wissner
2020-01-15Parse complete TypeSystemDefinitionEugen Wissner
2020-01-13Parse enum and input object type definitionsEugen Wissner
2020-01-13Parse interface type definitionEugen Wissner
2020-01-13Parse union definitionsEugen Wissner
2020-01-13Parse ObjectDefinitionEugen Wissner
2020-01-13Parse SchemaDefinitionEugen Wissner
2019-12-28Move AST to AST.DocumentEugen Wissner
2019-12-25Replace AST.Selection data constructorsEugen Wissner
2019-12-21Pretify multi-line string arguments as block stringsEugen Wissner
Fixes #10.
2019-12-20Encode Unicode. Fix #34Eugen Wissner
2019-12-19Escape non-source characters in the encoderEugen Wissner
2019-11-28Fix strings not consuming spacesSam Nolan
Fixes #28
2019-11-21Fix failed parsing on multiple required argumentsSam Nolan
Fixes #25.
2019-11-03Move related modules to Language.GraphQL.ASTEugen Wissner
Fixes #18. - `Language.GraphQL.Encoder` moved to `Language.GraphQL.AST.Encoder`. - `Language.GraphQL.Parser` moved to `Language.GraphQL.AST.Parser`. - `Language.GraphQL.Lexer` moved to `Language.GraphQL.AST.Lexer`. - All `Language.GraphQL.AST.Value` data constructor prefixes were removed. The module should be imported qualified. - All `Language.GraphQL.AST.Core.Value` data constructor prefixes were removed. The module should be imported qualified. - `Language.GraphQL.AST.Transform` is now isn't exposed publically anymore.
2019-09-27Introduce hspec-megaparsecEugen Wissner
Fixes #13.
2019-09-06Fix #12Eugen Wissner
2019-08-13Escape special characters in the encoded stringsEugen Wissner
Fixes #2.
2019-07-23Add singleError utility functionv0.4.0.0Eugen Wissner
2019-07-22Parse the BOM header if anyEugen Wissner
2019-07-10Replace tasty and HUnit with HspecEugen Wissner
2019-06-26Fix ambigious Int resolution in the lexer testsEugen Wissner
2019-06-21Parse queries with megaparsecEugen Wissner