packages feed

tasty-discover-1.0.0: test/ParseTest.hs

-- Unit tests for Test.Tasty.Parse module.

module ParseTest where

import Test.Tasty.Discover (parseConfig, Config(..),
                            Assertion, (@?=))

case_parseConfig :: Assertion
case_parseConfig =
    parseConfig "foo" ["--module-suffix=MySuffix"]
    @?=
    Right Config {configModuleSuffix=Just "MySuffix" , noModuleSuffix=False}

case_parseConfigMissingArg :: Assertion
case_parseConfigMissingArg =
    parseConfig "foo" ["--module-suffix"]
    @?=
    Left "foo: option `--module-suffix' requires an argument SUFFIX\n"

case_parseConfigEmptyArg :: Assertion
case_parseConfigEmptyArg =
    parseConfig "foo" []
    @?=
    Right (Config Nothing False)

case_parseConfigInvalidArg :: Assertion
case_parseConfigInvalidArg =
    parseConfig "foo" ["a"]
    @?=
    Left "foo: unexpected argument `a`\n"

case_parseConfigBooleanArg :: Assertion
case_parseConfigBooleanArg  =
    parseConfig "foo" ["--no-module-suffix"]
    @?=
    Right Config {configModuleSuffix=Nothing, noModuleSuffix=True}

case_parseConfigInvalidArgCombination :: Assertion
case_parseConfigInvalidArgCombination =
    parseConfig "foo" ["--module-suffix=MySuffix", "--no-module-suffix"]
    @?=
    Left "foo: You cannot combine '--no-module-suffix' and '--module-suffix'\n"