using System.Linq; using ClaudeDo.Ui.ViewModels.Modals; using Xunit; namespace ClaudeDo.Ui.Tests.ViewModels; public class CheatSheetsViewModelTests { [Fact] public void LoadsEverySheetWithTitleFromHeading() { var vm = new CheatSheetsViewModel(); Assert.Equal(6, vm.Sheets.Count); Assert.Equal( ["Git", "Conventional Commits", "Claude CLI", "Claude Konfiguration", "dotnet CLI", "PowerShell"], vm.Sheets.Select(s => s.Title)); // The heading is stripped so the window doesn't render the title twice. Assert.All(vm.Sheets, s => Assert.StartsWith("## ", s.Body)); } [Fact] public void SelectSwitchesSheetAndIgnoresUnknownKeys() { var vm = new CheatSheetsViewModel(); Assert.Equal("git", vm.SelectedSheet!.Key); vm.Select("dotnet-cli"); Assert.Equal("dotnet-cli", vm.SelectedSheet!.Key); vm.Select("nope"); Assert.Equal("dotnet-cli", vm.SelectedSheet!.Key); } }