37 lines
1.4 KiB
Haskell
37 lines
1.4 KiB
Haskell
|
module ListTest where
|
||
|
import Test.Tasty
|
||
|
import GHCup.OptParse
|
||
|
import Utils
|
||
|
import GHCup.List
|
||
|
import GHCup.Types
|
||
|
|
||
|
|
||
|
listTests :: TestTree
|
||
|
listTests = buildTestTree listParseWith ("list", listCheckList)
|
||
|
|
||
|
defaultOptions :: ListOptions
|
||
|
defaultOptions = ListOptions Nothing Nothing Nothing Nothing False False False
|
||
|
|
||
|
listCheckList :: [(String, ListOptions)]
|
||
|
listCheckList =
|
||
|
[ ("list", defaultOptions)
|
||
|
, ("list -t ghc", defaultOptions{loTool = Just GHC})
|
||
|
, ("list -t cabal", defaultOptions{loTool = Just Cabal})
|
||
|
, ("list -t hls", defaultOptions{loTool = Just HLS})
|
||
|
, ("list -t stack", defaultOptions{loTool = Just Stack})
|
||
|
, ("list -c installed", defaultOptions{lCriteria = Just $ ListInstalled True})
|
||
|
, ("list -c +installed", defaultOptions{lCriteria = Just $ ListInstalled True})
|
||
|
, ("list -c -installed", defaultOptions{lCriteria = Just $ ListInstalled False})
|
||
|
, ("list -c set", defaultOptions{lCriteria = Just $ ListSet True})
|
||
|
, ("list -c +set", defaultOptions{lCriteria = Just $ ListSet True})
|
||
|
, ("list -c -set", defaultOptions{lCriteria = Just $ ListSet False})
|
||
|
, ("list -c available", defaultOptions{lCriteria = Just $ ListAvailable True})
|
||
|
, ("list -c +available", defaultOptions{lCriteria = Just $ ListAvailable True})
|
||
|
, ("list -c -available", defaultOptions{lCriteria = Just $ ListAvailable False})
|
||
|
]
|
||
|
|
||
|
listParseWith :: [String] -> IO ListOptions
|
||
|
listParseWith args = do
|
||
|
List a <- parseWith args
|
||
|
pure a
|