aboutsummaryrefslogtreecommitdiff
path: root/pandoc-lua-engine/test/lua/module/pandoc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pandoc-lua-engine/test/lua/module/pandoc.lua')
-rw-r--r--pandoc-lua-engine/test/lua/module/pandoc.lua69
1 files changed, 68 insertions, 1 deletions
diff --git a/pandoc-lua-engine/test/lua/module/pandoc.lua b/pandoc-lua-engine/test/lua/module/pandoc.lua
index d61bcf3b0..bb02f172b 100644
--- a/pandoc-lua-engine/test/lua/module/pandoc.lua
+++ b/pandoc-lua-engine/test/lua/module/pandoc.lua
@@ -292,7 +292,33 @@ return {
function () pandoc.read('foo', 'nosuchreader') end,
'Unknown input format nosuchreader'
)
- end)
+ end),
+ group 'extensions' {
+ test('string spec', function ()
+ local doc = pandoc.read('"vice versa"', 'markdown-smart')
+ assert.are_equal(doc, pandoc.Pandoc{pandoc.Para '"vice versa"'})
+ end),
+ test('unsupported extension', function ()
+ assert.error_matches(
+ function () pandoc.read('foo', 'gfm+empty_paragraphs') end,
+ 'The extension empty_paragraphs is not supported for gfm'
+ )
+ end),
+ test('unknown extension', function ()
+ local format_spec = { format = 'markdown', extensions = {'nope'}}
+ assert.error_matches(
+ function () pandoc.read('x', format_spec) end,
+ 'The extension nope is not supported for markdown'
+ )
+ end),
+ test('fails on invalid extension', function ()
+ local format_spec = { format = 'markdown', extensions = {'nope'}}
+ assert.error_matches(
+ function () pandoc.read('nu-uh', format_spec) end,
+ 'The extension nope is not supported for markdown'
+ )
+ end),
+ },
},
group 'walk_block' {
@@ -333,6 +359,47 @@ return {
end)
},
+ group 'write' {
+ test('string spec', function ()
+ local doc = pandoc.Pandoc{pandoc.Quoted('DoubleQuote', 'vice versa')}
+ local plain = pandoc.write(doc, 'plain+smart')
+ assert.are_equal(plain, '"vice versa"\n')
+ end),
+ test('table format spec with extensions list', function ()
+ local doc = pandoc.Pandoc{pandoc.Quoted('DoubleQuote', 'vice versa')}
+ local format_spec = { format = 'plain', extensions = {'smart'}}
+ local plain = pandoc.write(doc, format_spec)
+ assert.are_equal(plain, '"vice versa"\n')
+ end),
+ test('table format spec with `enable`/`disable` diff', function ()
+ local diff = {
+ enable = {'smart'}
+ }
+ local doc = pandoc.Pandoc{pandoc.Quoted('DoubleQuote', 'vice versa')}
+ local format_spec = { format = 'plain', extensions = diff}
+ local plain = pandoc.write(doc, format_spec)
+ assert.are_equal(plain, '"vice versa"\n')
+ end),
+ test('table format spec with set-like diff', function ()
+ local diff = {
+ smart = true,
+ auto_identifiers = false
+ }
+ local doc = pandoc.Pandoc{pandoc.Quoted('DoubleQuote', 'vice versa')}
+ local format_spec = { format = 'plain', extensions = diff}
+ local plain = pandoc.write(doc, format_spec)
+ assert.are_equal(plain, '"vice versa"\n')
+ end),
+ test('fails on invalid extension', function ()
+ local doc = pandoc.Pandoc{'nope'}
+ local format_spec = { format = 'plain', extensions = {'nope'}}
+ assert.error_matches(
+ function () pandoc.write(doc, format_spec) end,
+ 'The extension nope is not supported for plain'
+ )
+ end),
+ },
+
group 'Marshal' {
group 'Inlines' {
test('Strings are broken into words', function ()