packages feed

mockery-0.3.3: test/Test/Mockery/EnvironmentSpec.hs

module Test.Mockery.EnvironmentSpec where

import           System.Environment.Compat
import           Test.Hspec

import           Test.Mockery.Environment

spec :: Spec
spec = describe "withEnvironment" $ do
  it "hides the environment" $ do
    withEnvironment [("foo", "bar")] $ do
      env <- getEnvironment
      env `shouldMatchList` [("foo", "bar")]
  it "restores the environment" $ do
    oldEnv <- getEnvironment
    withEnvironment [("foo", "bar")] $ do
      return ()
    newEnv <- getEnvironment
    newEnv `shouldMatchList` oldEnv
  it "should allow the environment to be modified" $ do
    withEnvironment [] $ do
      setEnv "foo2" "bar2"
      var <- lookupEnv "foo2"
      var `shouldBe` Just "bar2"