feat: Wizard component — templates, 117 tests, Playwright coverage#554
Merged
csharpfritz merged 14 commits intoMay 21, 2026
Merged
Conversation
- Fix Wizard HTML output to match Web Forms: border='0', height:100%, nested navigation table with cellspacing/cellpadding - Change navigation buttons to type='submit' (matching Web Forms) - Add static SSR form-based navigation: hidden __wizard_step field persists state across postbacks, __wizard_action field carries button clicks via named submit buttons - ProcessPendingNavigation defers until enough steps register ZavaLoanPortal Build 2026 demo: - Add /dev/login endpoint for acceptance test authentication - Use native <form> with @formname for proper SSR form handling - Set AutoGenerateColumns='false' on GridView (no DB available) - Add try-catch around DB calls for resilience without SQL Server - 11 Playwright acceptance tests (navigation, auth, wizard steps) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Bump version.json to 0.20.0 for Wizard release - Add nuget-preview.yml workflow for auto-publish on merge to dev - Switch ZavaLoanPortal to NuGet package reference (0.20.0-preview.*) - Add EmptyDataText to ZavaLoanPortal GridView Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ld entries Session: 2026-05-21T01-19Z-wizard-validation Requested by: Copilot CLI (Scribe) Changes: - Archived 4 decisions older than 7 days to decisions-archive.md - Merged 22 inbox decisions into decisions.md (22 files deleted) - Deduplication applied (exact duplicates removed) - decisions.md reduced from 64,797 → 46,159 bytes - Orchestration log and session log written - Beast and Bishop history files summarized and archived
…ation tests - Wire StartNavigationTemplate, StepNavigationTemplate, FinishNavigationTemplate, SideBarTemplate - Honor FinishCompleteButtonText with FinishButtonText fallback - Add Callbacks.razor, StepTypes.razor, EdgeCases.razor test files - Add Wizard smoke test and 4 interactive Playwright tests - Update Wizard documentation 117 passing tests (6 skipped for unimplemented behaviors) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Session: 2026-05-21T12-26-wizard-samples-tests Spawned agents: Cyclops (samples), Colossus (tests) Merged by: Scribe Changes: - Merged 3 inbox decisions into decisions.md (wizard finish button precedence, playwright locator scoping, unsupported behaviors QA) - Updated Cyclops history.md with team update on finish button label precedence - Updated Colossus history.md with team update on playwright locator scoping decision - Updated Rogue history.md with team update on QA gap documentation approach - No decisions archived (all entries post 2026-04-21 cutoff) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add 5 sample demos: FinishCompleteButtonText, SideBarTemplate, StartNavigationTemplate, StepNavigationTemplate, FinishNavigationTemplate - Add 5 Playwright acceptance tests for template features - All demos use data-audit-control Wizard-7 through Wizard-11 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Wizard_FinishCompleteButtonText: was clicking forward twice (past Finish to Complete step where nav is hidden). Now clicks once to reach Finish. - Wizard_FinishNavigationTemplate: same issue — stop at Finish step (idx 1) instead of advancing to Complete (idx 2). - Wizard_StepNavigationTemplate: add explicit wait for hidden input value change to handle Blazor Server render latency on CI. All three tests now use WaitForAsync on the step hidden input to ensure the component has re-rendered before asserting. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…, single-step nav hiding - Sidebar now renders table/tr/td structure matching Web Forms DataList output - Added ARIA attributes: role='navigation' on sidebar, role='tabpanel' on step content - Single-step wizard hides navigation buttons (HasNavigationTarget check) - Added MoveTo(int) API for programmatic step navigation - Added GetHistory() API exposing navigation history - WizardStep implements IDisposable for dynamic removal - Programmatic ActiveStepIndex changes fire OnActiveStepChanged - 49 passing tests, 0 skipped Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The td[align='right'].Last selector was ambiguous after the sidebar table structure change — nested button tds also match. Use the td[role='navigation'][aria-label='Wizard navigation'] selector instead which precisely targets the navigation container. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…aries - Wizard sample page was missing @rendermode InteractiveServer, causing @OnClick handlers to be inert under static SSR (root cause of 3 CI Playwright timeouts) - Add EnricoMi/publish-unit-test-result-action to both build.yml and integration-tests.yml so test results are posted as PR comments Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Wrap Wizard in <form method='post' @formname @onsubmit> for static SSR - Navigation buttons submit the form; HandleFormSubmit reads the action from form data and dispatches to the appropriate handler - Hidden field __wizard_step carries current step index across POSTs - Sidebar links changed from <a @OnClick> to <button type='submit'> with named values (__sidebar_N) for SSR form submission - Keep @OnClick handlers on buttons for interactive/bUnit compatibility - Revert @rendermode InteractiveServer from sample page (SSR is the target) - Update Playwright helper to use WaitForLoadStateAsync(NetworkIdle) - Update bUnit selectors from 'a' to 'button[type=submit]' for sidebar - Add PR test summary comments via EnricoMi/publish-unit-test-result-action - 49 bUnit tests passing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Change comment_mode from 'update' to 'always' (valid value for EnricoMi action) - Add [Collection] to ConfigurationManagerTests to prevent parallel static state race - Use ShouldNotBeNull() instead of null-forgiving operator for better diagnostics Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- WaitForAsync on input[type='hidden'] needs State=Attached (not Visible) - Reset sample wizard step initial values to 0 for correct test flow Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
092d0da to
f841d77
Compare
Prevents flaky failures on slow CI runners where async data loading may not complete within 2 seconds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
7765397 to
480a72a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the Wizard component with full feature coverage for the v0.20 release.
What's included
Component features:
Testing:
Samples:
Documentation:
Infrastructure: