cmt-0.7.1.0: test/Cmt/Parser/ArgumentsTest.hs
{-# LANGUAGE OverloadedLists #-}
module Cmt.Parser.ArgumentsTest where
import ClassyPrelude
import Test.Tasty
import Test.Tasty.HUnit
import Cmt.Parser.Arguments (parse)
import Cmt.Types.App (Settings (Settings), defaultSettings)
import Cmt.Types.Next (Next (..))
test_config :: TestTree
test_config =
testGroup
"Cmt.Parser.Arguments"
[ testGroup
"single arguments"
[ testCase
"help"
(assertEqual "Gives back Help" (Right (defaultSettings, Help)) (parse "-h"))
, testCase
"version"
(assertEqual
"Gives back Version"
(Right (defaultSettings, Version))
(parse "-v"))
, testCase
"config location"
(assertEqual
"Gives back ConfigLocation"
(Right (defaultSettings, ConfigLocation))
(parse "-c"))
, testCase
"previous"
(assertEqual
"Gives back Previous"
(Right (defaultSettings, Previous))
(parse "--prev"))
]
, testGroup
"PreDefined"
[ testCase
"predefined message"
(assertEqual
"Gives back PreDefined and name"
(Right (defaultSettings, PreDefined "test" []))
(parse "-p test"))
, testCase
"predefined message plus message"
(assertEqual
"Gives back PreDefined, name and message"
(Right (defaultSettings, PreDefined "test" [("*", "a message")]))
(parse "-p test a message"))
]
, testGroup
"Continue"
[ testCase
"continue"
(assertEqual
"Gives back empty Continue"
(Right (defaultSettings, Continue []))
(parse ""))
, testCase
"continue"
(assertEqual
"Gives back Continue with message"
(Right (defaultSettings, Continue [("*", "a message")]))
(parse "a message"))
]
, testGroup
"Settings"
[ testCase
"previous dryn run"
(assertEqual
"Gives back Previous"
(Right (Settings True True, Previous))
(parse "--dry-run --prev"))
, testCase
"predefined message plus message"
(assertEqual
"Gives back PreDefined, name and message"
(Right (Settings True True, PreDefined "test" [("*", "a message")]))
(parse "--dry-run -p test a message"))
, testCase
"continue"
(assertEqual
"Gives back Continue with message"
(Right (Settings True True, Continue [("*", "a message")]))
(parse "--dry-run a message"))
, testCase
"predefined message plus message - no colours"
(assertEqual
"Gives back PreDefined, name and message"
(Right (Settings False False, PreDefined "test" [("*", "a message")]))
(parse "--no-color -p test a message"))
]
]