2017-03-20 15:17:03 +01:00
|
|
|
{-# Language OverloadedStrings #-}
|
|
|
|
module Tests.Lua ( tests ) where
|
|
|
|
|
|
|
|
import System.FilePath ((</>))
|
|
|
|
import Test.Tasty (TestTree)
|
|
|
|
import Test.Tasty.HUnit (Assertion, assertEqual, testCase)
|
|
|
|
import Text.Pandoc.Builder
|
|
|
|
import Text.Pandoc.Lua
|
|
|
|
|
|
|
|
tests :: [TestTree]
|
|
|
|
tests =
|
|
|
|
[ testCase "macro expansion via filter" $
|
|
|
|
assertFilterConversion "a '{{helloworld}}' string is expanded"
|
|
|
|
"strmacro.lua"
|
|
|
|
(doc . para $ str "{{helloworld}}")
|
|
|
|
(doc . para . emph $ str "Hello, World")
|
|
|
|
|
|
|
|
, testCase "convert all plains to paras" $
|
|
|
|
assertFilterConversion "plains become para"
|
|
|
|
"plain-to-para.lua"
|
|
|
|
(doc $ bulletList [plain (str "alfa"), plain (str "bravo")])
|
|
|
|
(doc $ bulletList [para (str "alfa"), para (str "bravo")])
|
|
|
|
|
|
|
|
, testCase "make hello world document" $
|
|
|
|
assertFilterConversion "Document contains 'Hello, World!'"
|
|
|
|
"hello-world-doc.lua"
|
|
|
|
(doc . para $ str "Hey!" <> linebreak <> str "What's up?")
|
|
|
|
(doc . para $ str "Hello," <> space <> str "World!")
|
2017-04-02 17:21:22 +02:00
|
|
|
|
|
|
|
, testCase "parse raw markdown blocks" $
|
|
|
|
assertFilterConversion "raw markdown block is converted"
|
|
|
|
"markdown-reader.lua"
|
|
|
|
(doc $ rawBlock "markdown" "*charly* **delta**")
|
|
|
|
(doc . para $ emph "charly" <> space <> strong "delta")
|
2017-03-20 15:17:03 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
assertFilterConversion :: String -> FilePath -> Pandoc -> Pandoc -> Assertion
|
|
|
|
assertFilterConversion msg filterPath docIn docExpected = do
|
|
|
|
docRes <- runLuaFilter ("lua" </> filterPath) [] docIn
|
|
|
|
assertEqual msg docExpected docRes
|