proteome-0.3.3.0: test/u/ResolveSpec.hs
{-# OPTIONS_GHC -F -pgmF htfpp #-}
module ResolveSpec(
htf_thisModulesTests
) where
import qualified Data.Map as Map (fromList)
import Data.Default.Class (Default(def))
import Test.Framework
import Ribosome.File (canonicalPaths)
import Proteome.Config (ProjectConfig(ProjectConfig))
import Proteome.Data.Project (
Project(Project),
ProjectRoot(ProjectRoot),
ProjectType(ProjectType),
ProjectName(ProjectName),
ProjectLang(ProjectLang),
ProjectMetadata(DirProject),
)
import Proteome.Project.Resolve (resolveProject)
paths :: [FilePath]
paths = [
"~/../test/dir",
"~"
]
test_canonicalPaths :: IO ()
test_canonicalPaths = do
canon <- canonicalPaths paths
assertNotEqual canon paths
root :: ProjectRoot
root = ProjectRoot "/projects/haskell/flagellum"
name :: ProjectName
name = ProjectName "flagellum"
tpe :: ProjectType
tpe = ProjectType "haskell"
tpe1 :: ProjectType
tpe1 = ProjectType "idris"
tpe2 :: ProjectType
tpe2 = ProjectType "agda"
lang :: ProjectLang
lang = ProjectLang "haskell"
lang1 :: ProjectLang
lang1 = ProjectLang "idris"
lang2 :: ProjectLang
lang2 = ProjectLang "agda"
config :: ProjectConfig
config = ProjectConfig def (Map.fromList [(tpe, [tpe1, tpe2])]) (Map.fromList [(tpe, [lang1, lang2])])
targetProject :: Project
targetProject = Project (DirProject name root (Just tpe)) [tpe1, tpe2] (Just lang) [lang1, lang2]
test_typeMap :: IO ()
test_typeMap = do
let project = resolveProject ["/projects"] [] config root name (Just tpe)
assertEqual targetProject project