{-# LANGUAGE StandaloneDeriving #-} module Thermoprint.PrintoutSpec (spec) where import Test.Hspec import Test.Hspec.QuickCheck (prop) import Thermoprint.Printout import Data.Aeson (fromJSON, ToJSON(..), Result(..)) import Data.Function (on) -- Equality via cotext on Block instance Eq Block where (==) = (==) `on` cotext -- Structural equality for Chunk deriving instance Eq Chunk spec :: Spec spec = do prop "prop_text" prop_text parallel $ prop "json" prop_json where prop_json :: Printout -> Bool prop_json p = (== Success p) . fromJSON . toJSON $ p