ghc-mod/test/CabalApiSpec.hs

28 lines
1.9 KiB
Haskell
Raw Normal View History

2013-02-12 07:24:33 +00:00
module CabalApiSpec where
2013-03-01 03:21:42 +00:00
import Control.Applicative
2013-05-20 02:29:44 +00:00
import Language.Haskell.GhcMod.CabalApi
2013-02-12 07:24:33 +00:00
import Test.Hspec
spec :: Spec
spec = do
2013-03-01 06:25:43 +00:00
describe "cabalAllDependPackages" $ do
2013-02-12 07:24:33 +00:00
it "extracts dependent packages" $ do
2013-03-01 06:25:43 +00:00
pkgs <- cabalAllDependPackages <$> cabalParseFile "test/data/cabalapi.cabal"
2013-03-13 03:48:26 +00:00
pkgs `shouldBe` ["Cabal","base","template-haskell"]
2013-02-12 07:24:33 +00:00
describe "cabalAllSourceDirs" $ do
it "extracts all hs-source-dirs" $ do
dirs <- cabalAllSourceDirs <$> cabalParseFile "test/data/check-test-subdir/check-test-subdir.cabal"
dirs `shouldBe` ["src", "test"]
2013-02-12 07:24:33 +00:00
describe "cabalBuildInfo" $ do
it "extracts build info" $ do
2013-03-01 04:14:46 +00:00
info <- cabalBuildInfo <$> cabalParseFile "test/data/cabalapi.cabal"
2013-02-12 07:24:33 +00:00
let infoStr = show info
2013-05-08 07:34:34 +00:00
infoStr `shouldBe` "Just (BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = [], hsSourceDirs = [], otherModules = [ModuleName [\"Browse\"],ModuleName [\"CabalApi\"],ModuleName [\"Cabal\"],ModuleName [\"CabalDev\"],ModuleName [\"Check\"],ModuleName [\"ErrMsg\"],ModuleName [\"Flag\"],ModuleName [\"GHCApi\"],ModuleName [\"GHCChoice\"],ModuleName [\"Gap\"],ModuleName [\"Info\"],ModuleName [\"Lang\"],ModuleName [\"Lint\"],ModuleName [\"List\"],ModuleName [\"Paths_ghc_mod\"],ModuleName [\"Types\"]], defaultLanguage = Nothing, otherLanguages = [], defaultExtensions = [], otherExtensions = [], oldExtensions = [], extraLibs = [], extraLibDirs = [], includeDirs = [], includes = [], installIncludes = [], options = [(GHC,[\"-Wall\"])], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = [], targetBuildDepends = []})"
2013-05-08 07:47:57 +00:00
it "returns Nothing if the cabal file is broken" $ do
info <- cabalBuildInfo <$> cabalParseFile "test/data/broken-cabal/broken.cabal"
info `shouldBe` Nothing