content: module CustomPackageDbSpec where
  
  import GhcMod.CabalHelper
  import GhcMod.CustomPackageDb
  import GhcMod.Error
  import System.Process
  import Test.Hspec
  import Prelude
  
  import Dir
  import TestUtils
  
  spec :: Spec
  spec = do
      describe "getCustomPkgDbStack" $ do
          it "works" $ do
              let tdir = "test/data/custom-cradle"
              Just stack <- runD' tdir $ getCustomPkgDbStack
              stack `shouldBe` [ GlobalDb
                               , UserDb
                               , PackageDb "package-db-a"
                               , PackageDb "package-db-b"
                               , PackageDb "package-db-c"
                               ]
  
      describe "getPackageDbStack'" $ do
          it "fixes out of sync custom pkg-db stack" $ do
              withDirectory_ "test/data/custom-cradle" $ do
                  _ <- system "cabal configure"
                  (s, s') <- runD $ do
                      Just stack <- getCustomPkgDbStack
                      withCabal $ do
                          stack' <- getCabalPackageDbStack
                          return (stack, stack')
                  s' `shouldBe` s
  