-- | Functions to facilitate automated and manual testing.
module Text.Docvim.Util ( compileUnit
, p
+ , parseUnit
, pm
, pp
, ppm
import Text.Parsec
import Text.Show.Pretty
+-- | Parse a string containing a translation unit.
+parseUnit :: String -> Either ParseError Node
+parseUnit input = runParser unit () "(eval)" input
+
-- | Parse and compile a string containing a translation unit.
compileUnit :: String -> Either ParseError Node
compileUnit input = do
- parsed <- runParser unit () "(eval)" input
+ parsed <- parseUnit input
return $ compile [parsed]
-- | Convenience function: Parse and compile a string containing a translation
in symbols
]
-goldenTests :: String -> [FilePath] -> (String -> String) -> TestTree
+goldenTests :: String -> [[FilePath]] -> (String -> String) -> TestTree
goldenTests description sources transform = testGroup groupName $ do
- file <- sources -- list monad
+ files <- sources -- list monad
+ file <- files
let
run = do
input <- readFile file
vimHelpSources <- getFixtures "tests/fixtures/vim"
defaultMain $ testGroup "Test suite"
[ unitTests
- , goldenTests "parser" parserSources p
- , goldenTests "Markdown printer" markdownSources pm
- , goldenTests "Vim help printer" vimHelpSources pv
+ , goldenTests "parser" [parserSources] p
+ , goldenTests "Markdown printer" [markdownSources] pm
+ , goldenTests "Vim help printer" [vimHelpSources] pv
]