summaryrefslogtreecommitdiff
path: root/test/lua/module
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2022-01-04 10:38:02 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2022-01-04 11:55:59 -0800
commit1f8638fb5410c1ec1710a610a178376143cab311 (patch)
treefca15186c0a001964a20591f2407f2b48189dfd3 /test/lua/module
parent974a9d353a91c4a23a92d82d0d5a92b55018e086 (diff)
Lua: add `pandoc.template` module
The module provides a `compile` function to use strings as templates.
Diffstat (limited to 'test/lua/module')
-rw-r--r--test/lua/module/pandoc-template.lua65
-rw-r--r--test/lua/module/partial.test0
2 files changed, 65 insertions, 0 deletions
diff --git a/test/lua/module/pandoc-template.lua b/test/lua/module/pandoc-template.lua
new file mode 100644
index 000000000..c288b2016
--- /dev/null
+++ b/test/lua/module/pandoc-template.lua
@@ -0,0 +1,65 @@
+local tasty = require 'tasty'
+local template = require 'pandoc.template'
+
+local assert = tasty.assert
+local test = tasty.test_case
+local group = tasty.test_group
+
+return {
+ test('is table', function ()
+ assert.are_equal(type(template), 'table')
+ end),
+ group 'default' {
+ test('is function', function ()
+ assert.are_equal(type(template.default), 'function')
+ end),
+ test('returns a string for known format', function ()
+ assert.are_equal(
+ pandoc.utils.type(template.default 'json'),
+ 'string'
+ )
+ assert.are_equal(
+ pandoc.utils.type(template.default 'markdown'),
+ 'string'
+ )
+ end),
+ test('fails on unknown format', function ()
+ local success, msg = pcall(function ()
+ return pandoc.utils.type(template.default 'nosuchformat')
+ end)
+ assert.is_falsy(success)
+ end),
+ },
+ group 'compile' {
+ test('is function', function ()
+ assert.are_equal(type(template.compile), 'function')
+ end),
+ test('returns a Template', function ()
+ assert.are_equal(
+ pandoc.utils.type(template.compile('$title$')),
+ 'pandoc Template'
+ )
+ end),
+ test('returns a Template', function ()
+ local templ_path = pandoc.path.join{'lua', 'module', 'default.test'}
+ assert.are_equal(
+ pandoc.utils.type(template.compile('${ partial() }', templ_path)),
+ 'pandoc Template'
+ )
+ end),
+ test('fails if template has non-existing partial', function ()
+ assert.error_matches(
+ function () return template.compile('${ nosuchpartial() }') end,
+ 'PandocCouldNotFindDataFileError'
+ )
+ end),
+ test('works with default template that uses partials', function ()
+ local jats_template = template.default 'jats'
+ assert.are_equal(type(jats_template), 'string')
+ assert.are_equal(
+ pandoc.utils.type(template.compile(jats_template)),
+ 'pandoc Template'
+ )
+ end),
+ },
+}
diff --git a/test/lua/module/partial.test b/test/lua/module/partial.test
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/test/lua/module/partial.test