fix: harden engine, enrich failure diagnostics, close adoption gaps
- P0: CLI verify now honors test budget with seeded multi-sample - P0: Observe sampling enforced via Math.random() gate in hook-validator - P1: Remove misleading undici-mock-agent isolation option - P1: Qualify reuses shared discoverRouteDetails() with warnings - P1: Chaos/scenario config exposed via preset schema - P1: README/docs limitations updated to current state - P2: Nested response annotations prefer 2xx deterministically - P2: --changed documented as heuristic in verify.md - Add observe sink tests (sampling 0/1, sink failure non-interference) - Add verify runs regression tests (scale, determinism, variants) - Add configured-scenario qualify test (independent of OAuth fixture) - Add coverageBreakdown to qualify artifacts (per-gate route coverage) - Add production-style observe example with real sink in docs/observe.md - Add nightly/staging vs PR gating guidance to docs/qualify.md - Enrich VerifyFailure with formula-aware diagnostics: status:201 => 'HTTP 200', body field checks => actual values - Remove stale observe CLI activation message - Document outbound mocks as process-global in getting-started.md - Refresh APOPHIS_ADOPTION_AUDIT.md with current state 903 tests pass, build clean, typecheck clean.
This commit is contained in:
+25
-8
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"name": "@apophis/fastify",
|
||||
"version": "2.0.0",
|
||||
"version": "2.7.0",
|
||||
"description": "Contract-driven API testing plugin for Fastify with property-based testing, timeout enforcement, redirect capture, and deterministic concurrency",
|
||||
"main": "dist/index.js",
|
||||
"types": "index.d.ts",
|
||||
"types": "dist/index.d.ts",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"apophis": "dist/cli/index.js"
|
||||
@@ -11,12 +11,28 @@
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/index.js",
|
||||
"types": "./index.d.ts"
|
||||
"types": "./dist/index.d.ts"
|
||||
},
|
||||
"./extension/factories": {
|
||||
"import": "./dist/extension/factories.js",
|
||||
"types": "./dist/extension/factories.d.ts"
|
||||
},
|
||||
"./extensions": {
|
||||
"import": "./dist/extensions/index.js",
|
||||
"types": "./dist/extensions/index.d.ts"
|
||||
},
|
||||
"./extensions/sse": {
|
||||
"import": "./dist/extensions/sse/index.js",
|
||||
"types": "./dist/extensions/sse/index.d.ts"
|
||||
},
|
||||
"./extensions/websocket": {
|
||||
"import": "./dist/extensions/websocket/index.js",
|
||||
"types": "./dist/extensions/websocket/index.d.ts"
|
||||
},
|
||||
"./extensions/serializers": {
|
||||
"import": "./dist/extensions/serializers/index.js",
|
||||
"types": "./dist/extensions/serializers/index.d.ts"
|
||||
},
|
||||
"./extensions/*": {
|
||||
"import": "./dist/extensions/*.js",
|
||||
"types": "./dist/extensions/*.d.ts"
|
||||
@@ -28,18 +44,18 @@
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"index.d.ts",
|
||||
"README.md",
|
||||
"LICENSE",
|
||||
"docs"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^20.0.0 || ^22.0.0"
|
||||
"node": ">=20.18.1 <21 || >=22 <23"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"prepare": "npm run build",
|
||||
"build": "tsc -p tsconfig.build.json && chmod +x dist/cli/index.js",
|
||||
"test": "npm run build && npm run test:src && npm run test:cli",
|
||||
"test:dist": "NODE_ENV=test node --test dist/test/*.test.js",
|
||||
|
||||
"test:src": "tsx --test src/test/*.test.ts",
|
||||
"test:cli": "tsx --test src/test/cli/*.test.ts",
|
||||
"test:cli:goldens": "tsx --test src/test/cli/goldens.test.ts",
|
||||
@@ -52,6 +68,8 @@
|
||||
"profile:qualify": "npm run build && mkdir -p .profiles && node --cpu-prof --cpu-prof-dir=.profiles --cpu-prof-name=qualify.cpuprofile dist/cli/index.js qualify --cwd src/cli/__fixtures__/protocol-lab --profile oauth-nightly --seed 42 --quiet",
|
||||
"profile:qualify:quick": "npm run build && mkdir -p .profiles && node --cpu-prof --cpu-prof-dir=.profiles --cpu-prof-name=qualify-quick.cpuprofile dist/cli/index.js qualify --cwd src/cli/__fixtures__/protocol-lab --profile oauth-nightly --seed 42 --quiet",
|
||||
"clean": "rm -rf dist",
|
||||
"typecheck": "tsc --noEmit",
|
||||
"lint": "tsc --noEmit",
|
||||
"apophis:verify": "apophis verify --profile quick",
|
||||
"apophis:doctor": "apophis doctor"
|
||||
},
|
||||
@@ -83,7 +101,6 @@
|
||||
"fastify-plugin": "^5.0.0",
|
||||
"picocolors": "^1.0.0",
|
||||
"pino": "^10.3.1",
|
||||
"recheck": "^4.5.0",
|
||||
"safe-regex": "^2.1.1",
|
||||
"undici": "^7.0.0"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user