1{-# LANGUAGE OverloadedStrings, NoImplicitPrelude #-}
2module Stackage.BuildPlanSpec (spec) where
4import Stackage.BuildPlan
6import Stackage.BuildConstraints
7import Stackage.UpdateBuildPlan
9import qualified Data.Yaml as Y
10import Distribution.Version (anyVersion)
11import qualified Data.Map as Map
15 bc <- defaultBuildConstraints (error "manager should not be used")
18 ebp' = Y.decodeEither bs
20 bp' <- either error return ebp'
22 let allPackages = Map.keysSet (bpPackages bp) ++ Map.keysSet (bpPackages bp')
23 forM_ allPackages $ \name ->
24 (name, lookup name (bpPackages bp')) `shouldBe`
25 (name, lookup name (bpPackages bp))
27 bpGithubUsers bp' `shouldBe` bpGithubUsers bp
28 when (bp' /= bp) $ error "bp' /= bp"
29 bp2 <- updateBuildPlan bp
30 when (dropVersionRanges bp2 /= dropVersionRanges bp) $ error "bp2 /= bp"
32 dropVersionRanges bp =
33 bp { bpPackages = map go $ bpPackages bp }
35 go pb = pb { ppConstraints = go' $ ppConstraints pb }
36 go' pc = pc { pcVersionRange = anyVersion }
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list