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 _));
}
}