packages feed

super-user-spark-0.4.0.1: test/TestUtils.hs

{-# LANGUAGE TemplateHaskell #-}

module TestUtils where

import TestImport

shouldParseDir :: Path Rel Dir
shouldParseDir = $(mkRelDir "shouldParseDir")

shouldNotParseDir :: Path Rel Dir
shouldNotParseDir = $(mkRelDir "shouldNotParseDir")

shouldCompileDir :: Path Rel Dir
shouldCompileDir = $(mkRelDir "shouldCompileDir")

shouldNotCompileDir :: Path Rel Dir
shouldNotCompileDir = $(mkRelDir "shouldNotCompileDir")

concerningContents :: (Path Abs File -> String -> SpecWith a)
                   -> (Path Abs File -> SpecWith a)
concerningContents func file = (runIO . readFile $ toFilePath file) >>= func file

forFileInDirss :: [Path Abs Dir] -> (Path Abs File -> SpecWith a) -> SpecWith a
forFileInDirss [] _ = return ()
forFileInDirss dirs func =
    forM_ dirs $ \dir -> do
        exists <- runIO $ doesDirExist dir
        when exists $ do
            files <- runIO $ snd <$> listDirRecur dir
            forM_ files func

pend :: SpecWith ()
pend = it "is still missing some tests" pending