{-# LANGUAGE DeriveAnyClass #-} import Data.Yaml.Pretty.Extras import GHC.Generics import RIO import qualified RIO.ByteString as BS import Test.Hspec data Person = Person { mood :: Text, job :: Text } deriving (Eq, Generic, FromJSON, Show, ToJSON) data Conf = Conf { name :: Text, kind :: Text, people :: [Person] } deriving (Eq, Generic, FromJSON, Show, ToJSON) instance ToPrettyYaml Conf where fieldOrder = const ["name", "kind", "people", "mood", "job"] main :: IO () main = hspec $ describe "Data.Yaml.Pretty.Extras" $ it "prints correctly" $ do Just x <- decodeFileThrow "test/mock.yaml" :: IO (Maybe Conf) BS.readFile "test/mock.yaml" `shouldReturn` toPrettyYaml x