summaryrefslogtreecommitdiff
path: root/pandoc-lua-engine/test/Tests
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2022-10-12 21:37:47 +0200
committerJohn MacFarlane <jgm@berkeley.edu>2022-10-14 10:37:37 -0700
commit8900b0f953798b01087e0135a3a9708a95eb7fde (patch)
treeb7221db3118cff0d81daf9282aa33c05536631f6 /pandoc-lua-engine/test/Tests
parent06ba4e9788eb5d53d566c01ad8e24aa91e104a74 (diff)
Lua: Support built-in default templates for custom writers
Custom writers can define a default template via a global `Template` function; the data directory is no longer searched for a default template. Writer authors can restore the old lookup behavior with ``` lua Template = function () local template return template.compile(template.default(PANDOC_SCRIPT_FILE)) end ```
Diffstat (limited to 'pandoc-lua-engine/test/Tests')
-rw-r--r--pandoc-lua-engine/test/Tests/Lua/Writer.hs23
1 files changed, 17 insertions, 6 deletions
diff --git a/pandoc-lua-engine/test/Tests/Lua/Writer.hs b/pandoc-lua-engine/test/Tests/Lua/Writer.hs
index 8b6e82816..18274d124 100644
--- a/pandoc-lua-engine/test/Tests/Lua/Writer.hs
+++ b/pandoc-lua-engine/test/Tests/Lua/Writer.hs
@@ -35,7 +35,7 @@ tests =
source <- UTF8.toText <$> readFileStrict "testsuite.native"
doc <- readNative def source
txt <- writeCustom "sample.lua" >>= \case
- (TextWriter f, _) -> f def doc
+ (TextWriter f, _, _) -> f def doc
_ -> error "Expected a text writer"
pure $ BL.fromStrict (UTF8.fromText txt))
@@ -45,23 +45,34 @@ tests =
source <- UTF8.toText <$> readFileStrict "tables.native"
doc <- readNative def source
txt <- writeCustom "sample.lua" >>= \case
- (TextWriter f, _) -> f def doc
+ (TextWriter f, _, _) -> f def doc
_ -> error "Expected a text writer"
pure $ BL.fromStrict (UTF8.fromText txt))
- , goldenVsString "tables testsuite"
+ , goldenVsString "bytestring writer"
"bytestring.bin"
(runIOorExplode $ do
txt <- writeCustom "bytestring.lua" >>= \case
- (ByteStringWriter f, _) -> f def mempty
+ (ByteStringWriter f, _, _) -> f def mempty
_ -> error "Expected a bytestring writer"
pure txt)
+ , goldenVsString "template"
+ "writer-template.out.txt"
+ (runIOorExplode $ do
+ txt <- writeCustom "writer-template.lua" >>= \case
+ (TextWriter f, _, mt) -> do
+ template <- mt
+ let opts = def{ writerTemplate = Just template }
+ f opts (B.doc (B.plain (B.str "body goes here")))
+ _ -> error "Expected a text writer"
+ pure $ BL.fromStrict (UTF8.fromText txt))
+
, testCase "preset extensions" $ do
let ediff = ExtensionsDiff{extsToEnable = [], extsToDisable = []}
let format = FlavoredFormat "extensions.lua" ediff
result <- runIOorExplode $ writeCustom "extensions.lua" >>= \case
- (TextWriter write, extsConf) -> do
+ (TextWriter write, extsConf, _) -> do
exts <- applyExtensionsDiff extsConf format
write def{writerExtensions = exts} (B.doc mempty)
_ -> error "Expected a text writer"
@@ -73,7 +84,7 @@ tests =
}
let format = FlavoredFormat "extensions.lua" ediff
result <- runIOorExplode $ writeCustom "extensions.lua" >>= \case
- (TextWriter write, extsConf) -> do
+ (TextWriter write, extsConf, _) -> do
exts <- applyExtensionsDiff extsConf format
write def{writerExtensions = exts} (B.doc mempty)
_ -> error "Expected a text writer"