packages feed

stan-0.1.0.0: test/Spec.hs

module Main (main) where

import Stan.Hie.Compat (HieFile (..))
import System.FilePath ((</>))
import Test.Hspec (hspec)

import Stan.Hie (readHieFiles)
import Test.Stan.Analysis (analysisSpec)
import Test.Stan.Cli (cliSpec)
import Test.Stan.Config (configSpec)
import Test.Stan.Number (linesOfCodeSpec, modulesNumSpec)
import Test.Stan.Observation (observationSpec)
import Test.Stan.Toml (tomlSpec)


main :: IO ()
main = do
    hieFiles <- readHieFiles ".hie"
    case filter isTargetFile hieFiles of
        [] -> do
            putStrLn "FAILED: target/ files are not found"
            exitFailure
        testHies -> do
            Just exampleHie <- pure $
                find ((==) ("target" </> "Target" </> "Partial.hs") . hie_hs_file) testHies
            hspec $ do
                linesOfCodeSpec exampleHie
                modulesNumSpec $ length hieFiles
                cliSpec
                tomlSpec
                configSpec
                observationSpec
                analysisSpec testHies

isTargetFile :: HieFile -> Bool
isTargetFile HieFile{..} = "target" `isPrefixOf` hie_hs_file