hspec / hspec-pretty-json

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pretty-print JSON values in Hspec failures

Here is a failing spec:

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
module README where
import           Test.Hspec
import qualified Test.Hspec.PrettyJSON as PrettyJSON
import           Data.Aeson
import           GHC.Generics

data Person = Person {
  name :: String
, age :: Int
} deriving (Eq, Show, Generic, ToJSON)

person :: Person
person = Person "Joe" 23

spec :: Spec
spec = do
  describe "PrettyJSON" $ do
    context "when comparing aeson Values" $ do
      it "pretty-prints JSON values" $ do
        toJSON person `shouldBe` toJSON person { age = 42 }

    context "when comparing Strings" $ do
      it "pretty-prints JSON values" $ do
        encode person `shouldBe` encode person { age = 42 }

When you run this spec with

main :: IO ()
main = hspec spec

you will get output of the form:

without

By using PrettyJSON

main :: IO ()
main = hspec $ PrettyJSON.use spec

the JSON values will be pretty-printed:

with

About

License:MIT License


Languages

Language:Haskell 100.0%