Files
kandev/docs/plans/integration-provider-auth-errors/task-02-provider-auth-e2e.md
T
2026-08-01 11:19:40 +01:00

68 lines
2.5 KiB
Markdown

---
id: "02-provider-auth-e2e"
title: "Prove provider page behavior end to end"
status: done
wave: 2
depends_on: ["01-classify-session-challenges"]
plan: "plan.md"
spec: "../../specs/auth/spec.md"
related_spec: "../../specs/integrations/github-authentication.md"
---
# Task 02: Prove provider page behavior end to end
## Intent
Exercise the four provider data pages and GitHub PAT settings through the browser so a future
regression cannot turn an integration credential failure into a Kandev login redirect.
## Acceptance
1. GitHub, GitLab, Jira, and Linear pages each remain on their own route and show a provider loading
error after their primary data endpoint returns an unchallenged 401.
2. GitHub settings retain an invalid replacement PAT, keep the connection surface open, show the
backend error, and keep the existing connection active.
3. The focused production-build E2E spec passes without adding mobile-specific UI or changing page
composition.
## TDD
1. Add the browser scenarios using existing integration configuration helpers and route
interception for sanitized provider 401 responses.
2. Run the managed spec and correct fixture or selector assumptions exposed by the real browser
surface before interpreting a failure as a product regression.
3. Rerun after Task 01 and confirm the provider routes and error UI remain visible.
## Files Likely Touched
- `apps/web/e2e/tests/integrations/provider-auth-errors.spec.ts`
## Dependencies
Task 01 complete.
## Parallelism
`sequential` — validates Task 01 through real SPA routing.
## Verification
```bash
cd apps/web && pnpm e2e:run tests/integrations/provider-auth-errors.spec.ts
```
## Inputs
- `apps/web/e2e/helpers/api-client.ts` — GitHub, GitLab, Jira, and Linear configuration helpers.
- `apps/web/e2e/pages/github-auth-settings-page.ts` — GitHub connection dialog selectors.
- The existing provider page search hooks and list error renderers under `apps/web/app/` and
`apps/web/components/{github,gitlab,jira,linear}/`.
## Output Contract
The first managed run exposed two test assumptions (GitHub personal identity requires an
App-backed workspace seed, and the PAT input must be selected by its textbox role); it did not
reach a product redirect failure. After correcting those assumptions, the final managed runner
passed all five scenarios. No failure artifacts remain relevant, and the remaining risk is limited
to provider-specific backend error-body wording outside the sanitized responses covered here.