diff options
| author | Eugen Wissner <belka@caraus.de> | 2020-05-13 16:21:48 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2020-05-13 16:21:48 +0200 |
| commit | 4c19c88e98bea77ebccc786cd55b30e23ab6e897 (patch) | |
| tree | 0c4e745ecbed1914852a5dad109687ddf5f9229f /tests/Test/QuerySpec.hs | |
| parent | 9232e08eb96ff6613ee6987d746d530bf2b8e6b2 (diff) | |
| download | graphql-4c19c88e98bea77ebccc786cd55b30e23ab6e897.tar.gz | |
Accept resolvers given by the user as is
Diffstat (limited to 'tests/Test/QuerySpec.hs')
| -rw-r--r-- | tests/Test/QuerySpec.hs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/Test/QuerySpec.hs b/tests/Test/QuerySpec.hs new file mode 100644 index 0000000..95608b0 --- /dev/null +++ b/tests/Test/QuerySpec.hs @@ -0,0 +1,40 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE QuasiQuotes #-} +module Test.QuerySpec + ( spec + ) where + +import Data.Aeson ((.=), object) +import qualified Data.HashMap.Strict as HashMap +import Data.List.NonEmpty (NonEmpty(..)) +import Language.GraphQL +import qualified Language.GraphQL.Schema as Schema +import Test.Hspec (Spec, describe, it, shouldBe) +import Text.RawString.QQ (r) + +spec :: Spec +spec = + describe "Query executor" $ + it "returns objects from the root resolvers" $ do + let query = [r| + { + garment { + circumference + } + } + |] + expected = object + [ "data" .= object + [ "garment" .= object + [ "circumference" .= (60 :: Int) + ] + ] + ] + actual <- graphql schema query + actual `shouldBe` expected + where + schema = HashMap.singleton "Query" $ garment' :| [] + garment' = Schema.object "garment" $ return + [ circumference' + ] + circumference' = Schema.scalar "circumference" $ pure (60 :: Int) |
