git.iko.soy/typeable/pandoc
on 167e52a help sign in
58 lines 1.7 kB history raw
1local tasty = require 'tasty'
3local test = tasty.test_case
4local group = tasty.test_group
5local assert = tasty.assert
7function os_is_windows ()
8 return package.config:sub(1,1) == '\\'
9end
11return {
12 group 'pipe' {
13 test('external string processing', function ()
14 if os_is_windows() then
15 local pipe_result = pandoc.pipe('find', {'hi'}, 'hi')
16 assert.are_equal('hi', pipe_result:match '%a+')
17 else
18 local pipe_result = pandoc.pipe('tr', {'a', 'b'}, 'abc')
19 assert.are_equal('bbc', pipe_result:match '%a+')
20 end
21 end),
22 test('failing pipe', function ()
23 if os_is_windows() then
24 local success, err = pcall(pandoc.pipe, 'find', {'/a'}, 'hi')
25 assert.is_falsy(success)
26 assert.are_equal('find', err.command)
27 assert.is_truthy(err.error_code ~= 0)
28 else
29 local success, err = pcall(pandoc.pipe, 'false', {}, 'abc')
30 assert.is_falsy(success)
31 assert.are_equal('false', err.command)
32 assert.are_equal(1, err.error_code)
33 assert.are_equal('', err.output)
34 end
35 end)
36 },
38 group 'read' {
39 test('Markdown', function ()
40 local valid_markdown = '*Hello*, World!\n'
41 local expected = pandoc.Pandoc({
42 pandoc.Para {
43 pandoc.Emph { pandoc.Str 'Hello' },
44 pandoc.Str ',',
45 pandoc.Space(),
46 pandoc.Str 'World!'
47 }
48 })
49 assert.are_same(expected, pandoc.read(valid_markdown))
50 end),
51 test('failing read', function ()
52 assert.error_matches(
53 function () pandoc.read('foo', 'nosuchreader') end,
54 'Unknown reader: nosuchreader'
55 )
56 end)
57 },