axel-0.0.5: test/Axel/Test/Monad/ResourceSpec.hs
{-# LANGUAGE FlexibleContexts #-}
module Axel.Test.Monad.ResourceSpec where
import qualified Axel.Monad.Resource as Res
import qualified Axel.Test.Monad.FileSystemMock as Mock
import qualified Axel.Test.Monad.ResourceMock as Mock
import Test.Tasty.Hspec
{-# ANN module "HLint: ignore Redundant do" #-}
spec_Resource :: SpecWith ()
spec_Resource =
describe "readResource" $ do
it "reads a resource's contents from the file system" $ do
let action = Res.readResource (Res.ResourceId "resGroup1/res1")
let origFSState =
Mock.mkFSState
[ Mock.Directory
"resources"
[Mock.Directory "resGroup1" [Mock.File "res1" "res1Contents"]]
]
let expected = "res1Contents"
case Mock.runFileSystem origFSState $ Mock.runResourceT action of
Left err -> expectationFailure err
Right result -> result `shouldBe` (expected, origFSState)