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-340

6.2.6 Story tests — permission/visibility matrix + persist→resolve properties + the save→share→subscribe E2E + a11y sweep

Done
Description

Estimate: 30m · Depends on: 6.2.3, 6.2.4, 6.2.5

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

Vitest (integration, real Postgres): the (role × visibility × action) matrix driven from a table so a new action without a matrix row fails (the totality-guard pattern); the persist→resolve property suite (every generated AST round-trips; malformed + future-versioned envelopes recover typed; stale referents degrade per field/option/label/component); name-uniqueness collisions; star aggregation; built-in immutability; subscription due-ness (frozen clock) + the as-subscriber resolution paths; the delete-dependents enumeration + cascade.

Playwright E2E (tests/e2e/saved-filters.spec.ts): the recipe journey — build → Save as (Project) → applied chip → edit a row → dirty → Save → second user applies + stars + edits → Save-as-only → directory rename / visibility flip / admin change-owner → subscribe → delete with the dependents warning → the private filter invisible to the second user throughout its private phase. a11y: the strict axe sweep over the save dialog, dropdown (all groups), directory, and subscription editor.

Acceptance criteria

  • The matrix + property + scheduler suites are green and registry/table-driven (adding an action or AST node without coverage fails); fuzz reuses the 6.1.6 generators against the STORED path.
  • The E2E journey passes green in CI's Playwright lane; the sweep reports zero violations.
  • The Story 6.2 verification recipe runs clean top to bottom; pnpm test:coverage keeps all 6.2 files ≥90%.

Context refs

  • The 6.1.6 generator/fuzz suites (reused against persistence); the totality-guard pattern (5.5.1/6.1.1)
  • tests/integration/ + tests/e2e/ conventions; the harness/selector memories
  • The Story 6.2 verification recipe — the checklist this automates
  • Story 6.7 (the epic-wide remainder — do not duplicate)
Status
Done
Type
Sub-task