@@ -15,8 +15,11 @@ import Codec.CBOR.Cuddle.Huddle (Huddle, toCDDL)
1515import Codec.CBOR.Cuddle.IndexMappable (mapCDDLDropExt , mapIndex )
1616import Codec.CBOR.Term (Term (.. ), encodeTerm )
1717import Codec.CBOR.Write qualified as CBOR
18+ import Control.Monad ((<=<) )
1819import Data.Either (fromRight )
1920import Data.Text qualified as T
21+ import Data.Text.IO qualified as T
22+ import Paths_cuddle (getDataFileName )
2023import Prettyprinter (defaultLayoutOptions , layoutPretty )
2124import Prettyprinter.Render.Terminal qualified as Ansi
2225import System.FilePath ((</>) )
@@ -26,7 +29,7 @@ import Test.Codec.CBOR.Cuddle.CDDL.Examples.Huddle (
2629 refTermExample ,
2730 )
2831import Test.Hspec (Spec , describe , it )
29- import Test.Hspec.Golden (Golden (.. ), defaultGolden )
32+ import Test.Hspec.Golden (Golden (.. ))
3033
3134huddleRangeArrayTermTwoStrings :: Term
3235huddleRangeArrayTermTwoStrings =
@@ -60,9 +63,14 @@ choiceAlmostSecond =
6063validatorPrettyGolden :: String -> Huddle -> Name -> Term -> Spec
6164validatorPrettyGolden testName huddle n term =
6265 it testName $
63- (defaultGolden testName $ T. unpack str)
66+ Golden
6467 { goldenFile = " golden" </> testName <> " .txt"
68+ , readFromFile = T. readFile <=< getDataFileName
69+ , writeToFile = \ fp txt -> getDataFileName fp >>= (`T.writeFile` txt)
6570 , actualFile = Nothing
71+ , output = str
72+ , encodePretty = T. unpack
73+ , failFirstTime = False
6674 }
6775 where
6876 bs = CBOR. toStrictByteString $ encodeTerm term
0 commit comments