Skip to content

Commit 1a73fa4

Browse files
chore(tests): update unit testing
1 parent b8e26f3 commit 1a73fa4

15 files changed

+784
-891
lines changed

doc/render-markdown.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*render-markdown.txt* For 0.10.0 Last change: 2025 March 10
1+
*render-markdown.txt* For 0.10.0 Last change: 2025 March 11
22

33
==============================================================================
44
Table of Contents *render-markdown-table-of-contents*

tests/ad_hoc_spec.lua

Lines changed: 32 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -15,94 +15,59 @@ local function setext_heading(start_row, end_row, level)
1515
local row_background_mark = vim.deepcopy(background_mark)
1616
row_background_mark.row = { row, row + 1 }
1717
vim.list_extend(result, {
18-
{
19-
row = { row, row },
20-
col = { 0, 0 },
21-
virt_text = { { row == start_row and vim.trim(icon) .. ' ' or ' ', highlight } },
22-
virt_text_pos = 'inline',
23-
},
18+
util.inline(row, { 0, 0 }, { row == start_row and vim.trim(icon) .. ' ' or ' ', highlight }),
2419
row_background_mark,
2520
})
2621
end
2722
table.insert(result, 2, sign_mark)
28-
table.insert(result, #result, util.conceal(end_row, 0, 3))
23+
table.insert(result, #result, util.conceal(end_row, { 0, 3 }))
2924
return result
3025
end
3126

32-
---@param row integer
33-
---@param start_col integer
34-
---@param end_col integer
35-
---@param text string
36-
---@param highlight 'Link'|'WikiLink'
37-
---@param conceal? string
38-
---@return render.md.MarkInfo
39-
local function link(row, start_col, end_col, text, highlight, conceal)
40-
---@type render.md.MarkInfo
41-
return {
42-
row = { row, row },
43-
col = { start_col, end_col },
44-
virt_text = { { text, util.hl(highlight) } },
45-
virt_text_pos = 'inline',
46-
conceal = conceal,
47-
}
48-
end
49-
5027
describe('ad_hoc.md', function()
5128
it('custom', function()
5229
util.setup('tests/data/ad_hoc.md')
5330

54-
local expected, row = {}, util.row()
31+
local marks, row = util.marks(), util.row()
5532

56-
vim.list_extend(expected, util.heading(row:get(), 1))
33+
marks:extend(util.heading(row:get(), 1))
5734

58-
vim.list_extend(expected, setext_heading(row:increment(2), row:increment(2), 2))
35+
marks:extend(setext_heading(row:inc(2), row:inc(2), 2))
5936

60-
vim.list_extend(expected, { util.bullet(row:increment(2), 0, 1) })
37+
marks:add(util.bullet(row:inc(2), 0, 1))
6138

62-
vim.list_extend(expected, {
63-
util.bullet(row:increment(), 0, 1),
64-
util.conceal(row:get(), 2, 3),
65-
link(row:get(), 3, 14, '󱗖 ', 'WikiLink', nil),
66-
util.conceal(row:get(), 14, 15),
67-
})
39+
marks:add(util.bullet(row:inc(), 0, 1))
40+
marks:add(util.conceal(row:get(), { 2, 3 }))
41+
marks:add(util.inline(row:get(), { 3, 14 }, { '󱗖 ', 'RenderMarkdownWikiLink' }))
42+
marks:add(util.conceal(row:get(), { 14, 15 }))
6843

69-
vim.list_extend(expected, {
70-
util.bullet(row:increment(), 0, 1),
71-
util.conceal(row:get(), 2, 3),
72-
link(row:get(), 3, 24, '󱗖 ', 'WikiLink', nil),
73-
util.conceal(row:get(), 4, 13),
74-
util.conceal(row:get(), 24, 25),
75-
})
44+
marks:add(util.bullet(row:inc(), 0, 1))
45+
marks:add(util.conceal(row:get(), { 2, 3 }))
46+
marks:add(util.inline(row:get(), { 3, 24 }, { '󱗖 ', 'RenderMarkdownWikiLink' }))
47+
marks:add(util.conceal(row:get(), { 4, 13 }))
48+
marks:add(util.conceal(row:get(), { 24, 25 }))
7649

77-
vim.list_extend(expected, {
78-
util.bullet(row:increment(), 0, 1),
79-
util.conceal(row:get(), 2, 3),
80-
link(row:get(), 2, 20, '󰀓 ', 'Link', nil),
81-
util.highlight(row:get(), 2, 20, 'Link'),
82-
util.conceal(row:get(), 19, 20),
83-
})
50+
marks:add(util.bullet(row:inc(), 0, 1))
51+
marks:add(util.conceal(row:get(), { 2, 3 }))
52+
marks:add(util.inline(row:get(), { 2, 20 }, { '󰀓 ', 'RenderMarkdownLink' }))
53+
marks:add(util.highlight(row:get(), { 2, 20 }, 'link'))
54+
marks:add(util.conceal(row:get(), { 19, 20 }))
8455

85-
vim.list_extend(expected, {
86-
util.bullet(row:increment(), 0, 1),
87-
util.conceal(row:get(), 2, 3),
88-
link(row:get(), 2, 26, '󰊤 ', 'Link', nil),
89-
util.highlight(row:get(), 2, 26, 'Link'),
90-
util.conceal(row:get(), 25, 26),
91-
})
56+
marks:add(util.bullet(row:inc(), 0, 1))
57+
marks:add(util.conceal(row:get(), { 2, 3 }))
58+
marks:add(util.inline(row:get(), { 2, 26 }, { '󰊤 ', 'RenderMarkdownLink' }))
59+
marks:add(util.highlight(row:get(), { 2, 26 }, 'link'))
60+
marks:add(util.conceal(row:get(), { 25, 26 }))
9261

93-
vim.list_extend(expected, {
94-
util.bullet(row:increment(), 0, 1),
95-
link(row:get(), 2, 61, '󰗃 ', 'Link', nil),
96-
})
62+
marks:add(util.bullet(row:inc(), 0, 1))
63+
marks:add(util.inline(row:get(), { 2, 61 }, { '󰗃 ', 'RenderMarkdownLink' }))
9764

98-
vim.list_extend(expected, {
99-
util.bullet(row:increment(), 0, 1),
100-
link(row:get(), 16, 25, '¹ ᴵⁿᶠᵒ', 'Link', ''),
101-
util.conceal(row:increment(2), 0, 16),
102-
link(row:increment(2), 0, 9, '¹ ᴵⁿᶠᵒ', 'Link', ''),
103-
})
65+
marks:add(util.bullet(row:inc(), 0, 1))
66+
marks:add(util.inline(row:get(), { 16, 25 }, { '¹ ᴵⁿᶠᵒ', 'RenderMarkdownLink' }, ''))
67+
marks:add(util.conceal(row:inc(2), { 0, 16 }))
68+
marks:add(util.inline(row:inc(2), { 0, 9 }, { '¹ ᴵⁿᶠᵒ', 'RenderMarkdownLink' }, ''))
10469

105-
util.assert_view(expected, {
70+
util.assert_view(marks, {
10671
'󰫎 1 󰲡 Heading',
10772
' 2',
10873
'󰫎 3 󰲣 Heading 2 Line 1',

tests/box_dash_quote_spec.lua

Lines changed: 13 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,28 @@
22

33
local util = require('tests.util')
44

5-
---@param row integer
6-
---@param icon string
7-
---@param highlight string
8-
---@return render.md.MarkInfo[]
9-
local function checkbox(row, icon, highlight)
10-
---@type render.md.MarkInfo
11-
local checkbox_mark = {
12-
row = { row, row },
13-
col = { 2, 5 },
14-
virt_text = { { icon, util.hl(highlight) } },
15-
virt_text_pos = 'inline',
16-
conceal = '',
17-
}
18-
return { util.conceal(row, 0, 2), checkbox_mark }
19-
end
20-
21-
---@param row integer
22-
---@return render.md.MarkInfo
23-
local function dash(row)
24-
---@type render.md.MarkInfo
25-
return {
26-
row = { row },
27-
col = { 0 },
28-
virt_text = { { string.rep('', vim.o.columns), util.hl('Dash') } },
29-
virt_text_pos = 'overlay',
30-
}
31-
end
32-
335
describe('box_dash_quote.md', function()
346
it('default', function()
357
util.setup('demo/box_dash_quote.md')
368

37-
local expected, row = {}, util.row()
9+
local marks, row = util.marks(), util.row()
3810

39-
vim.list_extend(expected, util.heading(row:get(), 1))
11+
marks:extend(util.heading(row:get(), 1))
4012

41-
vim.list_extend(expected, {
42-
checkbox(row:increment(2), '󰄱 ', 'Unchecked'),
43-
checkbox(row:increment(), '󰱒 ', 'Checked'),
44-
checkbox(row:increment(), '󰥔 ', 'Todo'),
45-
util.bullet(row:increment(), 0, 1),
46-
})
13+
marks:add(util.conceal(row:inc(2), { 0, 2 }))
14+
marks:add(util.inline(row:get(), { 2, 5 }, { '󰄱 ', 'RenderMarkdownUnchecked' }, ''))
15+
marks:add(util.conceal(row:inc(), { 0, 2 }))
16+
marks:add(util.inline(row:get(), { 2, 5 }, { '󰱒 ', 'RenderMarkdownChecked' }, ''))
17+
marks:add(util.conceal(row:inc(), { 0, 2 }))
18+
marks:add(util.inline(row:get(), { 2, 5 }, { '󰥔 ', 'RenderMarkdownTodo' }, ''))
19+
marks:add(util.bullet(row:inc(), 0, 1))
4720

48-
table.insert(expected, dash(row:increment(2)))
21+
marks:add(util.overlay(row:inc(2), { 0 }, { string.rep('', vim.o.columns), 'RenderMarkdownDash' }))
4922

50-
vim.list_extend(expected, {
51-
util.quote(row:increment(2), ' %s ', 'Quote'),
52-
util.quote(row:increment(), ' %s ', 'Quote'),
53-
})
23+
marks:add(util.quote(row:inc(2), ' %s ', 'RenderMarkdownQuote'))
24+
marks:add(util.quote(row:inc(), ' %s ', 'RenderMarkdownQuote'))
5425

55-
util.assert_view(expected, {
26+
util.assert_view(marks, {
5627
'󰫎 1 󰲡 Checkbox / Dash / Quote',
5728
' 2',
5829
' 3 󰄱 Unchecked Checkbox',

tests/callout_spec.lua

Lines changed: 41 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -2,87 +2,58 @@
22

33
local util = require('tests.util')
44

5-
---@param row integer
6-
---@param start_col integer
7-
---@param end_col integer
8-
---@param text string
9-
---@param highlight string
10-
---@param conceal string?
11-
---@return render.md.MarkInfo
12-
local function callout(row, start_col, end_col, text, highlight, conceal)
13-
---@type render.md.MarkInfo
14-
return {
15-
row = { row, row },
16-
col = { start_col, end_col },
17-
virt_text = { { text, util.hl(highlight) } },
18-
virt_text_pos = 'overlay',
19-
conceal = conceal,
20-
}
21-
end
22-
235
describe('callout.md', function()
246
it('default', function()
257
util.setup('demo/callout.md')
268

27-
local expected, row = {}, util.row()
9+
local marks, row = util.marks(), util.row()
2810

29-
local info = 'Info'
30-
vim.list_extend(expected, {
31-
util.heading(row:get(), 1),
32-
util.quote(row:increment(2), '%s ', info),
33-
callout(row:get(), 2, 9, '󰋽 Note', info),
34-
util.quote(row:increment(), '%s', info),
35-
util.quote(row:increment(), '%s ', info),
36-
util.quote(row:increment(), '%s', info),
37-
util.quote(row:increment(), '%s ', info),
38-
})
11+
local info = 'RenderMarkdownInfo'
12+
marks:extend(util.heading(row:get(), 1))
13+
marks:add(util.quote(row:inc(2), '%s ', info))
14+
marks:add(util.overlay(row:get(), { 2, 9 }, { '󰋽 Note', info }))
15+
marks:add(util.quote(row:inc(), '%s', info))
16+
marks:add(util.quote(row:inc(), '%s ', info))
17+
marks:add(util.quote(row:inc(), '%s', info))
18+
marks:add(util.quote(row:inc(), '%s ', info))
3919

40-
local ok = 'Success'
41-
vim.list_extend(expected, {
42-
util.heading(row:increment(2), 1),
43-
util.quote(row:increment(2), '%s ', ok),
44-
callout(row:get(), 2, 8, '󰌶 Tip', ok),
45-
util.quote(row:increment(), '%s', ok),
46-
util.quote(row:increment(), '%s ', ok),
47-
util.code_language(row:get(), 2, 'lua'),
48-
util.quote(row:increment(), '%s ', ok),
49-
util.code_row(row:get(), 2),
50-
util.quote(row:increment(), '%s ', ok),
51-
util.code_border(row:get(), 2, false),
52-
})
20+
local ok = 'RenderMarkdownSuccess'
21+
marks:extend(util.heading(row:inc(2), 1))
22+
marks:add(util.quote(row:inc(2), '%s ', ok))
23+
marks:add(util.overlay(row:get(), { 2, 8 }, { '󰌶 Tip', ok }))
24+
marks:add(util.quote(row:inc(), '%s', ok))
25+
marks:add(util.quote(row:inc(), '%s ', ok))
26+
marks:extend(util.code_language(row:get(), 2, 'lua'))
27+
marks:add(util.code_row(row:get(), 2))
28+
marks:add(util.quote(row:inc(), '%s ', ok))
29+
marks:add(util.code_row(row:get(), 2))
30+
marks:add(util.quote(row:inc(), '%s ', ok))
31+
marks:add(util.code_border(row:get(), 2, false))
5332

54-
local hint = 'Hint'
55-
vim.list_extend(expected, {
56-
util.heading(row:increment(2), 1),
57-
util.quote(row:increment(2), '%s ', hint),
58-
callout(row:get(), 2, 14, '󰅾 Important', hint),
59-
util.quote(row:increment(1), '%s ', hint),
60-
})
33+
local hint = 'RenderMarkdownHint'
34+
marks:extend(util.heading(row:inc(2), 1))
35+
marks:add(util.quote(row:inc(2), '%s ', hint))
36+
marks:add(util.overlay(row:get(), { 2, 14 }, { '󰅾 Important', hint }))
37+
marks:add(util.quote(row:inc(), '%s ', hint))
6138

62-
local warn = 'Warn'
63-
vim.list_extend(expected, {
64-
util.heading(row:increment(2), 1),
65-
util.quote(row:increment(2), '%s ', warn),
66-
callout(row:get(), 2, 12, '󰀪 Custom Title', warn, ''),
67-
util.quote(row:increment(), '%s ', warn),
68-
})
39+
local warn = 'RenderMarkdownWarn'
40+
marks:extend(util.heading(row:inc(2), 1))
41+
marks:add(util.quote(row:inc(2), '%s ', warn))
42+
marks:add(util.overlay(row:get(), { 2, 12 }, { '󰀪 Custom Title', warn }, ''))
43+
marks:add(util.quote(row:inc(), '%s ', warn))
6944

70-
local error = 'Error'
71-
vim.list_extend(expected, {
72-
util.heading(row:increment(2), 1),
73-
util.quote(row:increment(2), '%s ', error),
74-
callout(row:get(), 2, 12, '󰳦 Caution', error),
75-
util.quote(row:increment(), '%s ', error),
76-
})
45+
local err = 'RenderMarkdownError'
46+
marks:extend(util.heading(row:inc(2), 1))
47+
marks:add(util.quote(row:inc(2), '%s ', err))
48+
marks:add(util.overlay(row:get(), { 2, 12 }, { '󰳦 Caution', err }))
49+
marks:add(util.quote(row:inc(), '%s ', err))
7750

78-
vim.list_extend(expected, {
79-
util.heading(row:increment(2), 1),
80-
util.quote(row:increment(2), '%s ', error),
81-
callout(row:get(), 2, 8, '󰨰 Bug', error),
82-
util.quote(row:increment(), '%s ', error),
83-
})
51+
marks:extend(util.heading(row:inc(2), 1))
52+
marks:add(util.quote(row:inc(2), '%s ', err))
53+
marks:add(util.overlay(row:get(), { 2, 8 }, { '󰨰 Bug', err }))
54+
marks:add(util.quote(row:inc(), '%s ', err))
8455

85-
util.assert_view(expected, {
56+
util.assert_view(marks, {
8657
'󰫎 1 󰲡 Note',
8758
' 2',
8859
' 3 ▋ 󰋽 Note',

0 commit comments

Comments
 (0)