openclaw-windows-node/tests/OpenClaw.Tray.Tests/LocalSetupProgressPageNextButtonTests.cs
Mike Harsh 581f78d276
Some checks failed
Build and Test / test (push) Has been cancelled
Build and Test / release (push) Has been cancelled
Build and Test / build (win-arm64) (push) Has been cancelled
Build and Test / build (win-x64) (push) Has been cancelled
Build and Test / build-msix (ARM64, win-arm64) (push) Has been cancelled
Build and Test / build-msix (x64, win-x64) (push) Has been cancelled
Build and Test / build-extension (arm64) (push) Has been cancelled
Build and Test / build-extension (x64) (push) Has been cancelled
feat: add WSL local gateway onboarding
Add WSL local gateway setup and onboarding flow, with isolated validation and a fixed fresh Tray launch path for WSL validation.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-08 11:50:52 -04:00

76 lines
2.6 KiB
C#

using OpenClawTray.Onboarding.Services;
using OpenClawTray.Services.LocalGatewaySetup;
namespace OpenClaw.Tray.Tests;
/// <summary>
/// Locks down the per-engine-status mapping that <see cref="LocalSetupProgressPolicy"/>
/// pushes to <see cref="OnboardingState.NextButtonState"/>. See Phase 5 final
/// Next/Back-button policy in <c>.squad/decisions.md</c>.
/// </summary>
public class LocalSetupProgressPageNextButtonTests
{
private static LocalGatewaySetupState CreateSnapshot() =>
LocalGatewaySetupState.Create(new LocalGatewaySetupOptions());
[Fact]
public void NullSnapshot_MapsToHidden()
{
Assert.Equal(
OnboardingNextButtonState.Hidden,
LocalSetupProgressPolicy.MapStatusToNextButtonState(null, LocalGatewaySetupStatus.Pending));
}
[Fact]
public void Pending_MapsToHidden()
{
Assert.Equal(
OnboardingNextButtonState.Hidden,
LocalSetupProgressPolicy.MapStatusToNextButtonState(CreateSnapshot(), LocalGatewaySetupStatus.Pending));
}
[Fact]
public void Running_MapsToVisibleDisabled()
{
Assert.Equal(
OnboardingNextButtonState.VisibleDisabled,
LocalSetupProgressPolicy.MapStatusToNextButtonState(CreateSnapshot(), LocalGatewaySetupStatus.Running));
}
[Fact]
public void Complete_MapsToVisibleEnabled()
{
Assert.Equal(
OnboardingNextButtonState.VisibleEnabled,
LocalSetupProgressPolicy.MapStatusToNextButtonState(CreateSnapshot(), LocalGatewaySetupStatus.Complete));
}
[Fact]
public void FailedRetryable_MapsToVisibleDisabled()
{
Assert.Equal(
OnboardingNextButtonState.VisibleDisabled,
LocalSetupProgressPolicy.MapStatusToNextButtonState(CreateSnapshot(), LocalGatewaySetupStatus.FailedRetryable));
}
[Fact]
public void FailedTerminal_MapsToVisibleDisabled()
{
Assert.Equal(
OnboardingNextButtonState.VisibleDisabled,
LocalSetupProgressPolicy.MapStatusToNextButtonState(CreateSnapshot(), LocalGatewaySetupStatus.FailedTerminal));
}
[Theory]
[InlineData(LocalGatewaySetupStatus.RequiresAdmin)]
[InlineData(LocalGatewaySetupStatus.RequiresRestart)]
[InlineData(LocalGatewaySetupStatus.Blocked)]
[InlineData(LocalGatewaySetupStatus.Cancelled)]
public void OtherNonTerminalStatuses_MapToVisibleDisabled(LocalGatewaySetupStatus status)
{
Assert.Equal(
OnboardingNextButtonState.VisibleDisabled,
LocalSetupProgressPolicy.MapStatusToNextButtonState(CreateSnapshot(), status));
}
}