File: Utils\MarkdownLinkConverterTests.cs
Web Access
Project: src\tests\Aspire.Cli.Tests\Aspire.Cli.Tests.csproj (Aspire.Cli.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.Cli.Utils.Markdown;
 
namespace Aspire.Cli.Tests.Utils;
 
public class MarkdownLinkConverterTests
{
    [Fact]
    public void ConvertLinksToPlainText_WithBracketedLinkText_ConvertsCorrectly()
    {
        var result = MarkdownLinkConverter.ConvertLinksToPlainText(
            "[CreateBuilder(string[])](https://aspire.dev/reference/api/csharp/aspire.hosting/distributedapplication/methods.md#createbuilder-string)");
 
        Assert.Equal(
            "CreateBuilder(string[]) (https://aspire.dev/reference/api/csharp/aspire.hosting/distributedapplication/methods.md#createbuilder-string)",
            result);
    }
 
    [Theory]
    [InlineData("[ Discord](https://aka.ms/aspire-discord)", "Discord (https://aka.ms/aspire-discord)")]
    [InlineData("[Discord ](https://aka.ms/aspire-discord)", "Discord (https://aka.ms/aspire-discord)")]
    [InlineData("[ GitHub ](https://github.com)", "GitHub (https://github.com)")]
    [InlineData("[no-trim](https://example.com)", "no-trim (https://example.com)")]
    public void ConvertLinksToPlainText_TrimsWhitespaceFromLinkText(string markdown, string expected)
    {
        var result = MarkdownLinkConverter.ConvertLinksToPlainText(markdown);
 
        Assert.Equal(expected, result);
    }
 
    [Fact]
    public void ConvertLinksToPlainText_WithSurroundingText_TrimsWhitespaceFromLinkText()
    {
        var result = MarkdownLinkConverter.ConvertLinksToPlainText(
            "Drop by [ Discord](https://aka.ms/aspire-discord) to chat.");
 
        Assert.Equal("Drop by Discord (https://aka.ms/aspire-discord) to chat.", result);
    }
}