nvfetcher-0.4.0.0: test/FetchRustGitDepsSpec.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
module FetchRustGitDepsSpec where
import Control.Monad.Trans.Reader
import Data.HashMap.Strict (HashMap)
import qualified Data.HashMap.Strict as HMap
import Data.Maybe (fromJust)
import Data.Text (Text)
import NvFetcher.FetchRustGitDeps
import NvFetcher.NixFetcher
import NvFetcher.Types
import Test.Hspec
import Utils
spec :: Spec
spec = aroundShake $
describe "fetchRustGitDeps" $
specifyChan "works" $ do
prefetched <-
runPrefetchRule $
gitFetcher
"https://gist.github.com/NickCao/6c4dbc4e15db5da107de6cdb89578375"
"8a5f37a8f80a3b05290707febf57e88661cee442"
shouldBeJust prefetched
runFetchRustGitDepsRule (fromJust prefetched) "Cargo.lock"
`shouldReturnJust` HMap.fromList
[ ("rand-0.8.3", Checksum "1khg0rnz8xxd389cprqmy9vq9sggzz78lb9n7hh2w6xfsl4xfyyc")
]
runPrefetchRule :: NixFetcher Fresh -> ReaderT ActionQueue IO (Maybe (NixFetcher Fetched))
runPrefetchRule fetcher = runActionChan $ prefetch fetcher
runFetchRustGitDepsRule :: NixFetcher Fetched -> FilePath -> ReaderT ActionQueue IO (Maybe (HashMap Text Checksum))
runFetchRustGitDepsRule fetcher lockPath = runActionChan $ fetchRustGitDeps fetcher lockPath