conferer-0.1.0.0: test/ConfererSpec.hs
module ConfererSpec where
import Test.Hspec
import Conferer
spec :: Spec
spec = do
describe "keys" $ do
it "parsing keys does the right thing" $ do
"some.key" `shouldBe` Path ["some", "key"]
it "an empty string is the empty list" $ do
"" `shouldBe` Path []
describe "with a config with a nested value" $ do
let mkConfig =
pure emptyConfig
>>= addProvider (mkMapProvider [ ("postgres.url", "some url")])
>>= addProvider (mkMapProvider [ ("postgres.url", "different url") , ("server.port", "4000")])
it "getting a non existent key returns an empty config" $ do
c <- mkConfig
res <- getKey "aaa" c
res `shouldBe` Left "Key 'aaa' was not found"
it "getting an existent key returns unwraps the original map" $ do
c <- mkConfig
res <- getKey "postgres.url" c
res `shouldBe` Right "some url"
it "getting an existent key returns in the bottom maps gets it" $ do
c <- mkConfig
res <- getKey "server.port" c
res `shouldBe` Right "4000"