#+test package markdown import "core:strings" import "core:testing" @(test) test_single_entry :: proc(t: ^testing.T) { input := "term\n\n: definition" result := convert_deflists(input, context.temp_allocator) expected := "
term
definition
" testing.expect_value(t, result, expected) } @(test) test_single_entry_no_blank :: proc(t: ^testing.T) { input := "term\n: definition" result := convert_deflists(input, context.temp_allocator) expected := "
term
definition
" testing.expect_value(t, result, expected) } @(test) test_indented_variant :: proc(t: ^testing.T) { input := " term\n : definition" result := convert_deflists(input, context.temp_allocator) expected := "
term
definition
" testing.expect_value(t, result, expected) } @(test) test_multiple_entries :: proc(t: ^testing.T) { input := "t1\n\n: d1\n\nt2\n\n: d2" result := convert_deflists(input, context.temp_allocator) expected := "
t1
d1
t2
d2
" testing.expect_value(t, result, expected) } @(test) test_mixed_indented_and_non_indented :: proc(t: ^testing.T) { input := "t1\n\n: d1\n\n t2\n : d2\n\nt3\n\n: d3" result := convert_deflists(input, context.temp_allocator) expected := "
t1
d1
t2
d2
t3
d3
" testing.expect_value(t, result, expected) } @(test) test_inline_markdown_in_term :: proc(t: ^testing.T) { input := "`code`\n\n: def" result := convert_deflists(input, context.temp_allocator) expected := "
code
def
" testing.expect_value(t, result, expected) } @(test) test_inline_markdown_in_definition :: proc(t: ^testing.T) { input := "term\n\n: see [Content](#content) here" result := convert_deflists(input, context.temp_allocator) testing.expect(t, strings.contains(result, `Content`)) testing.expect(t, strings.contains(result, "
see ")) testing.expect(t, strings.contains(result, "
")) } @(test) test_regular_text_passes_through :: proc(t: ^testing.T) { input := "This is: not a deflist" result := convert_deflists(input, context.temp_allocator) testing.expect_value(t, result, input) } @(test) test_colon_inside_paragraph_no_false_positive :: proc(t: ^testing.T) { input := "First paragraph.\n\nSecond paragraph." result := convert_deflists(input, context.temp_allocator) testing.expect_value(t, result, input) } @(test) test_deflist_between_paragraphs :: proc(t: ^testing.T) { input := "Before.\n\nterm\n\n: def\n\nAfter." result := convert_deflists(input, context.temp_allocator) testing.expect(t, strings.has_prefix(result, "Before.")) testing.expect(t, strings.contains(result, "
term
def
")) testing.expect(t, strings.has_suffix(result, "After.")) } @(test) test_empty_body :: proc(t: ^testing.T) { result := convert_deflists("", context.temp_allocator) testing.expect_value(t, result, "") } @(test) test_docs_md_pattern :: proc(t: ^testing.T) { input := "content\n\n: `content` holds your pages.\n\n assets\n : `assets` contains files." result := convert_deflists(input, context.temp_allocator) testing.expect(t, strings.contains(result, "
")) testing.expect(t, strings.contains(result, "
content
")) testing.expect(t, strings.contains(result, "
assets
")) testing.expect(t, strings.contains(result, "content")) testing.expect(t, strings.contains(result, "assets")) testing.expect(t, strings.contains(result, "
")) }