conferer-0.1.0.0: test/Conferer/Provider/EnvSpec.hs
module Conferer.Provider.EnvSpec where
import Test.Hspec
import qualified Data.Map as Map
import Conferer
fakeLookupEnv :: [(String, String)] -> LookupEnvFunc
fakeLookupEnv fakeEnv = \envName ->
return $ Map.lookup envName $ Map.fromList fakeEnv
spec :: Spec
spec = do
describe "with an env config" $ do
let
mkEnvConfig =
emptyConfig
& addProvider
(mkEnvProvider'
(fakeLookupEnv
[ ("TMUX","/tmp/tmux-1000/default,2822,0")
, ("TMUX_PANE","%1")
, ("TMUX_PLUGIN_MANAGER_PATH","/home/user/.tmux/plugins/")
])
"TMUX"
)
it "getting an existent key returns unwraps top level value (wihtout \
\children)" $ do
c <- mkEnvConfig
res <- getKey "." c
res `shouldBe` Right "/tmp/tmux-1000/default,2822,0"
it "getting an existent key for a child gets that value" $ do
c <- mkEnvConfig
res <- getKey "pane" c
res `shouldBe` Right "%1"
it "keys should always be consistent as to how the words are separated" $ do
c <- mkEnvConfig
res <- getKey "pane" c
res `shouldBe` Right "%1"