module Data.Conduit.FilesystemSpec (spec) where
import Test.Hspec
import Data.Conduit
import qualified Data.Conduit.List as CL
import Data.Conduit.Filesystem
import Data.List (sort, isSuffixOf)
import Control.Monad.Trans.Resource (runResourceT)
spec :: Spec
spec = describe "Data.Conduit.Filesystem" $ do
it "sourceDirectory" $ do
res <- runResourceT
$ sourceDirectory "test/filesystem"
$$ CL.filter (not . (".swp" `isSuffixOf`))
=$ CL.consume
sort res `shouldBe`
[ "test/filesystem/bar.txt"
, "test/filesystem/baz.txt"
, "test/filesystem/bin"
, "test/filesystem/foo.txt"
]
it "sourceDirectoryDeep" $ do
res1 <- runResourceT
$ sourceDirectoryDeep False "test/filesystem"
$$ CL.filter (not . (".swp" `isSuffixOf`))
=$ CL.consume
res2 <- runResourceT
$ sourceDirectoryDeep True "test/filesystem"
$$ CL.filter (not . (".swp" `isSuffixOf`))
=$ CL.consume
sort res1 `shouldBe`
[ "test/filesystem/bar.txt"
, "test/filesystem/baz.txt"
, "test/filesystem/bin/bin.txt"
, "test/filesystem/foo.txt"
]
sort res1 `shouldBe` sort res2