File: ParserSpec.hs

package info (click to toggle)
haskell-getopt-generics 0.13.1.0-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 260 kB
  • sloc: haskell: 1,644; makefile: 6
file content (29 lines) | stat: -rw-r--r-- 779 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE TupleSections #-}

module WithCli.ParserSpec where

import           Prelude ()
import           Prelude.Compat

import           Test.Hspec

import           WithCli.Parser
import           WithCli.Result
import           Util

spec :: Spec
spec = do
  describe "runParser" $ do
    it "works" $ do
      let fa :: Parser phase Int
          fa = Parser {
            parserDefault = Nothing,
            parserOptions = [],
            parserNonOptions =
              (NonOptionsParser "type" False (\ (s : r) -> (, r) <$> Success (const $ Just $ read s))) :
              [],
            parserConvert = \ (Just x) -> return x
          }
      let i = runParser "program" (unsafeModifiers []) fa ["42"]
      i `shouldBe` Success 42