headroom-0.2.2.1: test/Headroom/SerializationSpec.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Headroom.SerializationSpec
( spec
)
where
import Headroom.Serialization
import RIO
import qualified RIO.Map as M
import Test.Hspec
spec :: Spec
spec = do
describe "dropFieldPrefix" $ do
it "removes prefix and lowercases first letter for 'prSomeField'" $ do
dropFieldPrefix "prSomeField" `shouldBe` "someField"
it "removes prefix and keeps case for 'prURLField'" $ do
dropFieldPrefix "prURLField" `shouldBe` "URLField"
describe "symbolCase" $ do
it "replaces camel cased string into symbol cased" $ do
let input = "camelCasedValue"
expected = "camel-cased-value"
symbolCase '-' input `shouldBe` expected
describe "prettyPrintYAML" $ do
it "pretty prints YAML" $ do
let input = M.fromList [("foo" :: Text, ["bar"] :: [Text])]
expected = "foo:\n- bar\n"
prettyPrintYAML input `shouldBe` expected