json-rest-api 1.0.21 → 1.0.22
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/audit/00-charter.md +103 -0
- package/audit/01-scope-map.md +84 -0
- package/audit/02-coverage-matrix.csv +174 -0
- package/audit/03-invariants.md +123 -0
- package/audit/04-standards-rubric.md +56 -0
- package/audit/05-competitor-rubric.md +77 -0
- package/audit/06-findings.md +160 -0
- package/audit/07-risk-register.csv +10 -0
- package/audit/08-remediation-roadmap.md +177 -0
- package/audit/09-signoff-check.md +23 -0
- package/audit/10-final-synthesis.md +29 -0
- package/audit/evidence/code/all-files-json-rest-api.txt +168 -0
- package/audit/evidence/code/all-files-json-rest-schema.txt +12 -0
- package/audit/evidence/code/boundary-leak-checks.txt +72 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__bulk-operations-plugin.js.txt +480 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__express-plugin.js.txt +532 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__busboy-detector.js.txt +175 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__formidable-detector.js.txt +138 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__connectors__lib__request-helpers.js.txt +222 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__file-handling-plugin.js.txt +342 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__dbTablesOperations.js.txt +304 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__fractional-positioning.js.txt +188 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__compile-schemas.js.txt +336 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__connectors-query-parser.js.txt +165 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-capabilities.js.txt +265 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__database-value-normalizers.js.txt +369 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__default-data-helpers.js.txt +72 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__field-utils.js.txt +139 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-constants.js.txt +45 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-field-helpers.js.txt +396 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__knex-json-api-transformers.js.txt +162 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__payload-validators.js.txt +1314 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__schema-helpers.js.txt +488 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__scope-validations.js.txt +484 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying-writing__simplified-helpers.js.txt +857 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-cross-table-search.js.txt +565 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-json-api-transformers-querying.js.txt +485 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-pagination-helpers.js.txt +560 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-process-includes.js.txt +167 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers-base.js.txt +109 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-query-helpers.js.txt +1064 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-relationship-includes.js.txt +1983 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__knex-window-queries.js.txt +328 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__querying__url-helpers.js.txt +119 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__storage__storage-adapter.js.txt +160 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__many-to-many-manipulations.js.txt +300 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__lib__writing__relationship-processor.js.txt +245 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-access.js.txt +459 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-cors-plugin.js.txt +237 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-knex-plugin.js.txt +1135 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-multihome-plugin.js.txt +314 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__compile-resource-schemas.js.txt +7 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-relationship-routes.js.txt +71 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__register-scope-routes.js.txt +102 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__turn-scope-init-into-vars.js.txt +49 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-hooks__validate-include-configurations.js.txt +39 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__add-route.js.txt +23 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__check-permissions.js.txt +13 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__common.js.txt +639 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete-relationship.js.txt +117 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__delete.js.txt +104 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__enrich-attributes.js.txt +199 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-related.js.txt +353 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get-relationship.js.txt +61 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__get.js.txt +184 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch-relationship.js.txt +55 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__patch.js.txt +191 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post-relationship.js.txt +110 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__post.js.txt +168 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__put.js.txt +253 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__query.js.txt +207 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin-methods__release.js.txt +12 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-plugin.js.txt +165 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__rest-api-positioning-plugin.js.txt +668 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__core__socketio-plugin.js.txt +621 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__local-storage.js.txt +218 -0
- package/audit/evidence/code/critical-pass1/json-rest-api__plugins__storage__s3-storage.js.txt +124 -0
- package/audit/evidence/code/critical-pass1/json-rest-schema__src__CorePlugin.js.txt +269 -0
- package/audit/evidence/code/critical-pass1/json-rest-schema__src__Schema.js.txt +242 -0
- package/audit/evidence/code/critical-pass1/json-rest-schema__src__index.js.txt +77 -0
- package/audit/evidence/code/critical-pass1-risk-keywords.txt +238 -0
- package/audit/evidence/code/critical-pass1-summary.csv +67 -0
- package/audit/evidence/code/critical-pass2-summary.csv +67 -0
- package/audit/evidence/code/early-silent-zones-no-test-token.txt +57 -0
- package/audit/evidence/code/error-model-signals.txt +98 -0
- package/audit/evidence/code/git-files-json-rest-api.txt +171 -0
- package/audit/evidence/code/git-files-json-rest-schema.txt +27 -0
- package/audit/evidence/code/hook-flow-signals.txt +282 -0
- package/audit/evidence/code/idproperty-signals.txt +157 -0
- package/audit/evidence/code/import-cycles-non-anyapi.txt +3 -0
- package/audit/evidence/code/import-hotspots-non-anyapi.txt +96 -0
- package/audit/evidence/code/imports-json-rest-api.txt +354 -0
- package/audit/evidence/code/imports-json-rest-schema.txt +15 -0
- package/audit/evidence/code/in-scope-files-json-rest-api.txt +160 -0
- package/audit/evidence/code/in-scope-files-json-rest-schema.txt +13 -0
- package/audit/evidence/code/non-anyapi-core-files.txt +101 -0
- package/audit/evidence/code/permission-signals.txt +193 -0
- package/audit/evidence/code/query-include-signals.txt +687 -0
- package/audit/evidence/code/transaction-signals.txt +28 -0
- package/audit/evidence/code/validation-signals.txt +650 -0
- package/audit/evidence/code/write-path-signals.txt +61 -0
- package/audit/evidence/docs/docs-claims-signals.txt +1075 -0
- package/audit/evidence/docs/schema-docs-claims-signals.txt +179 -0
- package/audit/evidence/external/corpus-freeze.md +21 -0
- package/audit/evidence/external/npm-competitor-metadata.txt +70 -0
- package/audit/evidence/external/npm-download-signals.txt +23 -0
- package/audit/evidence/external/npm-jsonapi-server.txt +8 -0
- package/audit/evidence/external/npm-modern-jsonapi-metadata.txt +38 -0
- package/audit/evidence/external/readme-fortune-signals.txt +26 -0
- package/audit/evidence/external/readme-fortune.md +165 -0
- package/audit/evidence/external/readme-json-api-serializer-signals.txt +80 -0
- package/audit/evidence/external/readme-json-api-serializer.md +690 -0
- package/audit/evidence/external/readme-jsonapi-serde-server-signals.txt +0 -0
- package/audit/evidence/external/readme-jsonapi-serde-server.md +22 -0
- package/audit/evidence/external/readme-jsonapi-serializer-signals.txt +63 -0
- package/audit/evidence/external/readme-jsonapi-serializer.md +315 -0
- package/audit/evidence/external/readme-jsonapi-server-signals.txt +19 -0
- package/audit/evidence/external/readme-jsonapi-server.md +104 -0
- package/audit/evidence/external/readme-nestjs-json-api-signals.txt +4 -0
- package/audit/evidence/external/readme-nestjs-json-api.md +94 -0
- package/audit/evidence/external/readme-yaser-json-api-nestjs-signals.txt +47 -0
- package/audit/evidence/external/readme-yaser-json-api-nestjs.md +447 -0
- package/audit/evidence/external/standard-jsonapi-snippets.txt +84 -0
- package/audit/evidence/external/standard-rfc-snippets.txt +168 -0
- package/audit/evidence/external/standards-sources.txt +6 -0
- package/audit/evidence/runtime/baseline-commits.txt +2 -0
- package/audit/evidence/runtime/db-adapter-assumptions.txt +3 -0
- package/audit/evidence/runtime/environment.txt +4 -0
- package/audit/evidence/runtime/invariant-runtime-mapping.md +38 -0
- package/audit/evidence/runtime/probe-patch-relationship-error.exitcode +1 -0
- package/audit/evidence/runtime/probe-patch-relationship-error.log +76 -0
- package/audit/evidence/runtime/probe-patch-relationship-error.mjs +67 -0
- package/audit/evidence/runtime/probe-patch-relationship-referenceerror.exitcode +1 -0
- package/audit/evidence/runtime/probe-patch-relationship-referenceerror.log +62 -0
- package/audit/evidence/runtime/probe-patch-relationship-referenceerror.mjs +47 -0
- package/audit/evidence/runtime/test-exitcodes.txt +4 -0
- package/audit/evidence/runtime/test-summary.md +107 -0
- package/audit/evidence/runtime/trace-anchors.txt +61 -0
- package/audit/evidence/tests/access-multitenancy-test-signals.txt +125 -0
- package/audit/evidence/tests/failing-tests-summary.txt +25 -0
- package/audit/evidence/tests/npm-test-json-rest-api.exitcode +1 -0
- package/audit/evidence/tests/npm-test-json-rest-api.log +5885 -0
- package/audit/evidence/tests/npm-test-json-rest-schema.exitcode +1 -0
- package/audit/evidence/tests/npm-test-json-rest-schema.log +356 -0
- package/audit/evidence/tests/query-include-test-signals.txt +948 -0
- package/audit/evidence/tests/relationship-test-signals.txt +223 -0
- package/audit/evidence/tests/skipped-tests.txt +10 -0
- package/audit/evidence/tests/test-suite-list-non-anyapi.txt +30 -0
- package/audit/evidence/tests/test-suite-list.txt +32 -0
- package/audit/subsystems/docs-drift.md +49 -0
- package/audit/subsystems/pass2-cross-review.md +131 -0
- package/audit/subsystems/plugins-access.md +51 -0
- package/audit/subsystems/plugins-bulk.md +50 -0
- package/audit/subsystems/plugins-cors.md +48 -0
- package/audit/subsystems/plugins-file.md +53 -0
- package/audit/subsystems/plugins-multihome.md +50 -0
- package/audit/subsystems/plugins-positioning.md +54 -0
- package/audit/subsystems/plugins-socketio.md +50 -0
- package/audit/subsystems/query-engine.md +61 -0
- package/audit/subsystems/relationships.md +55 -0
- package/audit/subsystems/rest-orchestration.md +66 -0
- package/audit/subsystems/schema-core.md +64 -0
- package/audit/subsystems/storage-knex.md +57 -0
- package/audit/subsystems/tests.md +48 -0
- package/audit/subsystems/transport-express.md +55 -0
- package/audit/traces/trace-read-get.md +22 -0
- package/audit/traces/trace-read-query.md +25 -0
- package/audit/traces/trace-relationship-endpoints.md +31 -0
- package/audit/traces/trace-write-delete.md +17 -0
- package/audit/traces/trace-write-patch.md +26 -0
- package/audit/traces/trace-write-post.md +22 -0
- package/audit/traces/trace-write-put.md +23 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
|
|
2
|
+
> json-rest-schema@1.0.12 test
|
|
3
|
+
> node --test tests.js test-knex-table-real.js
|
|
4
|
+
|
|
5
|
+
TAP version 13
|
|
6
|
+
# file:///home/merc/Development/current/json-rest-schema/test-knex-table-real.js:8
|
|
7
|
+
# import { createSchema, createKnexTable, generateKnexMigration } from './src/index.js'
|
|
8
|
+
# ^^^^^^^^^^^^^^^
|
|
9
|
+
# SyntaxError: The requested module './src/index.js' does not provide an export named 'createKnexTable'
|
|
10
|
+
# at ModuleJob._instantiate (node:internal/modules/esm/module_job:175:21)
|
|
11
|
+
# at async ModuleJob.run (node:internal/modules/esm/module_job:258:5)
|
|
12
|
+
# at async ModuleLoader.import (node:internal/modules/esm/loader:540:24)
|
|
13
|
+
# at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5)
|
|
14
|
+
# Node.js v20.19.0
|
|
15
|
+
# Subtest: /home/merc/Development/current/json-rest-schema/test-knex-table-real.js
|
|
16
|
+
not ok 1 - /home/merc/Development/current/json-rest-schema/test-knex-table-real.js
|
|
17
|
+
---
|
|
18
|
+
duration_ms: 62.657109
|
|
19
|
+
location: '/home/merc/Development/current/json-rest-schema/test-knex-table-real.js:1:1'
|
|
20
|
+
failureType: 'testCodeFailure'
|
|
21
|
+
exitCode: 1
|
|
22
|
+
signal: ~
|
|
23
|
+
error: 'test failed'
|
|
24
|
+
code: 'ERR_TEST_FAILURE'
|
|
25
|
+
...
|
|
26
|
+
# Subtest: 1. Core API (`createSchema`)
|
|
27
|
+
# Subtest: should export a function `createSchema`
|
|
28
|
+
ok 1 - should export a function `createSchema`
|
|
29
|
+
---
|
|
30
|
+
duration_ms: 1.188615
|
|
31
|
+
...
|
|
32
|
+
# Subtest: should have `use`, `addType`, and `addValidator` methods on the factory
|
|
33
|
+
ok 2 - should have `use`, `addType`, and `addValidator` methods on the factory
|
|
34
|
+
---
|
|
35
|
+
duration_ms: 0.154363
|
|
36
|
+
...
|
|
37
|
+
# Subtest: `createSchema(structure)` should return an instance of Schema
|
|
38
|
+
ok 3 - `createSchema(structure)` should return an instance of Schema
|
|
39
|
+
---
|
|
40
|
+
duration_ms: 0.203725
|
|
41
|
+
...
|
|
42
|
+
# Subtest: should allow adding a type handler and using it
|
|
43
|
+
ok 4 - should allow adding a type handler and using it
|
|
44
|
+
---
|
|
45
|
+
duration_ms: 0.557529
|
|
46
|
+
...
|
|
47
|
+
# Subtest: should allow adding a validator and using it
|
|
48
|
+
ok 5 - should allow adding a validator and using it
|
|
49
|
+
---
|
|
50
|
+
duration_ms: 0.42148
|
|
51
|
+
...
|
|
52
|
+
# Subtest: should throw when adding a non-function type handler
|
|
53
|
+
ok 6 - should throw when adding a non-function type handler
|
|
54
|
+
---
|
|
55
|
+
duration_ms: 0.45361
|
|
56
|
+
...
|
|
57
|
+
# Subtest: should throw when adding a non-function validator handler
|
|
58
|
+
ok 7 - should throw when adding a non-function validator handler
|
|
59
|
+
---
|
|
60
|
+
duration_ms: 0.187978
|
|
61
|
+
...
|
|
62
|
+
# Subtest: should throw when using a plugin without an `install` method
|
|
63
|
+
ok 8 - should throw when using a plugin without an `install` method
|
|
64
|
+
---
|
|
65
|
+
duration_ms: 0.177465
|
|
66
|
+
...
|
|
67
|
+
1..8
|
|
68
|
+
ok 2 - 1. Core API (`createSchema`)
|
|
69
|
+
---
|
|
70
|
+
duration_ms: 5.199871
|
|
71
|
+
type: 'suite'
|
|
72
|
+
...
|
|
73
|
+
# Subtest: 2. Core Validation Logic (`Schema.js`)
|
|
74
|
+
# Subtest: should return no errors for a valid object
|
|
75
|
+
ok 1 - should return no errors for a valid object
|
|
76
|
+
---
|
|
77
|
+
duration_ms: 0.431981
|
|
78
|
+
...
|
|
79
|
+
# Subtest: should return a `FIELD_NOT_ALLOWED` error for spurious fields
|
|
80
|
+
ok 2 - should return a `FIELD_NOT_ALLOWED` error for spurious fields
|
|
81
|
+
---
|
|
82
|
+
duration_ms: 0.28245
|
|
83
|
+
...
|
|
84
|
+
# Subtest: should correctly handle the `required` validator
|
|
85
|
+
ok 3 - should correctly handle the `required` validator
|
|
86
|
+
---
|
|
87
|
+
duration_ms: 0.213408
|
|
88
|
+
...
|
|
89
|
+
# Subtest: should return a `NOT_NULLABLE` error if a field is null but not allowed to be
|
|
90
|
+
ok 4 - should return a `NOT_NULLABLE` error if a field is null but not allowed to be
|
|
91
|
+
---
|
|
92
|
+
duration_ms: 0.246146
|
|
93
|
+
...
|
|
94
|
+
# Subtest: should allow null if `nullable` is true
|
|
95
|
+
ok 5 - should allow null if `nullable` is true
|
|
96
|
+
---
|
|
97
|
+
duration_ms: 0.218771
|
|
98
|
+
...
|
|
99
|
+
# Subtest: should cast empty string to null if `nullOnEmpty` is true
|
|
100
|
+
ok 6 - should cast empty string to null if `nullOnEmpty` is true
|
|
101
|
+
---
|
|
102
|
+
duration_ms: 0.290184
|
|
103
|
+
...
|
|
104
|
+
# Subtest: should apply defaultTo values even when the object has validation errors
|
|
105
|
+
ok 7 - should apply defaultTo values even when the object has validation errors
|
|
106
|
+
---
|
|
107
|
+
duration_ms: 0.295443
|
|
108
|
+
...
|
|
109
|
+
# Subtest: Validation Options
|
|
110
|
+
# Subtest: `onlyObjectValues`: should only validate fields present in the input object
|
|
111
|
+
ok 1 - `onlyObjectValues`: should only validate fields present in the input object
|
|
112
|
+
---
|
|
113
|
+
duration_ms: 0.3571
|
|
114
|
+
...
|
|
115
|
+
# Subtest: `skipFields`: should completely ignore specified fields
|
|
116
|
+
ok 2 - `skipFields`: should completely ignore specified fields
|
|
117
|
+
---
|
|
118
|
+
duration_ms: 0.298076
|
|
119
|
+
...
|
|
120
|
+
# Subtest: `skipParams`: should skip specific validators on a field
|
|
121
|
+
ok 3 - `skipParams`: should skip specific validators on a field
|
|
122
|
+
---
|
|
123
|
+
duration_ms: 0.427076
|
|
124
|
+
...
|
|
125
|
+
1..3
|
|
126
|
+
ok 8 - Validation Options
|
|
127
|
+
---
|
|
128
|
+
duration_ms: 1.326774
|
|
129
|
+
type: 'suite'
|
|
130
|
+
...
|
|
131
|
+
# Subtest: `cleanup` method should work correctly
|
|
132
|
+
ok 9 - `cleanup` method should work correctly
|
|
133
|
+
---
|
|
134
|
+
duration_ms: 1.514896
|
|
135
|
+
...
|
|
136
|
+
1..9
|
|
137
|
+
ok 3 - 2. Core Validation Logic (`Schema.js`)
|
|
138
|
+
---
|
|
139
|
+
duration_ms: 5.311977
|
|
140
|
+
type: 'suite'
|
|
141
|
+
...
|
|
142
|
+
# Subtest: 3. Core Plugin: Type Handlers
|
|
143
|
+
# Subtest: type:'none' should process input 123 to 123
|
|
144
|
+
ok 1 - type:'none' should process input 123 to 123
|
|
145
|
+
---
|
|
146
|
+
duration_ms: 0.503625
|
|
147
|
+
...
|
|
148
|
+
# Subtest: type:'none' should process input {"a":1} to {"a":1}
|
|
149
|
+
ok 2 - type:'none' should process input {"a":1} to {"a":1}
|
|
150
|
+
---
|
|
151
|
+
duration_ms: 0.1565
|
|
152
|
+
...
|
|
153
|
+
# Subtest: type:'string' should process input " test " to "test"
|
|
154
|
+
ok 3 - type:'string' should process input " test " to "test"
|
|
155
|
+
---
|
|
156
|
+
duration_ms: 0.127482
|
|
157
|
+
...
|
|
158
|
+
# Subtest: type:'string' should process input " test " to " test "
|
|
159
|
+
ok 4 - type:'string' should process input " test " to " test "
|
|
160
|
+
---
|
|
161
|
+
duration_ms: 0.121573
|
|
162
|
+
...
|
|
163
|
+
# Subtest: type:'string' should process input 123 to "123"
|
|
164
|
+
ok 5 - type:'string' should process input 123 to "123"
|
|
165
|
+
---
|
|
166
|
+
duration_ms: 0.429618
|
|
167
|
+
...
|
|
168
|
+
# Subtest: type:'string' should fail for input: null
|
|
169
|
+
ok 6 - type:'string' should fail for input: null
|
|
170
|
+
---
|
|
171
|
+
duration_ms: 0.123805
|
|
172
|
+
...
|
|
173
|
+
# Subtest: type:'string' should process input undefined to undefined
|
|
174
|
+
ok 7 - type:'string' should process input undefined to undefined
|
|
175
|
+
---
|
|
176
|
+
duration_ms: 0.142269
|
|
177
|
+
...
|
|
178
|
+
# Subtest: type:'string' should fail for input: {}
|
|
179
|
+
ok 8 - type:'string' should fail for input: {}
|
|
180
|
+
---
|
|
181
|
+
duration_ms: 0.203089
|
|
182
|
+
...
|
|
183
|
+
# Subtest: type:'number' should process input "42.5" to 42.5
|
|
184
|
+
ok 9 - type:'number' should process input "42.5" to 42.5
|
|
185
|
+
---
|
|
186
|
+
duration_ms: 0.239855
|
|
187
|
+
...
|
|
188
|
+
# Subtest: type:'number' should process input "" to 0
|
|
189
|
+
ok 10 - type:'number' should process input "" to 0
|
|
190
|
+
---
|
|
191
|
+
duration_ms: 0.11886
|
|
192
|
+
...
|
|
193
|
+
# Subtest: type:'number' should fail for input: null
|
|
194
|
+
ok 11 - type:'number' should fail for input: null
|
|
195
|
+
---
|
|
196
|
+
duration_ms: 0.107555
|
|
197
|
+
...
|
|
198
|
+
# Subtest: type:'number' should fail for input: "abc"
|
|
199
|
+
ok 12 - type:'number' should fail for input: "abc"
|
|
200
|
+
---
|
|
201
|
+
duration_ms: 0.222444
|
|
202
|
+
...
|
|
203
|
+
# Subtest: type:'timestamp' should process input 1672531200000 to 1672531200000
|
|
204
|
+
ok 13 - type:'timestamp' should process input 1672531200000 to 1672531200000
|
|
205
|
+
---
|
|
206
|
+
duration_ms: 0.509408
|
|
207
|
+
...
|
|
208
|
+
# Subtest: type:'timestamp' should process input "0" to null
|
|
209
|
+
ok 14 - type:'timestamp' should process input "0" to null
|
|
210
|
+
---
|
|
211
|
+
duration_ms: 0.371079
|
|
212
|
+
...
|
|
213
|
+
# Subtest: type:'timestamp' should fail for input: "abc"
|
|
214
|
+
ok 15 - type:'timestamp' should fail for input: "abc"
|
|
215
|
+
---
|
|
216
|
+
duration_ms: 0.177614
|
|
217
|
+
...
|
|
218
|
+
# Subtest: type:'dateTime' should process input "2025-01-01T12:30:00Z" to "2025-01-01T12:30:00.000Z"
|
|
219
|
+
ok 16 - type:'dateTime' should process input "2025-01-01T12:30:00Z" to "2025-01-01T12:30:00.000Z"
|
|
220
|
+
---
|
|
221
|
+
duration_ms: 0.509069
|
|
222
|
+
...
|
|
223
|
+
# Subtest: type:'dateTime' should process input "invalid" to null
|
|
224
|
+
ok 17 - type:'dateTime' should process input "invalid" to null
|
|
225
|
+
---
|
|
226
|
+
duration_ms: 0.372726
|
|
227
|
+
...
|
|
228
|
+
# Subtest: type:'date' should process input "2025-01-01T12:30:00Z" to "2025-01-01T00:00:00.000Z"
|
|
229
|
+
ok 18 - type:'date' should process input "2025-01-01T12:30:00Z" to "2025-01-01T00:00:00.000Z"
|
|
230
|
+
---
|
|
231
|
+
duration_ms: 0.644094
|
|
232
|
+
...
|
|
233
|
+
# Subtest: type:'date' should process input "2025-01-01" to "2025-01-01T00:00:00.000Z"
|
|
234
|
+
ok 19 - type:'date' should process input "2025-01-01" to "2025-01-01T00:00:00.000Z"
|
|
235
|
+
---
|
|
236
|
+
duration_ms: 0.345422
|
|
237
|
+
...
|
|
238
|
+
# Subtest: type:'array' should process input "one" to ["one"]
|
|
239
|
+
ok 20 - type:'array' should process input "one" to ["one"]
|
|
240
|
+
---
|
|
241
|
+
duration_ms: 0.319356
|
|
242
|
+
...
|
|
243
|
+
# Subtest: type:'array' should process input ["one","two"] to ["one","two"]
|
|
244
|
+
ok 21 - type:'array' should process input ["one","two"] to ["one","two"]
|
|
245
|
+
---
|
|
246
|
+
duration_ms: 0.227224
|
|
247
|
+
...
|
|
248
|
+
# Subtest: type:'boolean' should process input "true" to true
|
|
249
|
+
ok 22 - type:'boolean' should process input "true" to true
|
|
250
|
+
---
|
|
251
|
+
duration_ms: 0.337235
|
|
252
|
+
...
|
|
253
|
+
# Subtest: type:'boolean' should process input "on" to true
|
|
254
|
+
ok 23 - type:'boolean' should process input "on" to true
|
|
255
|
+
---
|
|
256
|
+
duration_ms: 0.38783
|
|
257
|
+
...
|
|
258
|
+
# Subtest: type:'boolean' should process input "false" to false
|
|
259
|
+
ok 24 - type:'boolean' should process input "false" to false
|
|
260
|
+
---
|
|
261
|
+
duration_ms: 0.151125
|
|
262
|
+
...
|
|
263
|
+
# Subtest: type:'boolean' should process input 1 to true
|
|
264
|
+
ok 25 - type:'boolean' should process input 1 to true
|
|
265
|
+
---
|
|
266
|
+
duration_ms: 0.206207
|
|
267
|
+
...
|
|
268
|
+
# Subtest: type:'boolean' should process input 0 to false
|
|
269
|
+
ok 26 - type:'boolean' should process input 0 to false
|
|
270
|
+
---
|
|
271
|
+
duration_ms: 0.125641
|
|
272
|
+
...
|
|
273
|
+
# Subtest: type:'boolean' should process input "no" to false
|
|
274
|
+
ok 27 - type:'boolean' should process input "no" to false
|
|
275
|
+
---
|
|
276
|
+
duration_ms: 0.210439
|
|
277
|
+
...
|
|
278
|
+
# Subtest: type:'id' should process input "123" to 123
|
|
279
|
+
ok 28 - type:'id' should process input "123" to 123
|
|
280
|
+
---
|
|
281
|
+
duration_ms: 0.348163
|
|
282
|
+
...
|
|
283
|
+
# Subtest: type:'id' should fail for input: "id-123"
|
|
284
|
+
ok 29 - type:'id' should fail for input: "id-123"
|
|
285
|
+
---
|
|
286
|
+
duration_ms: 0.308776
|
|
287
|
+
...
|
|
288
|
+
# Subtest: type:'serialize' should process an object to a string
|
|
289
|
+
ok 30 - type:'serialize' should process an object to a string
|
|
290
|
+
---
|
|
291
|
+
duration_ms: 0.534748
|
|
292
|
+
...
|
|
293
|
+
# Subtest: type:`serialize` should handle circular references
|
|
294
|
+
ok 31 - type:`serialize` should handle circular references
|
|
295
|
+
---
|
|
296
|
+
duration_ms: 1.331675
|
|
297
|
+
...
|
|
298
|
+
1..31
|
|
299
|
+
ok 4 - 3. Core Plugin: Type Handlers
|
|
300
|
+
---
|
|
301
|
+
duration_ms: 11.36291
|
|
302
|
+
type: 'suite'
|
|
303
|
+
...
|
|
304
|
+
# Subtest: 4. Core Plugin: Validator Handlers
|
|
305
|
+
# Subtest: `min`/`max` validators should work for numbers, `minLength`/`maxLength` for strings
|
|
306
|
+
ok 1 - `min`/`max` validators should work for numbers, `minLength`/`maxLength` for strings
|
|
307
|
+
---
|
|
308
|
+
duration_ms: 1.125145
|
|
309
|
+
...
|
|
310
|
+
# Subtest: `validator` should work with a custom function (sync and async)
|
|
311
|
+
ok 2 - `validator` should work with a custom function (sync and async)
|
|
312
|
+
---
|
|
313
|
+
duration_ms: 46.715326
|
|
314
|
+
...
|
|
315
|
+
# Subtest: `uppercase`/`lowercase` should transform strings
|
|
316
|
+
ok 3 - `uppercase`/`lowercase` should transform strings
|
|
317
|
+
---
|
|
318
|
+
duration_ms: 0.547645
|
|
319
|
+
...
|
|
320
|
+
# Subtest: `length` should truncate strings and error on long numbers
|
|
321
|
+
ok 4 - `length` should truncate strings and error on long numbers
|
|
322
|
+
---
|
|
323
|
+
duration_ms: 0.409615
|
|
324
|
+
...
|
|
325
|
+
# Subtest: `notEmpty` should fail on empty strings
|
|
326
|
+
ok 5 - `notEmpty` should fail on empty strings
|
|
327
|
+
---
|
|
328
|
+
duration_ms: 0.339048
|
|
329
|
+
...
|
|
330
|
+
1..5
|
|
331
|
+
ok 5 - 4. Core Plugin: Validator Handlers
|
|
332
|
+
---
|
|
333
|
+
duration_ms: 49.558661
|
|
334
|
+
type: 'suite'
|
|
335
|
+
...
|
|
336
|
+
# Subtest: 5. Extensibility: Custom Plugins
|
|
337
|
+
# Subtest: should allow defining and using a custom plugin
|
|
338
|
+
ok 1 - should allow defining and using a custom plugin
|
|
339
|
+
---
|
|
340
|
+
duration_ms: 0.770699
|
|
341
|
+
...
|
|
342
|
+
1..1
|
|
343
|
+
ok 6 - 5. Extensibility: Custom Plugins
|
|
344
|
+
---
|
|
345
|
+
duration_ms: 0.913155
|
|
346
|
+
type: 'suite'
|
|
347
|
+
...
|
|
348
|
+
1..6
|
|
349
|
+
# tests 57
|
|
350
|
+
# suites 6
|
|
351
|
+
# pass 56
|
|
352
|
+
# fail 1
|
|
353
|
+
# cancelled 0
|
|
354
|
+
# skipped 0
|
|
355
|
+
# todo 0
|
|
356
|
+
# duration_ms 163.644013
|