Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

MOTIR-444Done

6.15.4 Story tests — filtered board read (predicate per column, cap over filtered set, permission/Scrum compose) + the board-filter E2E journey + a11y sweep

Estimate: 28m · Depends on: 6.15.3

The story-closing verification (Principle #18).

Vitest (integration, real Postgres): the filtered board read — the predicate applied per column, the truncated/cap computed over the FILTERED set (a filter under the cap clears truncated), the unfiltered path unchanged, the 6.4-permission + workspace scope, and the Scrum compose (the filter ANDs with the 4.5 sprint scope, never widening it). An unauthorized/invalid saved-filter id → the typed error.

Playwright E2E (tests/e2e/board-filter.spec.ts): on a seeded board, open the toolbar Filter → apply a quick filter (kind Bug) → assert only matching cards across columns (wait on the board re-projection response, not the optimistic UI) → toggle a Work type facet (e.g. Design) and assert the board re-projects to that work type (the 6.15.5 facet) → apply a saved filter → Clear restores the full board → the over-cap banner CTA opens the filter; assert the URL carries the filter and survives reload. a11y: strict axe sweep over the filter affordance (closed / open builder incl. the Work type group / saved-filter picker / active chips / filtered-empty).

Acceptance criteria

  • The read matrix (predicate per column · cap-over-filtered · unfiltered-unchanged · permission/tenant scope · Scrum compose · work-type facet narrows the board · typed saved-filter error) is green.
  • The E2E journey passes in CI’s Playwright lane (async waits via the harness, not sleeps — arm waitForResponse before the action, per CLAUDE.md); the axe sweep reports zero violations.
  • The Story 6.15 verification recipe runs clean top to bottom; pnpm test:coverage keeps all 6.15 files ≥ 90%.

Context refs

  • 6.15.2 (the read under test) + 6.15.3 (the UI journey)
  • tests/e2e/board-crud.spec.ts / board-scrum.spec.ts (the board E2E setup + selector patterns to build on) + tests/helpers/db.ts (the large-seed fixture for the cap case)
  • The E2E selector / "wait on the authoritative signal" memories; the Story 6.15 verification recipe — the checklist this automates