From 4a5bd96ef8054848072046920109c9a378e5d54d Mon Sep 17 00:00:00 2001 From: sysadmin Date: Tue, 9 Jun 2026 10:25:38 +0100 Subject: [PATCH] fix(welcome): notify wizard host on AccountStep validity change so Next enables (live e2e blocker) + regression test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AccountStep now exposes OnValidityChanged EventCallback and fires it at the end of every Validate() call (including OnInitialized). Routes.razor drops the @ref/IsValid polling pattern in favour of _accountValid updated via the callback + StateHasChanged, matching the existing OnRunningChanged pattern used by ApplyStep. Adds 5 bUnit regression tests covering: initial-invalid, all-valid, re-invalid on clear, short/non-numeric PIN, and pre-populated state on Back→Forward re-mount. Co-Authored-By: Claude Sonnet 4.6 --- .../Components/Routes.razor | 6 +- .../Components/Steps/AccountStep.razor | 7 +- .../AccountStepTests.cs | 103 ++++++++++++++++++ 3 files changed, 112 insertions(+), 4 deletions(-) create mode 100644 windows/welcome/tests/SilverOS.Welcome.Tests/AccountStepTests.cs diff --git a/windows/welcome/src/SilverOS.Welcome.UI/Components/Routes.razor b/windows/welcome/src/SilverOS.Welcome.UI/Components/Routes.razor index 6adc307..082ca0f 100644 --- a/windows/welcome/src/SilverOS.Welcome.UI/Components/Routes.razor +++ b/windows/welcome/src/SilverOS.Welcome.UI/Components/Routes.razor @@ -40,7 +40,7 @@ break; case 2: - + break; case 3: @@ -82,14 +82,14 @@ private int _currentStep = 0; private bool _loading = true; private bool _applyRunning = false; + private bool _accountValid = false; private string? _error; private IReadOnlyList _flavours = Array.Empty(); - private AccountStep? _accountStep; private bool CanGoNext => _currentStep switch { 1 => State.Flavour is not null, - 2 => _accountStep?.IsValid ?? false, + 2 => _accountValid, _ => true }; diff --git a/windows/welcome/src/SilverOS.Welcome.UI/Components/Steps/AccountStep.razor b/windows/welcome/src/SilverOS.Welcome.UI/Components/Steps/AccountStep.razor index 1553884..7e1b5b6 100644 --- a/windows/welcome/src/SilverOS.Welcome.UI/Components/Steps/AccountStep.razor +++ b/windows/welcome/src/SilverOS.Welcome.UI/Components/Steps/AccountStep.razor @@ -1,6 +1,7 @@ @inject WizardState State