Files
ashen-realms/.superpowers/sdd/2026-08-18-first-visible-vertical-slice/task-4-report.md
2026-08-18 20:00:40 +02:00

2.8 KiB

Task 4: Health and demo-character API report

RED

  • Re-read every Markdown document below docs/ and inspected combat-screen.png, hunting-screen.png, and world-travel-screen.png before implementation.

  • Added focused health and character-service tests, then ran:

    npm test --workspace=@ashen-realms/api -- health.controller.spec.ts characters.service.spec.ts --runInBand
    
  • Observed the expected RED result: both suites failed because HealthController and CharactersService did not exist.

GREEN

  • Replaced the scaffold root controller/service with HealthModule and CharactersModule.
  • GET /api/health returns { status: 'ok' } without a database query.
  • GET /api/characters/me obtains the fixed demo ID server-side, loads currentLocation, maps baseHp to maxHp and baseAttack to attack, and raises NotFoundException when the seed is absent.
  • Preserved the existing tested configureApplication() global-prefix seam and enabled Nest shutdown hooks in main.ts without repeating prefix configuration.
  • Updated the E2E assertion from the retired hello-world root route to /api/health; it replaces both database-dependent modules so the health test remains database independent.

Verification

Command Result
npm test --workspace=@ashen-realms/api -- health.controller.spec.ts characters.service.spec.ts --runInBand PASS: 2 suites, 3 tests
npm run test:e2e --workspace=@ashen-realms/api -- --runInBand PASS: 1 suite, 2 tests
npm test --workspace=@ashen-realms/api -- --runInBand PASS: 5 suites, 9 tests
npm run build:api PASS
apps/api/node_modules/.bin/prettier.cmd --check <task files> PASS
git diff --check PASS

npx prettier did not resolve the workspace-local executable in this environment; the checked-in workspace binary at apps/api/node_modules/.bin/prettier.cmd was used for the formatting check.

Files

  • Added apps/api/src/health/* and character controller/service/module plus unit tests.
  • Updated apps/api/src/app.module.ts, apps/api/src/main.ts, and apps/api/test/app.e2e-spec.ts.
  • Removed apps/api/src/app.controller.ts, app.controller.spec.ts, and app.service.ts.

Self-review and concerns

  • Confirmed the repository query loads only the required current-location relation and response does not expose persistence-only base-stat names.
  • Confirmed the missing seed path is tested as a 404-producing Nest exception.
  • Confirmed / remains a 404 while /api/health is available through the existing global prefix.
  • No task-specific concerns remain. Pre-existing untracked apps/web/public/images/ and docs/references/Ashen_Realms_Visual_Asset_Style_Guide_V1.md are intentionally excluded.

Commit

  • Pending: feat: expose health and demo character APIs