E2e/split/ci workflows - #2205
Draft
papistacoding wants to merge 29 commits into
Draft
Conversation
Signed-off-by: papistacoding <bruno.papista@gmail.com>
Signed-off-by: papistacoding <bruno.papista@gmail.com>
Signed-off-by: papistacoding <bruno.papista@gmail.com>
…ntories) Signed-off-by: papistacoding <bruno.papista@gmail.com>
Signed-off-by: papistacoding <bruno.papista@gmail.com>
Adds aria-labels to the icon-only edit/delete/reorder buttons on both pages — they had no accessible name at all, which is an a11y defect and also left the tests reaching for CSS classes. Signed-off-by: papistacoding <bruno.papista@gmail.com>
The create and edit forms validated title and text but rendered no message, so submitting an incomplete update did nothing visible. Uses the repo's prevailing paragraph pattern, matching the FAQ form. Signed-off-by: papistacoding <bruno.papista@gmail.com>
Drops the trust-centre argument from the backend decision memo now that the area is covered locally. Signed-off-by: papistacoding <bruno.papista@gmail.com>
… validation Signed-off-by: papistacoding <bruno.papista@gmail.com>
Signed-off-by: papistacoding <bruno.papista@gmail.com>
Signed-off-by: papistacoding <bruno.papista@gmail.com>
Signed-off-by: papistacoding <bruno.papista@gmail.com>
The suite should be reviewable without the CI-backend decision attached to it. Workflows, the sharding plan and the backend decision memo move to e2e/split/ci-workflows, which stacks on this branch. Signed-off-by: papistacoding <bruno.papista@gmail.com>
…ecision memo Stacks on e2e/split/playwright-suite — the workflows type-check and run that suite, so they cannot stand alone on main. - console-checks.yml: every PR, no backend, ~1 min - console-e2e.yml: 4 shards, each with its own core stack, then a merge job - playwright.config.ts: blob reporter on CI, CI worker clamp removed - CI_SHARDING_PLAN.md: how N was chosen and what is still unmeasured - DECISION-e2e-backend.html: production vs throwaway backend, for review Signed-off-by: papistacoding <bruno.papista@gmail.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Signed-off-by: papistacoding <bruno.papista@gmail.com>
…eQL) Signed-off-by: papistacoding <bruno.papista@gmail.com>
The directory holds replayable session cookies and the shared test password. mode on mkdirSync/writeFileSync only applies at creation, so an existing .auth kept 0755/0644 — chmod explicitly. Signed-off-by: papistacoding <bruno.papista@gmail.com>
Signed-off-by: papistacoding <bruno.papista@gmail.com>
… build-out Signed-off-by: papistacoding <bruno.papista@gmail.com>
…he suite Coverage — closes the last create/edit/delete gaps found by auditing all 139 form components against the suite: - exposure-entities-crud.spec.ts: findings, scans, remediations and vulnerabilities. Table-driven because all four pages are generated from GenericTablePage; scans carry mutateVia: 'bulk' since their detail sheet uses overrideHeader and exposes no Edit/Delete at all. - exposure-action-plans-crud.spec.ts: action plans from the risk Mitigation tab. - integrations-config-form.spec.ts: the RJSF schema form on a definition page. Deliberately does not complete a connection — that would authenticate against a third-party service. - utils/api.ts: seeders for finding, scan, remediation, vulnerability and action plan. De-flaking — the suite was carrying 11 tests that failed then passed on retry. Root causes, not timeout padding: - actionTimeout 15s -> 30s. Most flakes were literally "locator.click: Timeout 15000ms" on menus and rows rendering late under 8-way load. One lever, whole class. - procedures-table sorting assumed the first header click sorts ascending, but the table has a defaultSorting, so from a sorted state the cycle is descending -> none and "none" leaves arbitrary order. Drive off aria-sort. - org-lifecycle-fresh reloaded while the update was still in flight. - procedures-table pagination waited for /^Page 1 of \d+$/, which matches "Page 1 of 1" before the seeded rows are counted. - completeOnboarding polled for 90s inside a 90s test timeout. - utils/menu.ts: shared openRowAction / confirmDestructiveDialog for Radix portal menus that detach when the underlying table refetches. Also replaces transient-toast assertions with server-observable ones (waitForResponse, or the resulting state) — toasts live ~4s and were the direct cause of several false failures. Full suite: 986 tests, 972 passing, 0 failing at 8 workers. Signed-off-by: papistacoding <bruno.papista@gmail.com>
papistacoding
force-pushed
the
e2e/split/ci-workflows
branch
from
August 26, 2026 20:33
6eb5b40 to
52d21cd
Compare
Aggregating the flaky set across 13 full-suite runs showed 57 distinct tests had flaked at least once, but 40 of them (70%) in exactly one run — noise, not fragility. Only five were chronic, and those are what this fixes. global-setup: seedRoleUser did a bare waitForURL(/dashboard/, 30s) after login. On expiry it threw, which kills the whole run before a single test executes — two of the last three full runs died here and produced no data at all. It also gave no clue where the browser actually was. It now reports the stuck URL, and that immediately showed the real cause was not the session-cookie bounce but the login failing outright, leaving us on /login where re-navigating is futile. It now re-attempts the login for that case and only re-navigates for the cookie race. automation-workflows (worst offender, 4/13): the deletes verified through the UI list, which serves stale results right after a mutation. Assert through findWorkflowDefinitionId at the API instead, keeping the list check as a secondary. onboarding (3/13 each): both chronic tests walk the whole wizard but only the happy path carried test.slow(). Mark the re-entry test too. automation-templates (3/13): the column-visibility toggle and the header assertion could straddle a re-render. Check current state before toggling and retry the cycle. Latest full suite: 971 passed, 1 failed, 4 flaky — and none of the five chronic tests appear in it. Signed-off-by: papistacoding <bruno.papista@gmail.com>
Cover the remaining CRUD, bulk-import, bulk-edit and comment flows, and assert the mutations actually fire rather than that a dialog opened. Skip every permission-gating test behind E2E_PERMISSION_GATES so the suite can merge before the gating does, and fix the races that made the suite flaky: a null membership node in roleOf, the router cache serving a stale list, and the loads that outrun a pending permission query. Brings the segmented Playwright config and the e2e directory back in sync with the branch this was split from. Signed-off-by: papistacoding <bruno.papista@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.