summaryrefslogtreecommitdiff
path: root/tests/golden.hs
blob: 98413eb7ae1763abab172a4c5c719fb9f0b1086c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where

#if !MIN_VERSION_base(4,8,0)
import Control.Applicative ((<$>), (<*>), pure)
#endif
import Control.Monad ((>=>))
import Data.Attoparsec.Text (parseOnly)
import Data.ByteString.Lazy.Char8 as B8
import qualified Data.Text.IO as TIO
import Test.Tasty (defaultMain)
import Test.Tasty.Golden (goldenVsString)

import Paths_graphql (getDataFileName)
import Data.GraphQL.Parser (document)

main :: IO ()
main = defaultMain
   =<< goldenVsString "kitchen-sink.graphql"
   <$> getDataFileName "tests/data/kitchen-sink.graphql.graphql.golden"
   <*> (parse <$> getDataFileName "tests/data/kitchen-sink.graphql")
  where
    parse = fmap (parseOnly document) . TIO.readFile
        >=> pure . either B8.pack (flip B8.snoc '\n' . B8.pack . show)