jordan-0.2.0.0: test/Jordan/FromJSON/UnboxedReportingSpec.hs
{-# LANGUAGE LambdaCase #-}
module Jordan.FromJSON.UnboxedReportingSpec
( spec,
prettyWhenError,
)
where
import Data.Text (Text)
import Data.Text.Encoding (encodeUtf8)
import Jordan
import Jordan.FromJSON.Class (FromJSON (fromJSON))
import Jordan.SpecDefs (basicParsingSpec)
import Jordan.Types.JSONError
import Test.Hspec (Spec, describe, it, shouldBe)
prettyWhenError :: Either JSONError a -> Either Text a
prettyWhenError = \case
Left je -> Left $ prettyPrintJSONError je
Right a -> Right a
spec :: Spec
spec = describe "Jordan.FromJSON.Reporting" $ do
basicParsingSpec $ \t v ->
prettyWhenError (parseOrReport (encodeUtf8 t)) `shouldBe` Right v