Files
agentic-dev/packages/blog/src/feature.manifest.ts
Danijel Martinek 15db9c48cb refactor(blog,marketing-pages): wire coverage helper + declare manifest bands
Migrates blog and marketing-pages to the same pattern auth landed in
f7baa8b: vitest config consumes vitestThresholdsFromBands(
DEFAULT_COVERAGE_BANDS) instead of the duplicated hand-written
thresholds block, and each manifest declares its coverage section
explicitly.

Verified semantically identical to the previous hand-written
thresholds — the same numbers come out the other end of the helper.
No new regressions:
  - blog: 89 tests, 96.33% overall, all bands green
  - marketing-pages: 67 tests, 95.28% overall — controllers/ shows a
    real 93.54% lines / 90.9% branches gap that has been there since
    before this refactor (the previous hand-written threshold was the
    same 100%/95%). This is one of the L0 unification work items
    listed in the PRD's findings; capturing here as the third feature
    with real test gaps (navigation, media, marketing-pages).

Three of five features now drive their vitest thresholds from the
manifest helper: auth ✓, blog ✓, marketing-pages ✓. Navigation and
media stay on the legacy config until L0 unification closes their
test gaps (touching them would expose the same failures and add
nothing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 14:13:08 +02:00

53 lines
1.1 KiB
TypeScript

import { defineFeature } from "@repo/core-shared/conformance";
/**
* The blog feature's conformance manifest.
*/
export const blogManifest = defineFeature({
name: "blog",
requiredCores: [],
useCases: {
getArticles: {
mutates: false,
audits: [],
publishes: [],
consumes: [],
},
getArticleBySlug: {
mutates: false,
audits: [],
publishes: [],
consumes: [],
},
createArticle: {
mutates: true,
audits: [],
publishes: [],
consumes: [],
},
},
realtimeChannels: [],
jobs: [],
coverage: {
bands: {
baseline: { statements: 80, branches: 75, functions: 80, lines: 80 },
entities: { statements: 100, branches: 100, functions: 100, lines: 100 },
"use-cases": {
statements: 100,
branches: 95,
functions: 100,
lines: 100,
},
controllers: {
statements: 100,
branches: 95,
functions: 100,
lines: 100,
},
},
mutationTargets: ["entities", "use-cases"],
},
} as const);
export type BlogManifest = typeof blogManifest;