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-163Done

3.1.7 Story E2E — board projection + move-as-transition over the real stack (API-level)

Estimate: 18m · Depends on: 3.1.4, 3.1.5, 3.1.6

The closing integration suite for the board backend, driven through the real stack via the 3.1.6 API (there is NO board UI yet — that arrives in Story 3.2, and the full drag-drop Playwright journey + WIP cases live in the Epic-3 test story 3.5). This story’s E2E proves the projection + move contract end-to-end so 3.2 can build the UI against a trusted backend.

A Playwright (API-request) spec tests/e2e/board-projection.spec.ts (or the project’s API-test harness) that, against a freshly seeded project:

  • GET …/board → the six default columns in workflow order, cards grouped into the right columns, per-column counts, empty unmappedStatuses.
  • Add a custom status (via the 2.2.5 workflow API) → GET …/board shows it in unmappedStatuses, in no column.
  • Seed many cards in one column → the projection returns a bounded first page + count + cursor; GET …/columns/[id]/cards?cursor= returns the next page (finding #57 — no load-all).
  • POST …/move a card across columns under a legal transition → 200, new status reflected on the issue + in a re-fetched projection.
  • POST …/move an illegal cross-column transition under restricted policy → 409, the issue status unchanged on re-fetch (the snapback contract 3.2 depends on).
  • POST …/move within a column → 200, rank changes, status + column membership unchanged.

This subtask adds the cross-cutting E2E only; the per-method Vitest coverage lives in 3.1.1–3.1.6 (real Postgres). It does NOT duplicate the Epic-3 test story (3.5), which adds the drag-drop UI journey + WIP + swimlane cases once 3.2/3.3 land.

Acceptance criteria

  • pnpm test:e2e --grep board-projection runs green against the real stack.
  • The spec asserts: default-column projection + grouping + counts; unmapped-status surfacing; per-column pagination via cursor; legal move updates status; illegal move → 409 with status unchanged; in-column reorder changes rank only.
  • No board UI is asserted (none exists yet); the suite drives the 3.1.6 API directly.

Context refs

  • tests/e2e/workflow-flow.spec.ts (Story 2.2.7) — the closing-E2E pattern this mirrors
  • tests/e2e/ harness + tests/helpers/db.ts — real-Postgres truncation between tests
  • The 3.1.6 board routes under test; Story 3.5 — the Epic-3 test story this defers the UI journey to