mirror of
https://github.com/github/semantic.git
synced 2024-11-28 18:23:44 +03:00
25 lines
717 B
Haskell
25 lines
717 B
Haskell
|
module ParseCommandSpec where
|
||
|
|
||
|
import Data.Functor.Listable
|
||
|
import Prelude
|
||
|
import Test.Hspec hiding (shouldBe, shouldNotBe, shouldThrow, errorCall)
|
||
|
import Test.Hspec.Expectations.Pretty
|
||
|
import Test.Hspec.LeanCheck
|
||
|
import Test.LeanCheck
|
||
|
import Arguments
|
||
|
import ParseCommand
|
||
|
import Renderer
|
||
|
|
||
|
spec :: Spec
|
||
|
spec = parallel $ do
|
||
|
context "parse" $ do
|
||
|
prop "all valid formats should produce output" . forAll (isParseFormat `filterT` tiers) $
|
||
|
\format -> do
|
||
|
output <- parse $ parseArgs ["test/fixtures/ruby/and-or.A.rb"] format
|
||
|
output `shouldNotBe` ""
|
||
|
|
||
|
isParseFormat :: Format -> Bool
|
||
|
isParseFormat a | JSON <- a = True
|
||
|
| SExpression <- a = True
|
||
|
| otherwise = False
|