59 lines
1.6 KiB
Lua
59 lines
1.6 KiB
Lua
|
local tasty = require 'tasty'
|
||
|
|
||
|
local test = tasty.test_case
|
||
|
local group = tasty.test_group
|
||
|
local assert = tasty.assert
|
||
|
|
||
|
function os_is_windows ()
|
||
|
return package.config:sub(1,1) == '\\'
|
||
|
end
|
||
|
|
||
|
return {
|
||
|
group 'pipe' {
|
||
|
test('external string processing', function ()
|
||
|
if os_is_windows() then
|
||
|
local pipe_result = pandoc.pipe('find', {'hi'}, 'hi')
|
||
|
assert.are_equal('hi', pipe_result:match '%a+')
|
||
|
else
|
||
|
local pipe_result = pandoc.pipe('tr', {'a', 'b'}, 'abc')
|
||
|
assert.are_equal('bbc', pipe_result:match '%a+')
|
||
|
end
|
||
|
end),
|
||
|
test('failing pipe', function ()
|
||
|
if os_is_windows() then
|
||
|
local success, err = pcall(pandoc.pipe, 'find', {'/a'}, 'hi')
|
||
|
assert.is_falsy(success)
|
||
|
assert.are_equal('find', err.command)
|
||
|
assert.is_truthy(err.error_code ~= 0)
|
||
|
else
|
||
|
local success, err = pcall(pandoc.pipe, 'false', {}, 'abc')
|
||
|
assert.is_falsy(success)
|
||
|
assert.are_equal('false', err.command)
|
||
|
assert.are_equal(1, err.error_code)
|
||
|
assert.are_equal('', err.output)
|
||
|
end
|
||
|
end)
|
||
|
},
|
||
|
|
||
|
group 'read' {
|
||
|
test('Markdown', function ()
|
||
|
local valid_markdown = '*Hello*, World!\n'
|
||
|
local expected = pandoc.Pandoc({
|
||
|
pandoc.Para {
|
||
|
pandoc.Emph { pandoc.Str 'Hello' },
|
||
|
pandoc.Str ',',
|
||
|
pandoc.Space(),
|
||
|
pandoc.Str 'World!'
|
||
|
}
|
||
|
})
|
||
|
assert.are_same(expected, pandoc.read(valid_markdown))
|
||
|
end),
|
||
|
test('failing read', function ()
|
||
|
assert.error_matches(
|
||
|
function () pandoc.read('foo', 'nosuchreader') end,
|
||
|
'Unknown reader: nosuchreader'
|
||
|
)
|
||
|
end)
|
||
|
},
|
||
|
}
|