using ClaudeDo.Installer.Core; using ClaudeDo.Installer.Pages.PathsPage; using ClaudeDo.Installer.Pages.ServicePage; using ClaudeDo.Installer.Pages.SystemCheckPage; using ClaudeDo.Installer.Pages.UiSettingsPage; using ClaudeDo.Installer.Pages.WelcomePage; using ClaudeDo.Installer.Tests.Core; namespace ClaudeDo.Installer.Tests; public class PageResolverTests { [Fact] public void SystemCheckPage_is_in_the_wizard_directly_after_welcome() { var context = new InstallContext(); var pages = new IInstallerPage[] { new WelcomePageViewModel(context), new SystemCheckPageViewModel(context, () => throw new InvalidOperationException(), TestClaudeHelpLauncher.Create()), new PathsPageViewModel(context), new ServicePageViewModel(context), new UiSettingsPageViewModel(context), }; var resolver = new PageResolver(pages); var wizardPages = resolver.WizardPages; var welcomeIndex = wizardPages.ToList().FindIndex(p => p is WelcomePageViewModel); var systemCheckIndex = wizardPages.ToList().FindIndex(p => p is SystemCheckPageViewModel); Assert.NotEqual(-1, welcomeIndex); Assert.Equal(welcomeIndex + 1, systemCheckIndex); } [Fact] public void SystemCheckPage_is_not_shown_in_settings() { var context = new InstallContext(); var page = new SystemCheckPageViewModel(context, () => throw new InvalidOperationException(), TestClaudeHelpLauncher.Create()); Assert.False(page.ShowInSettings); } }