MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-348

6.3.7 Story tests — aggregation matrices + permission/no-access matrix + the dashboard E2E journey + the reports E2E + a11y sweeps

Done
Description

Estimate: 30m · Depends on: 6.3.5, 6.3.6

The story-closing verification (Principle #18; the epic-wide journey stays Story 6.7).

Vitest (integration, real Postgres): the bucket matrix (day/week/month × cumulative × reopen-nets × window edges, against seeded revisions at known dates; large-seed boundedness assertions); the statistic matrix driven FROM the registry (every entry incl. dynamic CF entries — a new entry without a case fails, the totality-guard pattern); filter-results/issues-list parity; the permission matrix (owner / member / non-member × private / workspace × project-sourced / filter-sourced → data / 404 / no-access, route-level); stale-referent matrix (deleted filter / project / statistic referent); widget CRUD + move ordering properties; the registry enumeration guards (widget types + statistic types).

Playwright E2E (tests/e2e/dashboards.spec.ts): the recipe journey — create a dashboard, add all three widget types (filter + project sourced), configure each, switch layout, drag a widget across columns, reload (persistence), share-to-workspace + verify the second user's read-only + no-access states, delete the backing filter → stale state. (tests/e2e/reports.spec.ts): the hub → both report pages → configure → resolve + reopen an issue → the created-vs-resolved bucket nets; the distribution donut tracks a status change. a11y: the strict sweep over the grid (edit mode, a config panel open, every widget state visible) + both report pages.

Acceptance criteria

  • All matrices green; boundedness + parity + permission assertions hold; the registry-driven suites fail on any uncovered entry.
  • Both E2E journeys pass green in CI's Playwright lane; the sweeps report zero violations.
  • The Story 6.3 verification recipe runs clean top to bottom; pnpm test:coverage keeps all 6.3 files ≥90%.

Context refs

  • The 6.1.6 matrix/totality-guard pattern; the 5.6 at-scale fixture conventions
  • tests/e2e/ harness + selector memories (prodect-e2e-selector-gotchas, board-e2e-dnd-at-scale-gotchas — the dnd drag step)
  • The Story 6.3 verification recipe — the checklist this automates
  • Story 6.7 (the epic-wide remainder — do not duplicate)
Status
Done
Type
Sub-task