conferer-0.1.0.4: test/Conferer/Provider/PropertiesFileSpec.hs
module Conferer.Provider.PropertiesFileSpec where
import Test.Hspec
import Data.Text (Text)
import qualified Data.Text as Text
import qualified Data.Map as Map
import Conferer
import Conferer.Core
import Conferer.Provider.PropertiesFile
fakeLookupEnv :: [(String, String)] -> LookupEnvFunc
fakeLookupEnv fakeEnv = \envName ->
return $ Map.lookup envName $ Map.fromList fakeEnv
spec :: Spec
spec = do
describe "with a properties file config" $ do
it "getting an existent key returns unwraps top level value (wihtout \
\children)" $ do
c <- mkStandaloneProvider $ mkPropertiesFileProvider' "some.key=a value"
res <- getKeyInProvider c "some.key"
res `shouldBe` Just "a value"
it "getting an existent key for a child gets that value" $ do
c <- mkStandaloneProvider $ mkPropertiesFileProvider' $ Text.unlines
[ "some.key=a value"
, "some.key=b"
]
res <- getKeyInProvider c "some.key"
res `shouldBe` Just "b"
it "keys should always be consistent as to how the words are separated" $ do
c <- mkStandaloneProvider $ mkPropertiesFileProvider' $ Text.unlines
[ "some.key=a value"
, "some.key=b"
]
res <- getKeyInProvider c "another.key"
res `shouldBe` Nothing