pelagia-portal/App/tests/integration
Hardik 0b2ed9ac07
All checks were successful
PR checks / checks (pull_request) Successful in 37s
PR checks / integration (pull_request) Successful in 28s
feat(crewing): Phase 2 — requisitions + relief requests (flagged)
Second slice of the Crewing module per wiki Crewing-Implementation-Spec §12
(build order item 2). Everything stays behind NEXT_PUBLIC_CREWING_ENABLED;
production is unchanged. Schema is added incrementally — this lands the
requisition lifecycle layer.

What's in
- Schema: Requisition (OPEN→SHORTLISTING→PROPOSING→INTERVIEWING→SELECTED→FILLED,
  →CANCELLED), ReliefRequest, CrewAction (the POAction mirror) + their enums.
  Migration crewing_requisitions.
- State machine: lib/requisition-state-machine.ts mirrors po-state-machine
  (selection Manager-only; orthogonal cancel from OPEN/SHORTLISTING by
  cancel_requisition holders, §6). Codes REQ-9000… via lib/requisition-number.ts.
- Actions: raise/cancel/transition + requestReliefCover/convertReliefToRequisition,
  each guarding flag+permission+state, writing a CrewAction and notifying. Shared
  autoRaiseRequisition() (lib/requisition-service.ts) is the backfill entry point
  for sign-off / leave-clash (later phases).
- Notifier: notifyCrew() PO-independent path + CrewNotificationEvent.
- Screens: /crewing/requisitions (list + Raise modal + relief convert) and
  /crewing/requisitions/[id] (detail). Requisitions added to the flag-gated
  Crewing sidebar (Manager + MPO, §7).

Tests & docs
- Unit: requisition-state-machine.test.ts (11).
- Integration: requisitions.test.ts (15) — raise/cancel/transition, relief
  request + convert, auto-raise, permission gating.
- CLAUDE.md "Crewing" section updated with the Phase 2 surface.

Deferred: sign-off/experience (Epic K, §12 item 2) depends on the crew/assignment
models from Phase 3/4; autoRaiseRequisition() is ready for it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 18:22:59 +05:30
..
admin-ranks.test.ts feat(crewing): foundations — SITE_STAFF role, ranks reference data + admin (flagged) 2026-06-22 13:26:04 +05:30
approval-actions.test.ts test(integration): green the last 3 behavioural-drift tests (108/108) 2026-06-21 02:39:41 +05:30
approved-this-month.test.ts fix(dashboard): count all POs approved this month, not just current MGR_APPROVED 2026-06-19 12:07:53 +05:30
cancel-supersede.test.ts feat(po): cancel POs (manager/superuser) + optional supersede link (#53) 2026-06-21 12:20:54 +05:30
company-branding.test.ts feat(po): per-company logo, stamp & brand bar on exported POs 2026-06-21 01:17:23 +05:30
company-crud.test.ts test(companies): cover createCompany/updateCompany actions 2026-06-21 02:05:32 +05:30
confirm-receipt.test.ts test(integration): repair stale integration suite (wip: 97/108) 2026-06-21 02:34:07 +05:30
create-po.test.ts test(integration): repair stale integration suite (wip: 97/108) 2026-06-21 02:34:07 +05:30
discard-po.test.ts test(integration): repair stale integration suite (wip: 97/108) 2026-06-21 02:34:07 +05:30
helpers.ts test(integration): green the last 3 behavioural-drift tests (108/108) 2026-06-21 02:39:41 +05:30
import-api.test.ts test(integration): repair stale integration suite (wip: 97/108) 2026-06-21 02:34:07 +05:30
manager-po-creation.test.ts test(integration): repair stale integration suite (wip: 97/108) 2026-06-21 02:34:07 +05:30
payment-actions.test.ts test(integration): green the last 3 behavioural-drift tests (108/108) 2026-06-21 02:39:41 +05:30
products-search.test.ts test(integration): repair stale integration suite (wip: 97/108) 2026-06-21 02:34:07 +05:30
requisitions.test.ts feat(crewing): Phase 2 — requisitions + relief requests (flagged) 2026-06-22 18:22:59 +05:30
vendor-approval.test.ts test(integration): green the last 3 behavioural-drift tests (108/108) 2026-06-21 02:39:41 +05:30