summaryrefslogtreecommitdiff
path: root/tests/tasty.hs
blob: f7ed5226deecd9ad59f586faecf5a1ae728a1ca6 (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
26
27
28
29
30
31
32
33
{-# LANGUAGE CPP #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where

#if !MIN_VERSION_base(4,8,0)
import Control.Applicative ((<$>), (<*>))
#endif

import Data.Attoparsec.Text (parseOnly)
import qualified Data.Text.IO as Text
import Test.Tasty (TestTree, defaultMain, testGroup)
import Test.Tasty.HUnit

import qualified Data.GraphQL.Parser as Parser
import qualified Data.GraphQL.Encoder as Encoder

import qualified Test.StarWars as SW
import Paths_graphql (getDataFileName)

main :: IO ()
main = defaultMain . testGroup "Tests" . (: [SW.test]) =<< ksTest

ksTest :: IO TestTree
ksTest = testCase "Kitchen Sink"
                   <$> (assertEqual "Encode" <$> expected <*> actual)
  where
    expected = Text.readFile
           =<< getDataFileName "tests/data/kitchen-sink.min.graphql"

    actual = either (error "Parsing error!") Encoder.document
          .  parseOnly Parser.document
         <$> expected