using Markdig.Syntax; using Xunit; namespace XFESystem.Documents.Tests; public sealed class MarkdownRendererTests { private readonly MarkdownRenderer _renderer = new(); [Fact] public void WebsitePipelineRendersHeadingsTablesAndFencedCode() { var html = _renderer.RenderHtml("# Notes\n\n| A | B |\n|---|---|\n| 1 | 2 |\n\n```js\nconsole.log('Hello');\n```\n"); Assert.Contains("id=\"notes\"", html); Assert.Contains("", html); Assert.Contains("language-js", html); Assert.IsType(_renderer.Parse("# Test")[0]); } [Fact] public void WebsiteSanitizationRemovesScriptEventsAndDangerousLinks() { var html = _renderer.RenderHtml("Link"); Assert.DoesNotContain("More

Content

"); Assert.Contains(" Assert.Empty(_renderer.RenderHtml(text)); [Fact] public async Task ConcurrentDocumentsDoNotShareSanitizerMutation() { var results = await Task.WhenAll(Enumerable.Range(0, 32).Select(index => Task.Run(() => _renderer.RenderHtml($"# Document {index}\n")))); for (var index = 0; index < results.Length; index++) { Assert.Contains($"Document {index}", results[index]); Assert.DoesNotContain("