feat: harden test and registry evidence
This commit is contained in:
+42
-6
@@ -100,9 +100,19 @@
|
||||
},
|
||||
"FE-GATE-005": {
|
||||
"name": "unit",
|
||||
"steps": [{ "script": "test:unit", "expect": "pass" }],
|
||||
"steps": [
|
||||
{ "script": "test:unit", "expect": "pass" },
|
||||
{ "script": "test:coverage", "expect": "pass" },
|
||||
{ "script": "check:coverage:fixture", "expect": "fail" }
|
||||
],
|
||||
"logPath": "artifacts/quality/gates/FE-GATE-005.txt",
|
||||
"evidence": ["artifacts/tests/unit.xml"],
|
||||
"evidence": [
|
||||
"artifacts/tests/unit.xml",
|
||||
"artifacts/tests/coverage.xml",
|
||||
"artifacts/tests/coverage/coverage-summary.json",
|
||||
"artifacts/quality/risk-coverage.json",
|
||||
"artifacts/quality/risk-coverage-fixture.json"
|
||||
],
|
||||
"retentionClass": "merge-cycle"
|
||||
},
|
||||
"FE-GATE-006": {
|
||||
@@ -127,9 +137,24 @@
|
||||
},
|
||||
"FE-GATE-008": {
|
||||
"name": "e2e",
|
||||
"steps": [{ "script": "test:e2e", "expect": "pass" }],
|
||||
"steps": [
|
||||
{ "script": "test:e2e", "expect": "pass" },
|
||||
{ "script": "test:storybook", "expect": "pass" },
|
||||
{ "script": "test:visual", "expect": "pass" },
|
||||
{ "script": "check:test-evidence", "expect": "pass" },
|
||||
{ "script": "check:test-evidence:fixture", "expect": "fail" }
|
||||
],
|
||||
"logPath": "artifacts/quality/gates/FE-GATE-008.txt",
|
||||
"evidence": ["artifacts/tests/e2e/report/index.html"],
|
||||
"evidence": [
|
||||
"artifacts/tests/e2e/report/index.html",
|
||||
"artifacts/tests/e2e/results.xml",
|
||||
"artifacts/tests/storybook/report/index.html",
|
||||
"artifacts/tests/storybook/results.xml",
|
||||
"artifacts/tests/visual/report/index.html",
|
||||
"artifacts/tests/visual/results.xml",
|
||||
"artifacts/quality/test-evidence.json",
|
||||
"artifacts/quality/test-evidence-fixture.json"
|
||||
],
|
||||
"retentionClass": "merge-cycle"
|
||||
},
|
||||
"FE-GATE-009": {
|
||||
@@ -162,6 +187,11 @@
|
||||
{ "script": "check:diagnostics", "expect": "pass" },
|
||||
{ "script": "check:diagnostics:fixture", "expect": "fail" },
|
||||
{ "script": "check:registries", "expect": "pass" },
|
||||
{
|
||||
"script": "check:registries:compatibility-fixtures",
|
||||
"expect": "pass"
|
||||
},
|
||||
{ "script": "check:registries:baseline-fixture", "expect": "fail" },
|
||||
{ "script": "check:registries:fixture", "expect": "fail" },
|
||||
{ "script": "check:routes:fixture", "expect": "fail" }
|
||||
],
|
||||
@@ -175,6 +205,8 @@
|
||||
"artifacts/quality/diagnostics.json",
|
||||
"artifacts/quality/diagnostics-fixture.json",
|
||||
"artifacts/quality/registries.json",
|
||||
"artifacts/quality/registry-compatibility-fixtures.json",
|
||||
"artifacts/quality/registry-baseline-fixture.json",
|
||||
"artifacts/quality/registry-fixture.json",
|
||||
"artifacts/quality/route-registry-fixture.json"
|
||||
],
|
||||
@@ -182,11 +214,15 @@
|
||||
},
|
||||
"FE-GATE-011": {
|
||||
"name": "build",
|
||||
"steps": [{ "script": "build", "expect": "pass" }],
|
||||
"steps": [
|
||||
{ "script": "build", "expect": "pass" },
|
||||
{ "script": "build:storybook", "expect": "pass" }
|
||||
],
|
||||
"logPath": "artifacts/quality/gates/FE-GATE-011.txt",
|
||||
"evidence": [
|
||||
"artifacts/release/build-manifest.json",
|
||||
"artifacts/release/runtime-config.schema.json"
|
||||
"artifacts/release/runtime-config.schema.json",
|
||||
"artifacts/storybook/static/index.html"
|
||||
],
|
||||
"retentionClass": "release-coherence"
|
||||
},
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"snapshotDigest": "e8448e46bc65326e9b2eb23cdce0870242faedb7a354942389c4a95b0e392d90",
|
||||
"owner": "frontend-platform",
|
||||
"reason": "RP-10 initial approved executable registry baseline",
|
||||
"approvedAt": "2026-07-26T07:53:45.969Z"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"changes": []
|
||||
}
|
||||
@@ -1,13 +1,46 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"schemaVersion": 2,
|
||||
"sourceDirectories": [
|
||||
"src/application",
|
||||
"src/presentation",
|
||||
"src/domain"
|
||||
],
|
||||
"registries": [
|
||||
{
|
||||
"registryId": "FE-REG-ROUTE",
|
||||
"path": "src/features/installed-feature-contracts.js",
|
||||
"exportName": "ROUTE_REGISTRY",
|
||||
"owner": "feature-routing-navigation-guard-contract",
|
||||
"owner": "feature-frontend-routing-release-recovery-runtime",
|
||||
"keyField": "routeId",
|
||||
"requiredFields": [
|
||||
"routeId",
|
||||
"path",
|
||||
"paramsSchema",
|
||||
"searchSchema",
|
||||
"access",
|
||||
"loadingSurface",
|
||||
"errorSurface",
|
||||
"chunkId",
|
||||
"title",
|
||||
"navigationLabel",
|
||||
"navigationOrder"
|
||||
],
|
||||
"fieldTypes": {
|
||||
"routeId": "string",
|
||||
"path": "string",
|
||||
"paramsSchema": "string|null",
|
||||
"searchSchema": "string|null",
|
||||
"access": "string",
|
||||
"loadingSurface": "string",
|
||||
"errorSurface": "string",
|
||||
"chunkId": "string",
|
||||
"title": "string",
|
||||
"navigationLabel": "string|null",
|
||||
"navigationOrder": "integer|null"
|
||||
},
|
||||
"uniqueFields": ["routeId", "path", "chunkId"],
|
||||
"allowedValues": {
|
||||
"access": ["public", "session-required", "integration-defined"],
|
||||
"paramsSchema": [null, "NotFoundSplat", "ReferenceResourceParams"],
|
||||
"searchSchema": [null, "ReferenceResourceListQuery"],
|
||||
"loadingSurface": [
|
||||
@@ -23,17 +56,6 @@
|
||||
"route-boundary",
|
||||
"feature-boundary",
|
||||
"not-found"
|
||||
],
|
||||
"chunkId": [
|
||||
"route-home",
|
||||
"route-examples-ui",
|
||||
"route-examples-states",
|
||||
"route-examples-auth",
|
||||
"route-reference-resources",
|
||||
"route-reference-resource-detail",
|
||||
"route-reference-resource-form",
|
||||
"route-reference-resource-status",
|
||||
"route-not-found"
|
||||
]
|
||||
},
|
||||
"references": [
|
||||
@@ -41,16 +63,30 @@
|
||||
"field": "routeId",
|
||||
"registryId": "FE-REG-ROUTE-RUNTIME",
|
||||
"targetField": "routeId"
|
||||
},
|
||||
{
|
||||
"field": "paramsSchema",
|
||||
"registryId": "FE-REG-SCHEMA",
|
||||
"targetField": "schemaId"
|
||||
},
|
||||
{
|
||||
"field": "searchSchema",
|
||||
"registryId": "FE-REG-SCHEMA",
|
||||
"targetField": "schemaId"
|
||||
}
|
||||
],
|
||||
"requiredFields": [
|
||||
"consumers": [
|
||||
{
|
||||
"path": "src/presentation/routes/app-router.tsx",
|
||||
"token": "ROUTE_REGISTRY"
|
||||
}
|
||||
],
|
||||
"breakingFields": [
|
||||
"routeId",
|
||||
"path",
|
||||
"paramsSchema",
|
||||
"searchSchema",
|
||||
"access",
|
||||
"loadingSurface",
|
||||
"errorSurface",
|
||||
"chunkId"
|
||||
]
|
||||
},
|
||||
@@ -59,41 +95,56 @@
|
||||
"path": "src/features/installed-feature-contracts.js",
|
||||
"exportName": "ROUTE_RUNTIME_CONTRACT",
|
||||
"owner": "feature-frontend-routing-release-recovery-runtime",
|
||||
"keyField": "routeId",
|
||||
"requiredFields": [
|
||||
"routeId",
|
||||
"moduleId",
|
||||
"paramsCodec",
|
||||
"searchCodec"
|
||||
],
|
||||
"uniqueFields": ["routeId", "moduleId"],
|
||||
"allowedValues": {
|
||||
"moduleId": [
|
||||
"home-page",
|
||||
"ui-gallery-page",
|
||||
"state-gallery-page",
|
||||
"auth-example-page",
|
||||
"reference-resource-page",
|
||||
"reference-resource-detail-page",
|
||||
"reference-resource-form-page",
|
||||
"reference-resource-status-page",
|
||||
"not-found-page"
|
||||
],
|
||||
"paramsCodec": ["none", "NotFoundSplat", "ReferenceResourceParams"],
|
||||
"searchCodec": ["none", "ReferenceResourceListQuery"]
|
||||
"fieldTypes": {
|
||||
"routeId": "string",
|
||||
"moduleId": "string",
|
||||
"paramsCodec": "string",
|
||||
"searchCodec": "string"
|
||||
},
|
||||
"uniqueFields": ["routeId", "moduleId"],
|
||||
"references": [
|
||||
{
|
||||
"field": "routeId",
|
||||
"registryId": "FE-REG-ROUTE",
|
||||
"targetField": "routeId"
|
||||
},
|
||||
{
|
||||
"field": "paramsCodec",
|
||||
"registryId": "FE-REG-SCHEMA",
|
||||
"targetField": "schemaId"
|
||||
},
|
||||
{
|
||||
"field": "searchCodec",
|
||||
"registryId": "FE-REG-SCHEMA",
|
||||
"targetField": "schemaId"
|
||||
}
|
||||
],
|
||||
"consumers": [
|
||||
{
|
||||
"path": "src/presentation/routes/route-codecs.ts",
|
||||
"token": "ROUTE_RUNTIME_CONTRACT"
|
||||
}
|
||||
],
|
||||
"breakingFields": [
|
||||
"routeId",
|
||||
"moduleId",
|
||||
"paramsCodec",
|
||||
"searchCodec"
|
||||
]
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-API",
|
||||
"path": "src/features/installed-feature-contracts.js",
|
||||
"exportName": "API_OPERATIONS",
|
||||
"owner": "feature-api-client-response-envelope-contract",
|
||||
"owner": "feature-frontend-api-client-response-envelope-contract",
|
||||
"keyField": "operationId",
|
||||
"requiredFields": [
|
||||
"method",
|
||||
"path",
|
||||
@@ -106,20 +157,127 @@
|
||||
"requestSchema",
|
||||
"responseSchema",
|
||||
"owner"
|
||||
],
|
||||
"fieldTypes": {
|
||||
"method": "string",
|
||||
"path": "string",
|
||||
"operationId": "string",
|
||||
"auth": "string",
|
||||
"timeoutMs": "integer|null",
|
||||
"idempotency": "string",
|
||||
"retry": "string",
|
||||
"requestSource": "string",
|
||||
"requestSchema": "string",
|
||||
"responseSchema": "string",
|
||||
"owner": "string"
|
||||
},
|
||||
"uniqueFields": ["operationId"],
|
||||
"allowedValues": {
|
||||
"method": ["GET", "POST", "PUT", "PATCH", "DELETE"],
|
||||
"auth": ["none", "external-session"],
|
||||
"idempotency": ["safe", "keyed", "none"],
|
||||
"retry": ["runtime", "never"],
|
||||
"requestSource": ["none", "search", "body"]
|
||||
},
|
||||
"references": [
|
||||
{
|
||||
"field": "requestSchema",
|
||||
"registryId": "FE-REG-SCHEMA",
|
||||
"targetField": "schemaId"
|
||||
},
|
||||
{
|
||||
"field": "responseSchema",
|
||||
"registryId": "FE-REG-SCHEMA",
|
||||
"targetField": "schemaId"
|
||||
}
|
||||
],
|
||||
"consumerIdentityField": "operationId",
|
||||
"consumerDirectories": [
|
||||
"src/features/reference-feature/adapters",
|
||||
"src/features/reference-feature/application"
|
||||
],
|
||||
"breakingFields": [
|
||||
"method",
|
||||
"path",
|
||||
"operationId",
|
||||
"auth",
|
||||
"idempotency",
|
||||
"requestSource",
|
||||
"requestSchema",
|
||||
"responseSchema"
|
||||
]
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-SCHEMA",
|
||||
"path": "src/features/installed-feature-contracts.js",
|
||||
"exportName": "SCHEMA_REGISTRY",
|
||||
"owner": "feature-frontend-contract-schema-registry",
|
||||
"keyField": "schemaId",
|
||||
"requiredFields": ["schemaId", "boundary", "owner", "runtime"],
|
||||
"fieldTypes": {
|
||||
"schemaId": "string",
|
||||
"boundary": "string",
|
||||
"owner": "string",
|
||||
"runtime": "string"
|
||||
},
|
||||
"uniqueFields": ["schemaId"],
|
||||
"allowedValues": {
|
||||
"boundary": [
|
||||
"route-params",
|
||||
"route-search",
|
||||
"route-search-api-request",
|
||||
"api-request",
|
||||
"api-response"
|
||||
],
|
||||
"runtime": ["zod"]
|
||||
},
|
||||
"consumerIdentityField": "schemaId",
|
||||
"consumerDirectories": [
|
||||
"src/presentation/routes",
|
||||
"src/features/reference-feature/presentation",
|
||||
"src/features/reference-feature/contracts"
|
||||
],
|
||||
"breakingFields": ["schemaId", "boundary", "runtime"]
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-ENV",
|
||||
"path": "src/contracts/env.js",
|
||||
"exportName": "ENV_REGISTRY",
|
||||
"owner": "feature-frontend-env-runtime-config-contract",
|
||||
"requiredFields": ["phase", "classification", "required", "defaultValue"]
|
||||
"requiredFields": ["phase", "classification", "required", "defaultValue"],
|
||||
"fieldTypes": {
|
||||
"phase": "string",
|
||||
"classification": "string",
|
||||
"required": "boolean",
|
||||
"defaultValue": "string|integer|boolean|null"
|
||||
},
|
||||
"allowedValues": {
|
||||
"phase": ["build", "runtime"],
|
||||
"classification": [
|
||||
"public",
|
||||
"public-sensitive",
|
||||
"public-metadata",
|
||||
"compile-time"
|
||||
]
|
||||
},
|
||||
"consumers": [
|
||||
{
|
||||
"path": "src/bootstrap/runtime-config-schema.js",
|
||||
"token": "APP_ENV"
|
||||
},
|
||||
{
|
||||
"path": "src/contracts/env.js",
|
||||
"token": "getBuildConfig"
|
||||
}
|
||||
],
|
||||
"breakingFields": ["phase", "classification", "required"]
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-STORAGE",
|
||||
"path": "src/contracts/storage-keys.js",
|
||||
"exportName": "STORAGE_REGISTRY",
|
||||
"owner": "feature-frontend-storage-registry-contract",
|
||||
"keyField": "logicalName",
|
||||
"requiredFields": [
|
||||
"logicalName",
|
||||
"physicalKey",
|
||||
@@ -129,6 +287,44 @@
|
||||
"ttl",
|
||||
"migration",
|
||||
"quotaFallback"
|
||||
],
|
||||
"fieldTypes": {
|
||||
"logicalName": "string",
|
||||
"physicalKey": "string",
|
||||
"backend": "string",
|
||||
"classification": "string",
|
||||
"schemaVersion": "integer",
|
||||
"ttl": "integer|string|null",
|
||||
"migration": "string|function",
|
||||
"quotaFallback": "string"
|
||||
},
|
||||
"uniqueFields": ["logicalName", "physicalKey"],
|
||||
"allowedValues": {
|
||||
"backend": [
|
||||
"memory",
|
||||
"sessionStorage",
|
||||
"localStorage",
|
||||
"indexedDB",
|
||||
"disabled",
|
||||
"forbidden"
|
||||
],
|
||||
"classification": [
|
||||
"public-preference",
|
||||
"opaque-cache",
|
||||
"sensitive-forbidden"
|
||||
],
|
||||
"quotaFallback": ["memory", "no-persist", "feature-disable"]
|
||||
},
|
||||
"consumerIdentityField": "logicalName",
|
||||
"consumerDirectories": ["src", "tests"],
|
||||
"orphanExemptRows": ["QUERY_PERSISTENCE", "AUTH_TOKEN"],
|
||||
"breakingFields": [
|
||||
"logicalName",
|
||||
"physicalKey",
|
||||
"backend",
|
||||
"classification",
|
||||
"schemaVersion",
|
||||
"migration"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -136,6 +332,7 @@
|
||||
"path": "src/contracts/errors.js",
|
||||
"exportName": "ERROR_REGISTRY",
|
||||
"owner": "feature-frontend-error-classification-boundary-contract",
|
||||
"keyField": "kind",
|
||||
"requiredFields": [
|
||||
"kind",
|
||||
"defaultRetryable",
|
||||
@@ -144,13 +341,41 @@
|
||||
"action",
|
||||
"telemetryEvent",
|
||||
"redaction"
|
||||
]
|
||||
],
|
||||
"fieldTypes": {
|
||||
"kind": "string",
|
||||
"defaultRetryable": "boolean",
|
||||
"severity": "string",
|
||||
"userMessageKey": "string",
|
||||
"action": "string",
|
||||
"telemetryEvent": "string",
|
||||
"redaction": "array"
|
||||
},
|
||||
"uniqueFields": ["kind"],
|
||||
"allowedValues": {
|
||||
"severity": ["info", "warning", "error"],
|
||||
"action": [
|
||||
"retry",
|
||||
"reauth",
|
||||
"navigate",
|
||||
"reload-once",
|
||||
"contact-support",
|
||||
"none"
|
||||
]
|
||||
},
|
||||
"consumers": [
|
||||
{
|
||||
"path": "src/adapters/http/client.js",
|
||||
"token": "failure("
|
||||
}
|
||||
],
|
||||
"breakingFields": ["kind", "userMessageKey", "action", "telemetryEvent"]
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-QUERY",
|
||||
"path": "src/features/installed-feature-contracts.js",
|
||||
"exportName": "QUERY_REGISTRY",
|
||||
"owner": "feature-server-state-caching-contract",
|
||||
"owner": "feature-frontend-server-state-caching-contract",
|
||||
"requiredFields": [
|
||||
"namespace",
|
||||
"serialization",
|
||||
@@ -158,13 +383,39 @@
|
||||
"invalidation",
|
||||
"version",
|
||||
"persistence"
|
||||
],
|
||||
"fieldTypes": {
|
||||
"namespace": "array",
|
||||
"serialization": "string",
|
||||
"identity": "string",
|
||||
"invalidation": "string",
|
||||
"version": "integer",
|
||||
"persistence": "string"
|
||||
},
|
||||
"uniqueFields": ["namespace"],
|
||||
"allowedValues": {
|
||||
"persistence": ["disabled"]
|
||||
},
|
||||
"consumers": [
|
||||
{
|
||||
"path": "src/features/reference-feature/contracts/reference-feature-contract.js",
|
||||
"token": "referenceQueryKeys"
|
||||
}
|
||||
],
|
||||
"breakingFields": [
|
||||
"namespace",
|
||||
"serialization",
|
||||
"identity",
|
||||
"version",
|
||||
"persistence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"registryId": "FE-REG-TELEMETRY",
|
||||
"path": "src/contracts/telemetry.js",
|
||||
"exportName": "TELEMETRY_REGISTRY",
|
||||
"owner": "feature-frontend-observability-logging-trace-contract",
|
||||
"owner": "feature-frontend-diagnostics-telemetry-runtime",
|
||||
"keyField": "eventName",
|
||||
"requiredFields": [
|
||||
"eventName",
|
||||
"trigger",
|
||||
@@ -173,6 +424,31 @@
|
||||
"forbiddenAttributes",
|
||||
"sampling",
|
||||
"delivery"
|
||||
],
|
||||
"fieldTypes": {
|
||||
"eventName": "string",
|
||||
"trigger": "string",
|
||||
"requiredAttributes": "array",
|
||||
"optionalAttributes": "array",
|
||||
"forbiddenAttributes": "array",
|
||||
"sampling": "string",
|
||||
"delivery": "string"
|
||||
},
|
||||
"uniqueFields": ["eventName"],
|
||||
"allowedValues": {
|
||||
"delivery": ["best-effort"]
|
||||
},
|
||||
"consumers": [
|
||||
{
|
||||
"path": "scripts/check-diagnostics.mjs",
|
||||
"token": "TELEMETRY_REGISTRY"
|
||||
}
|
||||
],
|
||||
"breakingFields": [
|
||||
"eventName",
|
||||
"requiredAttributes",
|
||||
"forbiddenAttributes",
|
||||
"delivery"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -180,11 +456,21 @@
|
||||
"path": "src/contracts/release-tokens.js",
|
||||
"exportName": "RELEASE_TOKEN_REGISTRY",
|
||||
"owner": "feature-frontend-release-cache-rollback-contract",
|
||||
"requiredFields": ["token", "source", "compatibilityRole"]
|
||||
"keyField": "token",
|
||||
"requiredFields": ["token", "source", "compatibilityRole"],
|
||||
"fieldTypes": {
|
||||
"token": "string",
|
||||
"source": "string",
|
||||
"compatibilityRole": "string"
|
||||
},
|
||||
"uniqueFields": ["token"],
|
||||
"consumers": [
|
||||
{
|
||||
"path": "src/bootstrap/load-release-manifest.js",
|
||||
"token": "assetManifestHash"
|
||||
}
|
||||
],
|
||||
"breakingFields": ["token", "source", "compatibilityRole"]
|
||||
}
|
||||
],
|
||||
"compatibilityImpact": {
|
||||
"allowed": ["none", "additive", "behavior-change", "breaking"],
|
||||
"current": "behavior-change"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"summary": {
|
||||
"lines": 80,
|
||||
"statements": 78,
|
||||
"functions": 85,
|
||||
"branches": 68
|
||||
},
|
||||
"criticalModules": [
|
||||
{
|
||||
"path": "src/adapters/http/retry-policy.js",
|
||||
"minimum": {
|
||||
"lines": 80,
|
||||
"statements": 78,
|
||||
"functions": 95,
|
||||
"branches": 78
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "src/adapters/storage/browser-storage-adapter.js",
|
||||
"minimum": {
|
||||
"lines": 60,
|
||||
"statements": 60,
|
||||
"functions": 70,
|
||||
"branches": 60
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "src/adapters/telemetry/best-effort-telemetry.js",
|
||||
"minimum": {
|
||||
"lines": 85,
|
||||
"statements": 85,
|
||||
"functions": 70,
|
||||
"branches": 75
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "src/application/policies/compatibility.js",
|
||||
"minimum": {
|
||||
"lines": 95,
|
||||
"statements": 95,
|
||||
"functions": 95,
|
||||
"branches": 75
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "src/application/policies/performance-budgets.js",
|
||||
"minimum": {
|
||||
"lines": 80,
|
||||
"statements": 80,
|
||||
"functions": 80,
|
||||
"branches": 40
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "src/application/policies/promotion-readiness.js",
|
||||
"minimum": {
|
||||
"lines": 95,
|
||||
"statements": 95,
|
||||
"functions": 95,
|
||||
"branches": 95
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "src/application/use-cases/decide-chunk-recovery.js",
|
||||
"minimum": {
|
||||
"lines": 90,
|
||||
"statements": 90,
|
||||
"functions": 95,
|
||||
"branches": 85
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "src/contracts/diagnostics.ts",
|
||||
"minimum": {
|
||||
"lines": 68,
|
||||
"statements": 68,
|
||||
"functions": 95,
|
||||
"branches": 58
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "scripts/lib/registry-compatibility.mjs",
|
||||
"minimum": {
|
||||
"lines": 80,
|
||||
"statements": 80,
|
||||
"functions": 85,
|
||||
"branches": 60
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user