Skip to content

fix: ADC Local Test Run 5 defects (Common side) - #498

Merged
ivanball merged 1 commit into
mainfrom
fix/test-run-5-defects
Oct 4, 2026
Merged

ivanball merged 1 commit into
mainfrom
fix/test-run-5-defects

Conversation

@ivanball

@ivanball ivanball commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Common-side fixes for the defects verified in ADC Local Test Run 5. Tests were written first by a separate pass (failing on main for each defect's own reason), then the fixes.

Case Fix
U-15/A-46 (HIGH) OAuthControllerBase reads urn:github:name before ClaimTypes.Name (GitHub's login handle) and never passes an empty last name (placeholder "User"); every first GitHub sign-up failed User.LastName.Empty
U-15 Login reads ?error= and shows a localized alert (en + es)
A-45 TermsAcceptanceGate dialog sets CloseOnNavigation = false, so a list page's URL rewrite no longer dismisses it
X-03 Skip link resolves to the current page, #main-content has tabindex=-1, .mud-nav-link:focus-visible outline
A-22 BiometricGate sign-out calls IAuthUIService.LogoutAsync (auth state + caches cleared)
A-11, A-08, A-01/X-27 MAUI speech/share/screenshot/media picker return null/false on any non-cancellation failure; speech start/stop on the main thread
OBS-7 Live push carries scopeKey; NotificationListener skips toast/badge for another scope
OBS-9 QrCodeImage max-width 100%, height auto
U-21 New RegistrationSettings.CollectAddress (default true, section Registration) hides the Register address block when off; Store/Helpdesk unchanged

Existing tests changed: three InlineData rows of CompleteAsync_ExtractsNameFromClaimsWithFullNameFallback that pinned the empty last name now expect "User"; setup-only DI additions in BiometricGateTests and NotificationListenerTests.

Local: MMCA.Common.slnx Debug build 0 warnings; all unit test exes Failed: 0 (API 869, UI 1248, Application 1318, Architecture 318, plus the rest); MMCA.Common.UI.Maui builds for android and windows.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sDGvYdTD88ZjjD7if2SMW

- OAuth: read urn:github:name before ClaimTypes.Name (GitHub login handle);
  never pass an empty last name (first GitHub sign-up failed, U-15/A-46)
- Login: read ?error= and show a localized alert (U-15)
- TermsAcceptanceGate: dialog survives navigation (A-45)
- MainLayout: skip link stays on the current page, main region focusable,
  visible nav-link focus ring (X-03)
- BiometricGate: sign-out goes through the app logout path (A-22)
- MAUI speech/share/screenshot/media picker: any non-cancellation failure
  returns the contract's null/false; speech runs on the main thread
  (A-11, A-08, A-01/X-27)
- Notifications: live leg carries scopeKey; listener skips toast/badge for
  another scope (OBS-7)
- QrCodeImage shrinks to its container (OBS-9)
- RegistrationSettings.CollectAddress (default true, section "Registration")
  hides the Register address block when off (U-21)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sDGvYdTD88ZjjD7if2SMW
@ivanball
ivanball merged commit d7d7e81 into main Oct 4, 2026
16 checks passed
@ivanball
ivanball deleted the fix/test-run-5-defects branch October 4, 2026 23:17
@ivanball ivanball mentioned this pull request Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant