fix.在线安装器,启动器

This commit is contained in:
lincube
2026-06-05 11:08:11 +08:00
parent bb4e90ea8d
commit 8c88e305ee
42 changed files with 1507 additions and 393 deletions

View File

@@ -56,13 +56,17 @@ public sealed class OnlineInstallerCoreTests : IDisposable
public async Task InstallerWorkflowNavigation_AllowsOnlyUnlockedSteps()
{
var vm = new MainWindowViewModel(new FakeInstallService(), new PrivacyDeviceIdentityProvider(Path.Combine(_tempRoot, "identity.json")));
var deployStep = vm.Steps.Single(step => step.StepId == InstallerStepId.Deploy);
vm.SelectedStep = vm.Steps.Single(step => step.StepId == InstallerStepId.Deploy);
Assert.False(deployStep.IsUnlocked);
vm.SelectStepCommand.Execute(deployStep);
Assert.Equal(InstallerStepId.Welcome, vm.CurrentStep);
Assert.True(vm.Steps.Single(step => step.StepId == InstallerStepId.Welcome).IsSelected);
await vm.NextCommand.ExecuteAsync(null);
vm.SelectedStep = vm.Steps.Single(step => step.StepId == InstallerStepId.Welcome);
vm.SelectStepCommand.Execute(vm.Steps.Single(step => step.StepId == InstallerStepId.Welcome));
Assert.Equal(InstallerStepId.Welcome, vm.CurrentStep);
}
@@ -86,7 +90,7 @@ public sealed class OnlineInstallerCoreTests : IDisposable
}
[Fact]
public async Task BrowseCommand_UsesSelectedLocalFolder()
public async Task BrowseCommand_UsesSelectedLocalFolderAsInstallParent()
{
var selectedPath = Path.Combine(_tempRoot, "selected-install-root");
var vm = new MainWindowViewModel(
@@ -98,6 +102,23 @@ public sealed class OnlineInstallerCoreTests : IDisposable
await vm.BrowseCommand.ExecuteAsync(null);
Assert.Equal(Path.Combine(selectedPath, InstallerPathGuard.ApplicationDirectoryName), vm.InstallPath);
Assert.Null(vm.ErrorMessage);
}
[Fact]
public async Task BrowseCommand_DoesNotDuplicateApplicationFolder()
{
var selectedPath = Path.Combine(_tempRoot, InstallerPathGuard.ApplicationDirectoryName);
var vm = new MainWindowViewModel(
new FakeInstallService(),
new PrivacyDeviceIdentityProvider(Path.Combine(_tempRoot, "identity.json")))
{
BrowseRequested = _ => Task.FromResult<string?>(selectedPath)
};
await vm.BrowseCommand.ExecuteAsync(null);
Assert.Equal(selectedPath, vm.InstallPath);
Assert.Null(vm.ErrorMessage);
}