Skip to content

Harden Google sign-in retry-state coverage - #2056

Closed
groupthinking with Copilot wants to merge 2 commits into
mainfrom
copilot/restore-google-sign-in-retry-state
Closed

groupthinking with Copilot wants to merge 2 commits into
mainfrom
copilot/restore-google-sign-in-retry-state

Conversation

Copilot AI commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Canonical issue

Linked by GitHub issue automation.

Outcome

Google sign-in initiation failures now stay covered by deterministic regression tests for the user-visible contract: restore a retryable button state and announce a generic accessible error without leaking provider details.

  • Initiation failure coverage
    • Added a regression case for rapid repeated clicks where the first signIn() rejects and the UI must recover to a retryable state.
  • Deterministic test isolation
    • Reset the mocked signIn function between tests so queued mock behavior cannot bleed across cases and hide retry-state regressions.
afterEach(() => {
  cleanup();
  vi.mocked(signIn).mockReset();
  vi.restoreAllMocks();
  window.history.replaceState({}, '', initialUrl);
});

Scope

  • Included:
    • apps/web/src/app/login/GoogleSignInButton.test.tsx
    • Regression coverage for failed initiation, no-redirect initiation, and duplicate-click protection
    • Mock isolation hardening for next-auth sign-in tests
  • Explicitly excluded:
    • No production login-flow logic changes
    • No auth provider, callback, or navigation behavior changes outside this test surface

Risk

  • Risk level: low
  • Failure mode:
    • Limited to test expectations around Google sign-in initiation and mock lifecycle.
  • Rollback:
    • Revert the test file change.

Verification

Current head: f186402

  • Focused tests
    • npm --workspace=apps/web run test -- src/app/login/GoogleSignInButton.test.tsx src/lib/__tests__/auth-config-source.test.ts
    • npm --workspace=apps/web run type-check
  • Required CI
  • Review threads resolved

Production evidence

Not applicable. This change tightens regression coverage only; it does not alter deployed runtime behavior.

Agent handoff

  • One canonical issue is linked
  • No competing PR implements the same issue
  • Acceptance criteria are satisfied
  • Required checks pass on the current head
  • Human decision is requested only for product, security, irreversible infrastructure, or production approval

@coderabbitai

coderabbitai Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (3)
  • WIP
  • DO NOT MERGE
  • [skip ci]

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: groupthinking/EventRelay/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 18288813-518c-4c33-a815-f3a96d3c3486

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com>
@vercel

vercel Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
v0-uvai Ready Ready Preview, v0 Sep 18, 2026 9:44pm UTC

Copilot AI changed the title [WIP] Restore Google sign-in retry state on failed initiation Harden Google sign-in retry-state coverage Sep 18, 2026
Copilot AI requested a review from groupthinking September 18, 2026 21:28
@kk-agent

Copy link
Copy Markdown
Collaborator

AXIOM keep-moving: closing as duplicate of open auth retry work (#1971/#1995). Prefer single survivor path.

@kk-agent kk-agent closed this Sep 18, 2026
@github-actions github-actions Bot added javascript Pull requests that update javascript code tests labels Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔍 PR Validation

⚠️ PR title should follow conventional commits format

@github-actions

Copy link
Copy Markdown
Contributor

✅ E2E Test Results: ALL TESTS PASSED

Metric Value
Status 🟢 GREEN
Total Tests
Passed 19
Failed
Deployment https://v0-uvai-4xcr4ayuu-garv1.vercel.app
Test Output
t�[2m | tests/e2e/pipeline.test.ts�[2m > �[22m�[2mEventRelay E2E — Live Deployment�[2m > �[22m�[2mSSE Pipeline Stream�[2m > �[22m�[2mSSE stream emits at least a pipeline_status:running event
�[22m�[39m[E2E] last pipeline_status: complete

 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mSSE Pipeline Stream�[2m > �[22mSSE stream emits at least a pipeline_status:running event�[33m 15798�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mSSE Pipeline Stream�[2m > �[22mSSE stream closes within 90 seconds (no 95% hang)�[33m 16490�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mSSE Pipeline Stream�[2m > �[22mSSE events fire in correct agent order�[33m 30515�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mCloudEvent Schema�[2m > �[22mSSE events contain valid timestamps�[33m 18384�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mCloudEvent Schema�[2m > �[22mterminal pipeline_status includes duration and stage progress�[33m 25311�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mmissing URL returns 400, not a hang�[32m 244�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22minvalid URL returns error event or completes quickly, not a hang�[33m 5289�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard returns 200�[33m 1553�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard contains agent or pipeline visualization markup�[32m 222�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mGET /api returns a response (not 404)�[33m 1033�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mPOST /api/pipeline/stream with no body returns 400�[32m 199�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22mhomepage has proper meta tags�[32m 214�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22m/features page returns 200�[32m 232�[2mms�[22m�[39m

�[2m Test Files �[22m �[1m�[32m1 passed�[39m�[22m�[90m (1)�[39m
�[2m      Tests �[22m �[1m�[32m19 passed�[39m�[22m�[90m (19)�[39m
�[2m   Start at �[22m 22:38:11
�[2m   Duration �[22m 120.67s�[2m (transform 52ms, setup 0ms, import 67ms, tests 120.50s, environment 0ms)�[22m


@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review Summary

The full dependency review summary was too large to display here (13153KB, limit is 1024KB).

Please download the artifact named "dependency-review-summary" to view the complete report.

View full job summary

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

javascript Pull requests that update javascript code tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Restore Google sign-in retry state on failed initiation

3 participants