using ClaudeDo.Ui.Views.Controls; using Xunit; namespace ClaudeDo.Ui.Tests.Views; /// /// Covers the command-row split only — rendering itself needs an Avalonia app, which this /// project has no host for. /// public class MarkdownCommandRowTests { [Theory] [InlineData("`git status -sb` — Kurzstatus mit Branch-Zeile", "git status -sb", "Kurzstatus mit Branch-Zeile")] [InlineData("`git branch -d ` — löschen (`-D` erzwingt)", "git branch -d ", "löschen (`-D` erzwingt)")] [InlineData("`dotnet build`", "dotnet build", "")] public void SplitsCommandFromDescription(string line, string cmd, string desc) { Assert.True(MarkdownView.TrySplitCommand(line, out var actualCmd, out var actualDesc)); Assert.Equal(cmd, actualCmd); Assert.Equal(desc, actualDesc); } [Theory] [InlineData("Prosa ohne Befehl")] [InlineData("Text mit `code` in der Mitte")] [InlineData("`unclosed backtick")] [InlineData("``")] public void LeavesNonCommandBulletsToThePlainRenderer(string line) { Assert.False(MarkdownView.TrySplitCommand(line, out _, out _)); } }