{-# OPTIONS_GHC -fno-warn-deprecations #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE NamedFieldPuns #-} module Test.Hspec.Api.Format.V1.Internal ( FailureReason(..) , module Test.Hspec.Api.Format.V1.Internal ) where import Test.Hspec.Core.Util (stripAnsi) import Test.Hspec.Core.Formatters.V1 (FailureReason(..)) import qualified Test.Hspec.Api.Format.V2 as V2 import Test.Hspec.Api.Format.V2 hiding (Item(..), Result(..), FailureReason(..)) data Item = Item { Item -> Maybe Location itemLocation :: Maybe Location , Item -> Seconds itemDuration :: Seconds , Item -> String itemInfo :: String , Item -> Result itemResult :: Result } deriving Int -> Item -> ShowS [Item] -> ShowS Item -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Item] -> ShowS $cshowList :: [Item] -> ShowS show :: Item -> String $cshow :: Item -> String showsPrec :: Int -> Item -> ShowS $cshowsPrec :: Int -> Item -> ShowS Show data Result = Success | Pending (Maybe Location) (Maybe String) | Failure (Maybe Location) FailureReason deriving Int -> Result -> ShowS [Result] -> ShowS Result -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Result] -> ShowS $cshowList :: [Result] -> ShowS show :: Result -> String $cshow :: Result -> String showsPrec :: Int -> Result -> ShowS $cshowsPrec :: Int -> Result -> ShowS Show liftItem :: Item -> V2.Item liftItem :: Item -> Item liftItem Item{String Maybe Location Seconds Result itemResult :: Result itemInfo :: String itemDuration :: Seconds itemLocation :: Maybe Location itemResult :: Item -> Result itemInfo :: Item -> String itemDuration :: Item -> Seconds itemLocation :: Item -> Maybe Location ..} = V2.Item { Maybe Location itemLocation :: Maybe Location itemLocation :: Maybe Location itemLocation , Seconds itemDuration :: Seconds itemDuration :: Seconds itemDuration , String itemInfo :: String itemInfo :: String itemInfo , itemResult :: Result itemResult = Result -> Result liftResult Result itemResult } unliftItem :: V2.Item -> Item unliftItem :: Item -> Item unliftItem V2.Item{String Maybe Location Result Seconds itemResult :: Result itemInfo :: String itemDuration :: Seconds itemLocation :: Maybe Location itemResult :: Item -> Result itemInfo :: Item -> String itemDuration :: Item -> Seconds itemLocation :: Item -> Maybe Location ..} = Item { Maybe Location itemLocation :: Maybe Location itemLocation :: Maybe Location itemLocation , Seconds itemDuration :: Seconds itemDuration :: Seconds itemDuration , String itemInfo :: String itemInfo :: String itemInfo , itemResult :: Result itemResult = Result -> Result unliftResult Result itemResult } liftResult :: Result -> V2.Result liftResult :: Result -> Result liftResult = \ case Result Success -> Result V2.Success Pending Maybe Location loc Maybe String reason -> Maybe Location -> Maybe String -> Result V2.Pending Maybe Location loc Maybe String reason Failure Maybe Location loc FailureReason reason -> Maybe Location -> FailureReason -> Result V2.Failure Maybe Location loc (FailureReason -> FailureReason liftFailureReson FailureReason reason) unliftResult :: V2.Result -> Result unliftResult :: Result -> Result unliftResult = \ case Result V2.Success -> Result Success V2.Pending Maybe Location loc Maybe String reason -> Maybe Location -> Maybe String -> Result Pending Maybe Location loc Maybe String reason V2.Failure Maybe Location loc FailureReason reason -> Maybe Location -> FailureReason -> Result Failure Maybe Location loc (FailureReason -> FailureReason unliftFailureReason FailureReason reason) liftFailureReson :: FailureReason -> V2.FailureReason liftFailureReson :: FailureReason -> FailureReason liftFailureReson = \ case FailureReason NoReason -> FailureReason V2.NoReason Reason String reason -> String -> FailureReason V2.Reason String reason ExpectedButGot Maybe String preface String expected String actual -> Maybe String -> String -> String -> FailureReason V2.ExpectedButGot Maybe String preface String expected String actual Error Maybe String info SomeException e -> Maybe String -> SomeException -> FailureReason V2.Error Maybe String info SomeException e unliftFailureReason :: V2.FailureReason -> FailureReason unliftFailureReason :: FailureReason -> FailureReason unliftFailureReason = \ case FailureReason V2.NoReason -> FailureReason NoReason V2.Reason String reason -> String -> FailureReason Reason String reason V2.ColorizedReason String reason -> String -> FailureReason Reason (ShowS stripAnsi String reason) V2.ExpectedButGot Maybe String preface String expected String actual -> Maybe String -> String -> String -> FailureReason ExpectedButGot Maybe String preface String expected String actual V2.Error Maybe String info SomeException e -> Maybe String -> SomeException -> FailureReason Error Maybe String info SomeException e