pantry-0.5.7: test/Pantry/CasaSpec.hs
{-# LANGUAGE OverloadedStrings #-}
module Pantry.CasaSpec (spec) where
import Distribution.Types.Version (mkVersion)
import Pantry
import Pantry.SHA256
import Test.Hspec
spec :: Spec
spec = do
loadHackagePackageSpec
completeSpec
completeSpec :: Spec
completeSpec =
it
"completePackageLocation: unliftio_0_2_12"
(shouldReturn
(runPantryAppClean
(cplComplete <$> completePackageLocation (argsRlpi unliftio_0_2_12)))
( PLIHackage
(PackageIdentifier
{ pkgName = "unliftio"
, pkgVersion = mkVersion [0, 2, 12]
})
(argsCabalKey unliftio_0_2_12)
(argsTreeKey unliftio_0_2_12)))
loadHackagePackageSpec :: Spec
loadHackagePackageSpec = do
it
"loadPackageRaw Exact hackage lookup"
(shouldReturn
(fmap
packageTreeKey
(runPantryAppClean (loadPackageRaw (argsRlpi unliftio_0_2_12))))
(argsTreeKey unliftio_0_2_12))
it
"loadHackagePackageRaw Exact hackage lookup"
(shouldReturn
(fmap
packageTreeKey
(runPantryAppClean (loadPackageRaw (argsRlpi unliftio_0_2_12))))
(argsTreeKey unliftio_0_2_12))
it
"loadHackagePackageRawViaCasa Exact hackage lookup"
(shouldReturn
(fmap
(fmap packageTreeKey)
(runPantryAppClean
(tryLoadPackageRawViaCasa
(argsRlpi unliftio_0_2_12)
(argsTreeKey unliftio_0_2_12))))
(Just (argsTreeKey unliftio_0_2_12)))
data Args =
Args
{ argsRlpi :: !RawPackageLocationImmutable
, argsTreeKey :: !TreeKey
, argsRevision :: !PackageIdentifierRevision
, argsCabalKey :: !BlobKey
}
unliftio_0_2_12 :: Args
unliftio_0_2_12 =
let cabalHash = (either
(error . show)
id
(fromHexText
"b089fbc2ff2628a963c2c4b12143f2020874e3e5144ffd6c62b25639a0ca1483"))
cabalLen = FileSize 3325
cabalFileHash =
CFIHash
cabalHash
(Just cabalLen)
casaTreeKey =
TreeKey
(BlobKey
(either
(error . show)
id
(fromHexText
"4971b43f3d473eff868eb1a0c359729b49f1779e78c462ba45ef0d1eda677699"))
(FileSize 2229))
pir =
PackageIdentifierRevision
"unliftio"
(mkVersion [0, 2, 12])
cabalFileHash
in Args
{ argsRevision = pir
, argsRlpi = RPLIHackage pir (Just casaTreeKey)
, argsTreeKey = casaTreeKey
, argsCabalKey = BlobKey cabalHash cabalLen
}