Files
mercadodevida/work/artifacts/F-026/implementer.md
2026-08-17 22:23:10 +02:00

1.1 KiB

Implementer — F-026 CMS module

Summary

Implemented simple CMS module with slug-based public pages and draft/publish states. Slug uniqueness enforced at DB level. Admin operations require admin role.

Files changed

  • project/migrations/020_cms.js
  • project/src/modules/cms/**
  • project/src/app/build-app.ts

Acceptance evidence

  • AC1 published page: cms-service.test.ts returns page for published status.
  • AC2 draft page: same test rejects with PageNotPublishedError.
  • AC3 duplicate slug: schema enforces UNIQUE (slug); repository uses ON CONFLICT DO NOTHING and service throws DuplicateSlugError.

Commands run

  • cd project && npm run lint/typecheck/build/test passed
  • cd project && TEST_DATABASE_URL='postgres://mdv:mdv_dev_only@localhost:5432/mdv_test' npm run test:integration -- migrations.itest passed; 14 files, 53 tests
  • ./scripts/verify.sh passed

Notes

  • Slugs restricted to kebab-case via zod regex.
  • Public store front consumption is out of scope for this slice; service exposes getPublicPageBySlug which throws when status is not 'published'.