packages feed

conferer-1.0.0.0: test/Conferer/FromConfig/StringLikeSpec.hs

{-# LANGUAGE TypeApplications #-}

module Conferer.FromConfig.StringLikeSpec (spec) where

import Test.Hspec
import Data.Text (Text)
import Conferer.FromConfig.Extended
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS

spec :: Spec
spec = do
    describe "fetching a String from config" $ do
      ensureEmptyConfigThrows @String
      ensureWrongTypeDefaultThrows @String
      ensureUsingDefaultReturnsSameValue @String "aaa"
      ensureSingleConfigParsesTheRightThing @String "thing" "thing"
    describe "fetching text from config" $ do
      ensureEmptyConfigThrows @Text
      ensureWrongTypeDefaultThrows @Text
      ensureUsingDefaultReturnsSameValue @Text "aaa"
      ensureSingleConfigParsesTheRightThing @Text "thing" "thing"
    describe "fetching bytestring from config" $ do
      ensureEmptyConfigThrows @BS.ByteString
      ensureWrongTypeDefaultThrows @BS.ByteString
      ensureUsingDefaultReturnsSameValue @BS.ByteString "aaa"
      ensureSingleConfigParsesTheRightThing @BS.ByteString "thing" "thing"
    describe "fetching lazy bytestring from config" $ do
      ensureEmptyConfigThrows @LBS.ByteString
      ensureWrongTypeDefaultThrows @LBS.ByteString
      ensureUsingDefaultReturnsSameValue @LBS.ByteString "aaa"
      ensureSingleConfigParsesTheRightThing @LBS.ByteString "thing" "thing"