@nifrajs/testing 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -68,6 +68,32 @@ const report = await assertAdversarialContract(app, {
68
68
  request for each declared response schema, so use an isolated test app/database-never point the
69
69
  laboratory at production.
70
70
 
71
+ ### Opaque validators (zod / valibot / arktype)
72
+
73
+ A `t` schema exposes JSON Schema, so witnesses and constraint-driven mutations are synthesized
74
+ automatically. A Standard Schema validator that carries no JSON Schema (zod, valibot, arktype) validates
75
+ requests fine, but the laboratory can't inspect it - those routes report `NO_WITNESS` and get only
76
+ type-confusion mutations. Pass `reflectJsonSchema` to convert such a validator; for zod, use the shipped
77
+ bridge:
78
+
79
+ ```ts
80
+ import { zodJsonSchema } from "@nifrajs/testing/zod"
81
+
82
+ await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
83
+ ```
84
+
85
+ This turns on witness synthesis and constraint-driven mutations (min/max, length, pattern, enum, format)
86
+ for zod routes. `createMockServer` from `@nifrajs/mock` accepts the same hook. `zod` is an optional peer -
87
+ only projects that import `@nifrajs/testing/zod` need it installed.
88
+
89
+ ### Response conformance needs a declared contract
90
+
91
+ Response conformance only runs for routes that declare a `response` schema. A response type inferred from a
92
+ handler's return is a client-side contract the laboratory cannot see, so an app that declares none checks
93
+ zero response targets even with `validateResponses` on - the report surfaces this in `advisories`. Declare
94
+ `response:` on the routes you want verified. (Runtime response validation in the server itself is a
95
+ separate opt-in, installed by the `responseContract()` plugin.)
96
+
71
97
  `nifra levels` L4 uses this same deep engine through the explicitly configured isolated executor;
72
98
  the older core invariant runner remains only as a compatibility export.
73
99
 
@@ -6,7 +6,7 @@
6
6
  * Schema validator, and then drives it through one or more real fetch runtimes. Declared success
7
7
  * responses are validated off the hot path as part of the same laboratory run.
8
8
  */
9
- import { type ReflectedRoute } from "@nifrajs/core/reflection";
9
+ import { type JsonSchema, type ReflectedRoute } from "@nifrajs/core/reflection";
10
10
  type HeaderSource = ConstructorParameters<typeof Headers>[0];
11
11
  export type ContractTarget = "body" | "query" | "response";
12
12
  export type ContractCaseKind = "input-rejection" | "response-conformance";
@@ -71,6 +71,14 @@ export interface AdversarialContractOptions {
71
71
  readonly maxShrinkAttempts?: number;
72
72
  /** Replay only these stable case IDs. Coverage gaps are advisory when this is set. */
73
73
  readonly only?: string | readonly string[];
74
+ /**
75
+ * Derive an inspectable JSON Schema from a validator that carries none (zod/valibot/arktype expose a
76
+ * Standard Schema validator but no `.jsonSchema`). Called for any body/query schema whose `jsonSchema`
77
+ * is undefined; a non-undefined return turns on witness synthesis AND constraint-driven mutation
78
+ * generation for that route. Fail-safe: throwing or returning undefined leaves the schema opaque
79
+ * (NO_WITNESS, as today). Ready-made for zod: `import { zodJsonSchema } from "@nifrajs/testing/zod"`.
80
+ */
81
+ readonly reflectJsonSchema?: (schema: unknown) => JsonSchema | undefined;
74
82
  }
75
83
  export type ContractCoverageGapCode = "NO_CONTRACT_TARGETS" | "NO_VALIDATOR" | "NO_WITNESS" | "INVALID_WITNESS" | "WITNESS_TOO_LARGE" | "UNSUPPORTED_BODY_METHOD" | "NO_REJECTED_MUTATION" | "NO_RUNTIME" | "INVALID_RUNTIME" | "CASE_NOT_FOUND";
76
84
  export interface ContractCoverageGap {
@@ -107,6 +115,8 @@ export interface AdversarialContractReport {
107
115
  readonly results: readonly AdversarialContractResult[];
108
116
  readonly failures: readonly AdversarialContractResult[];
109
117
  readonly gaps: readonly ContractCoverageGap[];
118
+ /** Non-fatal notes about coverage that is legitimately absent (does not affect `ok`). */
119
+ readonly advisories: readonly string[];
110
120
  readonly counts: {
111
121
  readonly passed: number;
112
122
  readonly failed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
@@ -270,6 +270,24 @@ const queryInput = (value) => {
270
270
  }
271
271
  return result;
272
272
  };
273
+ /** Return a reflection with `jsonSchema` backfilled from `reflect(standard)` when it is otherwise absent.
274
+ * No-op when the reflection already has a JSON Schema, has no validator, or no hook is supplied. A hook
275
+ * that throws is swallowed - the schema stays opaque, exactly as before the hook existed. This is what
276
+ * lets an opaque validator (zod/valibot) get witness synthesis + constraint-driven mutations. */
277
+ const withReflectedJsonSchema = (reflection, reflect) => {
278
+ if (reflect === undefined ||
279
+ reflection.jsonSchema !== undefined ||
280
+ reflection.standard === undefined) {
281
+ return reflection;
282
+ }
283
+ try {
284
+ const jsonSchema = reflect(reflection.standard);
285
+ return jsonSchema === undefined ? reflection : { ...reflection, jsonSchema };
286
+ }
287
+ catch {
288
+ return reflection;
289
+ }
290
+ };
273
291
  async function resolveInput(routeKey, target, reflection, witness, seed, maxWitnessBytes) {
274
292
  if (reflection.standard === undefined) {
275
293
  return {
@@ -513,7 +531,7 @@ async function buildLaboratories(routes, options, seed, gaps) {
513
531
  });
514
532
  }
515
533
  else {
516
- const resolved = await resolveInput(routeKey, "body", route.schema.body, witness, seed, maxWitnessBytes);
534
+ const resolved = await resolveInput(routeKey, "body", withReflectedJsonSchema(route.schema.body, options.reflectJsonSchema), witness, seed, maxWitnessBytes);
517
535
  if (resolved.ok)
518
536
  body = resolved.input;
519
537
  else
@@ -522,7 +540,7 @@ async function buildLaboratories(routes, options, seed, gaps) {
522
540
  }
523
541
  if (route.schema?.query !== undefined) {
524
542
  targetCount += 1;
525
- const resolved = await resolveInput(routeKey, "query", route.schema.query, witness, seed, maxWitnessBytes);
543
+ const resolved = await resolveInput(routeKey, "query", withReflectedJsonSchema(route.schema.query, options.reflectJsonSchema), witness, seed, maxWitnessBytes);
526
544
  if (resolved.ok)
527
545
  query = resolved.input;
528
546
  else
@@ -737,6 +755,17 @@ export async function runAdversarialContract(app, options = {}) {
737
755
  }
738
756
  const coverageRequired = options.requireCoverage ?? options.only === undefined;
739
757
  const fatalGap = gaps.some((gap) => gap.code === "NO_RUNTIME" || gap.code === "INVALID_RUNTIME" || gap.code === "CASE_NOT_FOUND");
758
+ // Non-fatal: surface the silent-zero-coverage trap. Response conformance needs a DECLARED `response`
759
+ // schema; a response type inferred from the handler return is a client-side contract the laboratory
760
+ // cannot see. Left as an advisory (not a gap) so an inference-only app's suite stays green.
761
+ const advisories = [];
762
+ if (options.validateResponses !== false &&
763
+ routes.length > 0 &&
764
+ !laboratories.some((laboratory) => laboratory.route.schema?.response !== undefined)) {
765
+ advisories.push("validateResponses is on, but no selected route declares a `response` schema, so response " +
766
+ "conformance checked 0 targets. Response types inferred from a handler's return are a client-side " +
767
+ "contract only - declare `response:` on the routes you want the laboratory to verify.");
768
+ }
740
769
  return {
741
770
  ok: failures.length === 0 && !fatalGap && (!coverageRequired || gaps.length === 0),
742
771
  seed,
@@ -746,6 +775,7 @@ export async function runAdversarialContract(app, options = {}) {
746
775
  results,
747
776
  failures,
748
777
  gaps,
778
+ advisories,
749
779
  counts: {
750
780
  passed: results.length - failures.length,
751
781
  failed: failures.length,
@@ -1 +1 @@
1
- {"version":3,"file":"adversarial.js","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adversarial.js","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
package/dist/zod.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ /**
2
+ * `@nifrajs/testing/zod` - bridge a zod schema to the inspectable JSON Schema the adversarial laboratory
3
+ * and `@nifrajs/mock` generate from. zod implements Standard Schema (nifra already VALIDATES with it) but
4
+ * carries no `.jsonSchema`, so without this the laboratory reports NO_WITNESS for every zod route and emits
5
+ * only generic type-confusion mutations, and the mock server returns `{}` for zod responses. Wire it in:
6
+ *
7
+ * import { zodJsonSchema } from "@nifrajs/testing/zod"
8
+ * await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
9
+ * // and/or: createMockServer(app, { reflectJsonSchema: zodJsonSchema })
10
+ *
11
+ * zod is an OPTIONAL peer: this module is only reachable through the `./zod` subpath, so a non-zod project
12
+ * never loads zod. Requires the `z.toJSONSchema` era (zod 4; verified against 4.4.3).
13
+ */
14
+ import type { JsonSchema } from "@nifrajs/core/reflection";
15
+ /**
16
+ * Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
17
+ * value is not a convertible zod schema. Options chosen for this consumer:
18
+ * - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
19
+ * - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
20
+ * - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
21
+ *
22
+ * Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
23
+ * (NO_WITNESS / `{}`), exactly as before this bridge existed.
24
+ */
25
+ export declare function zodJsonSchema(schema: unknown): JsonSchema | undefined;
26
+ //# sourceMappingURL=zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAQ1D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAQrE"}
package/dist/zod.js ADDED
@@ -0,0 +1,27 @@
1
+ import * as z from "zod";
2
+ // Accessed defensively so a zod build without `toJSONSchema` degrades to today's behavior rather than
3
+ // crashing at import. Present since zod 4.
4
+ const toJSONSchema = z
5
+ .toJSONSchema;
6
+ /**
7
+ * Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
8
+ * value is not a convertible zod schema. Options chosen for this consumer:
9
+ * - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
10
+ * - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
11
+ * - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
12
+ *
13
+ * Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
14
+ * (NO_WITNESS / `{}`), exactly as before this bridge existed.
15
+ */
16
+ export function zodJsonSchema(schema) {
17
+ if (typeof toJSONSchema !== "function")
18
+ return undefined;
19
+ try {
20
+ const json = toJSONSchema(schema, { target: "draft-7", io: "input", reused: "inline" });
21
+ return json === null || json === undefined ? undefined : json;
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,sGAAsG;AACtG,2CAA2C;AAC3C,MAAM,YAAY,GAAI,CAAwE;KAC3F,YAAY,CAAA;AAEf;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,OAAO,YAAY,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvF,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAmB,CAAA;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/testing",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Contract-derived adversarial tests, runtime-matrix response conformance, and cookie-aware in-process sessions for Nifra apps.",
5
5
  "keywords": [
6
6
  "bun",
@@ -25,6 +25,11 @@
25
25
  "bun": "./src/certification.ts",
26
26
  "types": "./dist/certification.d.ts",
27
27
  "default": "./dist/certification.js"
28
+ },
29
+ "./zod": {
30
+ "bun": "./src/zod.ts",
31
+ "types": "./dist/zod.d.ts",
32
+ "default": "./dist/zod.js"
28
33
  }
29
34
  },
30
35
  "files": [
@@ -37,9 +42,17 @@
37
42
  },
38
43
  "license": "MIT",
39
44
  "dependencies": {
40
- "@nifrajs/client": "2.3.0",
41
- "@nifrajs/core": "2.3.0",
42
- "@nifrajs/mock": "2.3.0"
45
+ "@nifrajs/client": "2.4.0",
46
+ "@nifrajs/core": "2.4.0",
47
+ "@nifrajs/mock": "2.4.0"
48
+ },
49
+ "peerDependencies": {
50
+ "zod": ">=4.0.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "zod": {
54
+ "optional": true
55
+ }
43
56
  },
44
57
  "publishConfig": {
45
58
  "access": "public"
@@ -98,6 +98,14 @@ export interface AdversarialContractOptions {
98
98
  readonly maxShrinkAttempts?: number
99
99
  /** Replay only these stable case IDs. Coverage gaps are advisory when this is set. */
100
100
  readonly only?: string | readonly string[]
101
+ /**
102
+ * Derive an inspectable JSON Schema from a validator that carries none (zod/valibot/arktype expose a
103
+ * Standard Schema validator but no `.jsonSchema`). Called for any body/query schema whose `jsonSchema`
104
+ * is undefined; a non-undefined return turns on witness synthesis AND constraint-driven mutation
105
+ * generation for that route. Fail-safe: throwing or returning undefined leaves the schema opaque
106
+ * (NO_WITNESS, as today). Ready-made for zod: `import { zodJsonSchema } from "@nifrajs/testing/zod"`.
107
+ */
108
+ readonly reflectJsonSchema?: (schema: unknown) => JsonSchema | undefined
101
109
  }
102
110
 
103
111
  export type ContractCoverageGapCode =
@@ -149,6 +157,8 @@ export interface AdversarialContractReport {
149
157
  readonly results: readonly AdversarialContractResult[]
150
158
  readonly failures: readonly AdversarialContractResult[]
151
159
  readonly gaps: readonly ContractCoverageGap[]
160
+ /** Non-fatal notes about coverage that is legitimately absent (does not affect `ok`). */
161
+ readonly advisories: readonly string[]
152
162
  readonly counts: {
153
163
  readonly passed: number
154
164
  readonly failed: number
@@ -491,6 +501,29 @@ const queryInput = (value: unknown): unknown | undefined => {
491
501
  return result
492
502
  }
493
503
 
504
+ /** Return a reflection with `jsonSchema` backfilled from `reflect(standard)` when it is otherwise absent.
505
+ * No-op when the reflection already has a JSON Schema, has no validator, or no hook is supplied. A hook
506
+ * that throws is swallowed - the schema stays opaque, exactly as before the hook existed. This is what
507
+ * lets an opaque validator (zod/valibot) get witness synthesis + constraint-driven mutations. */
508
+ const withReflectedJsonSchema = (
509
+ reflection: SchemaReflection,
510
+ reflect: AdversarialContractOptions["reflectJsonSchema"],
511
+ ): SchemaReflection => {
512
+ if (
513
+ reflect === undefined ||
514
+ reflection.jsonSchema !== undefined ||
515
+ reflection.standard === undefined
516
+ ) {
517
+ return reflection
518
+ }
519
+ try {
520
+ const jsonSchema = reflect(reflection.standard)
521
+ return jsonSchema === undefined ? reflection : { ...reflection, jsonSchema }
522
+ } catch {
523
+ return reflection
524
+ }
525
+ }
526
+
494
527
  async function resolveInput(
495
528
  routeKey: string,
496
529
  target: InputTarget,
@@ -802,7 +835,7 @@ async function buildLaboratories(
802
835
  const resolved = await resolveInput(
803
836
  routeKey,
804
837
  "body",
805
- route.schema.body,
838
+ withReflectedJsonSchema(route.schema.body, options.reflectJsonSchema),
806
839
  witness,
807
840
  seed,
808
841
  maxWitnessBytes,
@@ -816,7 +849,7 @@ async function buildLaboratories(
816
849
  const resolved = await resolveInput(
817
850
  routeKey,
818
851
  "query",
819
- route.schema.query,
852
+ withReflectedJsonSchema(route.schema.query, options.reflectJsonSchema),
820
853
  witness,
821
854
  seed,
822
855
  maxWitnessBytes,
@@ -1102,6 +1135,21 @@ export async function runAdversarialContract(
1102
1135
  (gap) =>
1103
1136
  gap.code === "NO_RUNTIME" || gap.code === "INVALID_RUNTIME" || gap.code === "CASE_NOT_FOUND",
1104
1137
  )
1138
+ // Non-fatal: surface the silent-zero-coverage trap. Response conformance needs a DECLARED `response`
1139
+ // schema; a response type inferred from the handler return is a client-side contract the laboratory
1140
+ // cannot see. Left as an advisory (not a gap) so an inference-only app's suite stays green.
1141
+ const advisories: string[] = []
1142
+ if (
1143
+ options.validateResponses !== false &&
1144
+ routes.length > 0 &&
1145
+ !laboratories.some((laboratory) => laboratory.route.schema?.response !== undefined)
1146
+ ) {
1147
+ advisories.push(
1148
+ "validateResponses is on, but no selected route declares a `response` schema, so response " +
1149
+ "conformance checked 0 targets. Response types inferred from a handler's return are a client-side " +
1150
+ "contract only - declare `response:` on the routes you want the laboratory to verify.",
1151
+ )
1152
+ }
1105
1153
  return {
1106
1154
  ok: failures.length === 0 && !fatalGap && (!coverageRequired || gaps.length === 0),
1107
1155
  seed,
@@ -1111,6 +1159,7 @@ export async function runAdversarialContract(
1111
1159
  results,
1112
1160
  failures,
1113
1161
  gaps,
1162
+ advisories,
1114
1163
  counts: {
1115
1164
  passed: results.length - failures.length,
1116
1165
  failed: failures.length,
package/src/zod.ts ADDED
@@ -0,0 +1,40 @@
1
+ /**
2
+ * `@nifrajs/testing/zod` - bridge a zod schema to the inspectable JSON Schema the adversarial laboratory
3
+ * and `@nifrajs/mock` generate from. zod implements Standard Schema (nifra already VALIDATES with it) but
4
+ * carries no `.jsonSchema`, so without this the laboratory reports NO_WITNESS for every zod route and emits
5
+ * only generic type-confusion mutations, and the mock server returns `{}` for zod responses. Wire it in:
6
+ *
7
+ * import { zodJsonSchema } from "@nifrajs/testing/zod"
8
+ * await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
9
+ * // and/or: createMockServer(app, { reflectJsonSchema: zodJsonSchema })
10
+ *
11
+ * zod is an OPTIONAL peer: this module is only reachable through the `./zod` subpath, so a non-zod project
12
+ * never loads zod. Requires the `z.toJSONSchema` era (zod 4; verified against 4.4.3).
13
+ */
14
+ import type { JsonSchema } from "@nifrajs/core/reflection"
15
+ import * as z from "zod"
16
+
17
+ // Accessed defensively so a zod build without `toJSONSchema` degrades to today's behavior rather than
18
+ // crashing at import. Present since zod 4.
19
+ const toJSONSchema = (z as { toJSONSchema?: (schema: unknown, options?: unknown) => unknown })
20
+ .toJSONSchema
21
+
22
+ /**
23
+ * Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
24
+ * value is not a convertible zod schema. Options chosen for this consumer:
25
+ * - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
26
+ * - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
27
+ * - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
28
+ *
29
+ * Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
30
+ * (NO_WITNESS / `{}`), exactly as before this bridge existed.
31
+ */
32
+ export function zodJsonSchema(schema: unknown): JsonSchema | undefined {
33
+ if (typeof toJSONSchema !== "function") return undefined
34
+ try {
35
+ const json = toJSONSchema(schema, { target: "draft-7", io: "input", reused: "inline" })
36
+ return json === null || json === undefined ? undefined : (json as JsonSchema)
37
+ } catch {
38
+ return undefined
39
+ }
40
+ }