packages feed

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"