Forge
csharpdeeb25a2
1using CascadeIDE.Services.MarkdownPreview;
2using Xunit;
3
4namespace CascadeIDE.Tests;
5
6public sealed class MarkdownCodeAnchorPreviewExpanderTests
7{
8 [Fact]
9 public void Expand_turns_bracket_anchor_into_markdown_link()
10 {
11 const string md = "See [F:Features/Chat/Foo.cs M:RunAsync] in prose.";
12 var expanded = MarkdownCodeAnchorPreviewExpander.Expand(md);
13 Assert.Contains("](cascade-code-anchor:", expanded, StringComparison.Ordinal);
14 Assert.Contains("RunAsync", expanded, StringComparison.Ordinal);
15 Assert.DoesNotContain("[F:Features/Chat/Foo.cs M:RunAsync]", expanded, StringComparison.Ordinal);
16 }
17
18 [Fact]
19 public void Expand_skips_fenced_code_and_markdown_links()
20 {
21 const string md = """
22 [ADR](docs/adr/0001.md)
23 ```text
24 [F:Inside/Fence.cs M:No]
25 ```
26 """;
27 var expanded = MarkdownCodeAnchorPreviewExpander.Expand(md);
28 Assert.Contains("[ADR](docs/adr/0001.md)", expanded, StringComparison.Ordinal);
29 Assert.Contains("[F:Inside/Fence.cs M:No]", expanded, StringComparison.Ordinal);
30 }
31}
32
View only · write via MCP/CIDE