assert-json-body 1.6.0 → 1.6.1
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 +18 -4
- package/dist/cli/index.js +2 -2
- package/dist/cli/index.js.map +1 -1
- package/dist-cjs/cli/index.js +2 -2
- package/dist-cjs/cli/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -110,8 +110,8 @@ The configuration is now split into two blocks:
|
|
|
110
110
|
|
|
111
111
|
| Field | Type | Default | Description | Env override(s) |
|
|
112
112
|
|-------|------|---------|-------------|-----------------|
|
|
113
|
-
| `repo` | string | `https://github.com/camunda/camunda
|
|
114
|
-
| `specPath` | string | `
|
|
113
|
+
| `repo` | string | `https://github.com/camunda/camunda` | Git repository containing the OpenAPI spec | `AJB_REPO`, `REPO` |
|
|
114
|
+
| `specPath` | string | `zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml` | Path to OpenAPI spec inside the repo | `AJB_SPEC_PATH`, `SPEC_PATH` |
|
|
115
115
|
| `ref` | string | `main` | Git ref (branch/tag/sha) to checkout | `AJB_REF`, `SPEC_REF`, `REF` |
|
|
116
116
|
| `outputDir` | string | `json-body-assertions` | Directory to write `responses.json` + generated `index.ts` | `AJB_OUTPUT_DIR`, `OUTPUT_DIR` |
|
|
117
117
|
| `preserveCheckout` | boolean | `false` | Keep sparse checkout working copy (debug) | `AJB_PRESERVE_CHECKOUT`, `PRESERVE_SPEC_CHECKOUT` |
|
|
@@ -137,8 +137,8 @@ Example full config:
|
|
|
137
137
|
```json
|
|
138
138
|
{
|
|
139
139
|
"extract": {
|
|
140
|
-
"repo": "https://github.com/camunda/camunda
|
|
141
|
-
"specPath": "
|
|
140
|
+
"repo": "https://github.com/camunda/camunda",
|
|
141
|
+
"specPath": "zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml",
|
|
142
142
|
"ref": "main",
|
|
143
143
|
"outputDir": "json-body-assertions",
|
|
144
144
|
"preserveCheckout": false,
|
|
@@ -223,6 +223,20 @@ await validateResponse({ path: '/process-instance/create', method: 'POST', statu
|
|
|
223
223
|
- `options` shares the same shape as `validateResponseShape` (file resolution, throw, record, config overrides).
|
|
224
224
|
- Returns the same `ValidateResultBase` promise (use `{ throw:false }` for structured result mode).
|
|
225
225
|
|
|
226
|
+
### Nullable Fields
|
|
227
|
+
|
|
228
|
+
The validator respects the OpenAPI `nullable: true` property. When a field in the spec is marked `nullable`, `null` values pass validation without error. When `nullable` is absent or `false`, a `null` value produces a `[TYPE]` error:
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
[TYPE] /label expected string but got null
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
The `nullable` flag is extracted automatically during `assert-json-body extract` and stored in `responses.json`. You can also set it manually in a custom responses file:
|
|
235
|
+
|
|
236
|
+
```json
|
|
237
|
+
{"name": "label", "type": "string", "nullable": true}
|
|
238
|
+
```
|
|
239
|
+
|
|
226
240
|
### Types
|
|
227
241
|
`FieldSpec`, `RouteContext`, `PlaywrightAPIResponse`, and other structural types are exported from `@/types`.
|
|
228
242
|
|
package/dist/cli/index.js
CHANGED
|
@@ -18,8 +18,8 @@ function initConfig() {
|
|
|
18
18
|
}
|
|
19
19
|
const example = {
|
|
20
20
|
extract: {
|
|
21
|
-
repo: 'https://github.com/camunda/camunda
|
|
22
|
-
specPath: '
|
|
21
|
+
repo: 'https://github.com/camunda/camunda',
|
|
22
|
+
specPath: 'zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml',
|
|
23
23
|
ref: 'main',
|
|
24
24
|
outputDir: 'json-body-assertions',
|
|
25
25
|
preserveCheckout: false,
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGlE,SAAS,YAAY;IACnB,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,ypCAAypC,CAAC,CAAC;AACzqC,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,8BAA8B,CAAC;IAC5C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG;QACd,OAAO,EAAE;YACP,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/cli/index.js
CHANGED
|
@@ -20,8 +20,8 @@ function initConfig() {
|
|
|
20
20
|
}
|
|
21
21
|
const example = {
|
|
22
22
|
extract: {
|
|
23
|
-
repo: 'https://github.com/camunda/camunda
|
|
24
|
-
specPath: '
|
|
23
|
+
repo: 'https://github.com/camunda/camunda',
|
|
24
|
+
specPath: 'zeebe/gateway-protocol/src/main/proto/v2/rest-api.yaml',
|
|
25
25
|
ref: 'main',
|
|
26
26
|
outputDir: 'json-body-assertions',
|
|
27
27
|
preserveCheckout: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AACA,sDAA+C;AAC/C,gDAAiE;AACjE,qCAAkE;AAGlE,SAAS,YAAY;IACnB,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC,ypCAAypC,CAAC,CAAC;AACzqC,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,8BAA8B,CAAC;IAC5C,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG;QACd,OAAO,EAAE;YACP,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|