312dc0657f
Co-authored-by: Carlos Florencio <carlosmflorencio@gmail.com>
77 lines
4.3 KiB
Markdown
77 lines
4.3 KiB
Markdown
---
|
|
id: "06-e2e"
|
|
title: "E2E coverage for index-page sliders and nav-hiding behavior"
|
|
status: done
|
|
wave: 5
|
|
depends_on: ["02-own-page-sliders", "03-index-page-sliders", "05-nav-availability"]
|
|
plan: "plan.md"
|
|
spec: "../../specs/integrations/enable-disable-toggle.md"
|
|
---
|
|
|
|
# Task 06: E2E coverage for index-page sliders and nav-hiding behavior
|
|
|
|
- **Acceptance:**
|
|
1. A new Playwright spec proves every one of the seven integration rows on
|
|
`/settings/integrations` has a working slider, toggling GitHub's
|
|
index-page slider updates GitHub's own settings-page slider to the same
|
|
state, and clicking a slider never navigates.
|
|
2. A new Playwright spec proves: with a configured/healthy, disabled
|
|
GitHub and "hide disabled" off (default), GitHub's sidebar nav entry is
|
|
visible; turning "hide disabled" on hides it without a reload; turning
|
|
GitHub back on reveals it again.
|
|
3. `apps/web/e2e/tests/integrations/integrations-index-layout.spec.ts`
|
|
still passes unmodified.
|
|
- **Verification:** `cd apps/web && pnpm install --frozen-lockfile && pnpm e2e -- integrations-index-enabled-toggle hide-disabled-integrations-nav integrations-index-layout`
|
|
- **Files likely touched:**
|
|
- `apps/web/e2e/tests/integrations/integrations-index-enabled-toggle.spec.ts` (new)
|
|
- `apps/web/e2e/tests/integrations/hide-disabled-integrations-nav.spec.ts` (new)
|
|
- **Dependencies:** `02-own-page-sliders`, `03-index-page-sliders`,
|
|
`05-nav-availability`.
|
|
- **Parallelism:** sequential (last task; exercises the full feature).
|
|
- **Inputs:** spec Scenarios, plan E2E Tests section,
|
|
`integrations-index-layout-helpers.ts`, `mobile-integrations-nav.spec.ts`'s
|
|
`apiClient.mockGitHubSetUser` fixture and visibility-check style.
|
|
- **Output contract:** summary, files changed, exact e2e command run and its
|
|
output, blockers/risks, task/plan status update, synchronize `plan.md`'s
|
|
Verification Results.
|
|
|
|
## Results
|
|
|
|
- `integrations-index-enabled-toggle.spec.ts`: navigates to
|
|
`/settings/integrations`, asserts all seven `#<slug>-enabled` switches are
|
|
visible, toggles GitHub's off, asserts the URL never left the index page,
|
|
saves via the shared floating save bar, then navigates to
|
|
`/settings/integrations/github` and asserts its own-page slider reflects
|
|
the same persisted "off" state.
|
|
- `hide-disabled-integrations-nav.spec.ts`: makes GitHub
|
|
configured/authenticated via `apiClient.mockGitHubSetUser`, disables
|
|
GitHub's slider and saves, navigates to `/tasks` (leaving the Settings
|
|
takeover, which replaces the sidebar with the Settings tree — confirmed by
|
|
inspecting a live DOM snapshot before writing this) and asserts the
|
|
sidebar's GitHub link is still visible (hide-disabled off, the default);
|
|
returns to Settings, turns "Hide disabled integrations from left panel
|
|
navigation" on and saves, navigates back to `/tasks`, asserts the GitHub
|
|
link is now hidden; re-enables GitHub and saves, navigates back to
|
|
`/tasks`, asserts the link reappears.
|
|
- This exposed a real bug during development, fixed by the corrected Task
|
|
03 markup: nesting the slider inline with the label made "Azure DevOps"
|
|
wrap to two lines under the layout spec's real browser measurements — the
|
|
fix landed in Task 03, and this task's runs are the confirming evidence
|
|
that it holds end-to-end.
|
|
- Environment note: running Playwright locally required building
|
|
prerequisites this sandbox does not have pre-built —
|
|
`make build-backend` (needed a Go 1.26 toolchain found at
|
|
`/tmp/go1.26/bin`, not on the default `PATH`), `make build-web`, and
|
|
`make -C apps/backend e2e-plugin-package` — each run once, then re-run
|
|
after every source change under test.
|
|
- Commands (via a managed background process so the tool-call timeout
|
|
couldn't truncate a multi-minute Playwright run):
|
|
`npx playwright test --config e2e/playwright.config.ts e2e/tests/integrations/integrations-index-enabled-toggle.spec.ts e2e/tests/integrations/hide-disabled-integrations-nav.spec.ts e2e/tests/integrations/integrations-index-layout.spec.ts`
|
|
→ `3 passed (30.5s)`.
|
|
- Files changed: the two new spec files listed above (Task 03 already
|
|
updated the layout spec's helper; this task only re-ran it, unmodified,
|
|
as the regression check — no fix was needed here).
|
|
- Blockers/risks: none. All background Playwright/Chromium processes and
|
|
the temporary manual backend instance used for diagnosis were terminated
|
|
after verification.
|