fix(tickets): convert ticket HTML to markdown on import

This commit is contained in:
mika kuns
2026-09-30 08:39:17 +02:00
parent ccd11a8033
commit 27d2b1d8ef
2 changed files with 71 additions and 3 deletions
@@ -0,0 +1,30 @@
using ClaudeDo.Worker.Tickets;
namespace ClaudeDo.Worker.Tests.Tickets;
public sealed class TicketHtmlToMarkdownTests
{
[Fact]
public void Paragraphs_breaks_and_entities_become_markdown_paragraphs()
{
var md = TicketImportService.HtmlToMarkdown(
"<p>Lager -&gt; Adressprüfung&nbsp;aus</p>Zeile 1<br>Zeile 2<div><br></div><div>Ende</div>");
Assert.Equal("Lager -> Adressprüfung aus\n\nZeile 1\n\nZeile 2\n\nEnde", md);
}
[Fact]
public void Lists_and_inline_formatting_map_to_the_MarkdownView_subset()
{
var md = TicketImportService.HtmlToMarkdown(
"<p>Offene Punkte:</p><ul><li class=\"MsoNormal\"><b>Band</b> sync</li><li>Waage</li></ul>" +
"<ol><li>Erst</li><li><em>Dann</em></li></ol><a href=\"http://x\">Link</a>");
Assert.Equal(
"Offene Punkte:\n\n- **Band** sync\n- Waage\n\n1. Erst\n2. *Dann*\n\nLink (http://x)", md);
}
[Fact]
public void Plain_text_passes_through()
=> Assert.Equal("Ticket ohne HTML", TicketImportService.HtmlToMarkdown(" Ticket ohne HTML "));
}