| File: Markdown\MarkdownHelperTests.cs | Web Access |
| Project: src\tests\Aspire.Dashboard.Tests\Aspire.Dashboard.Tests.csproj (Aspire.Dashboard.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Dashboard.Model.Markdown; using Markdig; using Xunit; namespace Aspire.Dashboard.Tests.Markdown; public class MarkdownHelperTests { [Fact] public void ToHtml_InCompleteDocumentAndSubListDash_NoHeader() { // Arrange var markdown = """ 3. **Waiting Resources:** - """; // Act var html = ToHtml(markdown); // Assert Assert.Equal( """ <ol start="3"> <li><strong>Waiting Resources:</strong></li> </ol> """, html.Trim(), ignoreLineEndingDifferences: true); } [Fact] public void ToHtml_InCompleteDocumentAndInProgressBold_NoHeader() { // Arrange var markdown = """ 3. **Waiting """; // Act var html = ToHtml(markdown); // Assert Assert.Equal( """ <ol start="3"> <li><strong>Waiting</strong></li> </ol> """, html.Trim(), ignoreLineEndingDifferences: true); } [Fact] public void ToHtml_InCompleteDocumentAndStartedBold_NoHeader() { // Arrange var markdown = """ 3. ** """; // Act var html = ToHtml(markdown); // Assert Assert.Equal( """ <ol start="3"> <li></li> </ol> """, html.Trim(), ignoreLineEndingDifferences: true); } [Theory] [InlineData("before [")] [InlineData("before [link")] [InlineData("before [link]")] [InlineData("before [link](http://example.com")] public void ToHtml_InCompleteDocumentAndLinkInProgress_NoLink(string markdown) { // Arrange & Act var html = ToHtml(markdown); // Assert Assert.Equal( """ <p>before </p> """, html.Trim(), ignoreLineEndingDifferences: true); } [Fact] public void ToHtml_InCompleteDocumentAndLinkFinished_Link() { // Arrange var markdown = "before [link](http://example.com)"; // Act var html = ToHtml(markdown); // Assert Assert.Equal( """ <p>before <a href="http://example.com" target="_blank" rel="noopener noreferrer nofollow">link</a></p> """, html.Trim(), ignoreLineEndingDifferences: true); } private static string ToHtml(string markdown) { return MarkdownHelpers.ToHtml(markdown, new MarkdownOptions { Pipeline = new MarkdownPipelineBuilder().Build(), IncompleteDocument = true, AllowedUrlSchemes = null, SuppressSurroundingParagraph = false }); } }