Buckets:
ktongue/docker_container / .cache /opencode /node_modules /fast-json-stringify /test /required.test.js
| const { test } = require('node:test') | |
| const build = require('..') | |
| test('object with required field', (t) => { | |
| t.plan(2) | |
| const schema = { | |
| title: 'object with required field', | |
| type: 'object', | |
| properties: { | |
| str: { | |
| type: 'string' | |
| }, | |
| num: { | |
| type: 'integer' | |
| } | |
| }, | |
| required: ['str'] | |
| } | |
| const stringify = build(schema) | |
| t.assert.doesNotThrow(() => { | |
| stringify({ | |
| str: 'string' | |
| }) | |
| }) | |
| t.assert.throws(() => { | |
| stringify({ | |
| num: 42 | |
| }) | |
| }, { message: '"str" is required!' }) | |
| }) | |
| test('object with required field not in properties schema', (t) => { | |
| t.plan(2) | |
| const schema = { | |
| title: 'object with required field', | |
| type: 'object', | |
| properties: { | |
| num: { | |
| type: 'integer' | |
| } | |
| }, | |
| required: ['str'] | |
| } | |
| const stringify = build(schema) | |
| t.assert.throws(() => { | |
| stringify({}) | |
| }, { message: '"str" is required!' }) | |
| t.assert.throws(() => { | |
| stringify({ | |
| num: 42 | |
| }) | |
| }, { message: '"str" is required!' }) | |
| }) | |
| test('object with required field not in properties schema with additional properties true', (t) => { | |
| t.plan(2) | |
| const schema = { | |
| title: 'object with required field', | |
| type: 'object', | |
| properties: { | |
| num: { | |
| type: 'integer' | |
| } | |
| }, | |
| additionalProperties: true, | |
| required: ['str'] | |
| } | |
| const stringify = build(schema) | |
| t.assert.throws(() => { | |
| stringify({}) | |
| }, { message: '"str" is required!' }) | |
| t.assert.throws(() => { | |
| stringify({ | |
| num: 42 | |
| }) | |
| }, { message: '"str" is required!' }) | |
| }) | |
| test('object with multiple required field not in properties schema', (t) => { | |
| t.plan(3) | |
| const schema = { | |
| title: 'object with required field', | |
| type: 'object', | |
| properties: { | |
| num: { | |
| type: 'integer' | |
| } | |
| }, | |
| additionalProperties: true, | |
| required: ['num', 'key1', 'key2'] | |
| } | |
| const stringify = build(schema) | |
| t.assert.throws(() => { | |
| stringify({}) | |
| }, { message: '"key1" is required!' }) | |
| t.assert.throws(() => { | |
| stringify({ | |
| key1: 42, | |
| key2: 42 | |
| }) | |
| }, { message: '"num" is required!' }) | |
| t.assert.throws(() => { | |
| stringify({ | |
| num: 42, | |
| key1: 'some' | |
| }) | |
| }, { message: '"key2" is required!' }) | |
| }) | |
| test('object with required bool', (t) => { | |
| t.plan(2) | |
| const schema = { | |
| title: 'object with required field', | |
| type: 'object', | |
| properties: { | |
| num: { | |
| type: 'integer' | |
| } | |
| }, | |
| additionalProperties: true, | |
| required: ['bool'] | |
| } | |
| const stringify = build(schema) | |
| t.assert.throws(() => { | |
| stringify({}) | |
| }, { message: '"bool" is required!' }) | |
| t.assert.doesNotThrow(() => { | |
| stringify({ | |
| bool: false | |
| }) | |
| }) | |
| }) | |
| test('required nullable', (t) => { | |
| t.plan(1) | |
| const schema = { | |
| title: 'object with required field', | |
| type: 'object', | |
| properties: { | |
| num: { | |
| type: ['integer'] | |
| } | |
| }, | |
| additionalProperties: true, | |
| required: ['null'] | |
| } | |
| const stringify = build(schema) | |
| t.assert.doesNotThrow(() => { | |
| stringify({ | |
| null: null | |
| }) | |
| }) | |
| }) | |
| test('required numbers', (t) => { | |
| t.plan(2) | |
| const schema = { | |
| title: 'object with required field', | |
| type: 'object', | |
| properties: { | |
| str: { | |
| type: 'string' | |
| }, | |
| num: { | |
| type: 'integer' | |
| } | |
| }, | |
| required: ['num'] | |
| } | |
| const stringify = build(schema) | |
| t.assert.doesNotThrow(() => { | |
| stringify({ | |
| num: 42 | |
| }) | |
| }) | |
| t.assert.throws(() => { | |
| stringify({ | |
| num: 'aaa' | |
| }) | |
| }, { message: 'The value "aaa" cannot be converted to an integer.' }) | |
| }) | |
Xet Storage Details
- Size:
- 3.66 kB
- Xet hash:
- 41d2caa87ad2f9c2a0ce04140ee7b5dbbf5cc9cd72831ac00d4fb169af8adb9e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.