fix(06-05): make AuthSplash dead-end state reachable + persist redirect guard

- CalendarShell now captures maybeRedirectToLogin() return value in meQuery.isError effect
- When the one-shot guard is exhausted (returns false), arm loginRedirectExhausted state
- Render AuthSplash state=dead-end (tap-to-retry) when guard is exhausted, not indefinite redirecting spinner
- Reset loginRedirectExhausted on successful auth (meQuery.isSuccess) for session recovery
- Add sessionStorage.clear() to beforeEach so CalendarShell tests are isolated
- RED test committed in prior commit (36ef7a0)
This commit is contained in:
Lucas Berger
2026-06-10 15:55:06 -04:00
parent 36ef7a00b7
commit e392c69196
2 changed files with 22 additions and 4 deletions
@@ -140,6 +140,8 @@ function renderWithClient(ui: React.ReactElement) {
describe('CalendarShell — CAL-03 render smoke', () => {
beforeEach(() => {
vi.clearAllMocks()
// Reset the one-shot redirect guard between tests
sessionStorage.clear()
// Default mock responses
;(fetchMe as Mock).mockResolvedValue({