@rjsf/snapshot-tests 5.14.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.
@@ -0,0 +1,411 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formTests = exports.TEXTAREA_CUSTOMIZE = exports.SLIDER_CUSTOMIZE = exports.SELECT_CUSTOMIZE = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_test_renderer_1 = tslib_1.__importDefault(require("react-test-renderer"));
7
+ const validator_ajv8_1 = tslib_1.__importDefault(require("@rjsf/validator-ajv8"));
8
+ exports.SELECT_CUSTOMIZE = 'selectMulti';
9
+ exports.SLIDER_CUSTOMIZE = 'slider';
10
+ exports.TEXTAREA_CUSTOMIZE = 'textarea';
11
+ function formTests(Form, customOptions = {}) {
12
+ describe('single fields', () => {
13
+ describe('string field', () => {
14
+ test('regular', () => {
15
+ const schema = {
16
+ type: 'string',
17
+ };
18
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
19
+ expect(tree).toMatchSnapshot();
20
+ });
21
+ test('format email', () => {
22
+ const schema = {
23
+ type: 'string',
24
+ format: 'email',
25
+ };
26
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
27
+ expect(tree).toMatchSnapshot();
28
+ });
29
+ test('format uri', () => {
30
+ const schema = {
31
+ type: 'string',
32
+ format: 'uri',
33
+ };
34
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
35
+ expect(tree).toMatchSnapshot();
36
+ });
37
+ test('format data-url', () => {
38
+ const schema = {
39
+ type: 'string',
40
+ format: 'data-url',
41
+ };
42
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
43
+ expect(tree).toMatchSnapshot();
44
+ });
45
+ });
46
+ test('string field with placeholder', () => {
47
+ const schema = {
48
+ type: 'string',
49
+ };
50
+ const uiSchema = {
51
+ 'ui:placeholder': 'placeholder',
52
+ };
53
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
54
+ expect(tree).toMatchSnapshot();
55
+ });
56
+ test('number field', () => {
57
+ const schema = {
58
+ type: 'number',
59
+ };
60
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
61
+ expect(tree).toMatchSnapshot();
62
+ });
63
+ test('number field 0', () => {
64
+ const schema = {
65
+ type: 'number',
66
+ };
67
+ const formData = 0;
68
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, formData: formData })).toJSON();
69
+ expect(tree).toMatchSnapshot();
70
+ });
71
+ test('null field', () => {
72
+ const schema = {
73
+ type: 'null',
74
+ };
75
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
76
+ expect(tree).toMatchSnapshot();
77
+ });
78
+ test('unsupported field', () => {
79
+ const schema = {
80
+ type: undefined,
81
+ };
82
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
83
+ expect(tree).toMatchSnapshot();
84
+ });
85
+ test('format color', () => {
86
+ const schema = {
87
+ type: 'string',
88
+ format: 'color',
89
+ };
90
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
91
+ expect(tree).toMatchSnapshot();
92
+ });
93
+ test('format date', () => {
94
+ const schema = {
95
+ type: 'string',
96
+ format: 'date',
97
+ };
98
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
99
+ expect(tree).toMatchSnapshot();
100
+ });
101
+ test('format datetime', () => {
102
+ const schema = {
103
+ type: 'string',
104
+ format: 'datetime',
105
+ };
106
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
107
+ expect(tree).toMatchSnapshot();
108
+ });
109
+ test('format time', () => {
110
+ const schema = {
111
+ type: 'string',
112
+ format: 'time',
113
+ };
114
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
115
+ expect(tree).toMatchSnapshot();
116
+ });
117
+ test('password field', () => {
118
+ const schema = {
119
+ type: 'string',
120
+ };
121
+ const uiSchema = {
122
+ 'ui:widget': 'password',
123
+ };
124
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
125
+ expect(tree).toMatchSnapshot();
126
+ });
127
+ test('up/down field', () => {
128
+ const schema = {
129
+ type: 'number',
130
+ };
131
+ const uiSchema = {
132
+ 'ui:widget': 'updown',
133
+ };
134
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
135
+ expect(tree).toMatchSnapshot();
136
+ });
137
+ test('textarea field', () => {
138
+ const schema = {
139
+ type: 'string',
140
+ };
141
+ const uiSchema = {
142
+ 'ui:widget': 'textarea',
143
+ };
144
+ const tree = react_test_renderer_1.default
145
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema }), customOptions.textarea)
146
+ .toJSON();
147
+ expect(tree).toMatchSnapshot();
148
+ });
149
+ test('select field', () => {
150
+ const schema = {
151
+ type: 'string',
152
+ enum: ['foo', 'bar'],
153
+ };
154
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
155
+ expect(tree).toMatchSnapshot();
156
+ });
157
+ test('select field multiple choice', () => {
158
+ const schema = {
159
+ type: 'array',
160
+ items: {
161
+ type: 'string',
162
+ enum: ['foo', 'bar', 'fuzz', 'qux'],
163
+ },
164
+ uniqueItems: true,
165
+ };
166
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default }), customOptions.selectMulti).toJSON();
167
+ expect(tree).toMatchSnapshot();
168
+ });
169
+ test('select field multiple choice with labels', () => {
170
+ const schema = {
171
+ type: 'array',
172
+ items: {
173
+ type: 'number',
174
+ anyOf: [
175
+ {
176
+ enum: [1],
177
+ title: 'Blue',
178
+ },
179
+ {
180
+ enum: [2],
181
+ title: 'Red',
182
+ },
183
+ {
184
+ enum: [3],
185
+ title: 'Green',
186
+ },
187
+ ],
188
+ },
189
+ uniqueItems: true,
190
+ };
191
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default }), customOptions.selectMulti).toJSON();
192
+ expect(tree).toMatchSnapshot();
193
+ });
194
+ test('select field single choice enumDisabled', () => {
195
+ const schema = {
196
+ type: 'string',
197
+ enum: ['foo', 'bar'],
198
+ };
199
+ const uiSchema = {
200
+ 'ui:enumDisabled': ['bar'],
201
+ };
202
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiSchema, validator: validator_ajv8_1.default })).toJSON();
203
+ expect(tree).toMatchSnapshot();
204
+ });
205
+ test('select field multiple choice enumDisabled', () => {
206
+ const schema = {
207
+ type: 'array',
208
+ items: {
209
+ type: 'string',
210
+ enum: ['foo', 'bar', 'fuzz', 'qux'],
211
+ },
212
+ uniqueItems: true,
213
+ };
214
+ const uiSchema = {
215
+ 'ui:enumDisabled': ['bar'],
216
+ };
217
+ const tree = react_test_renderer_1.default
218
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiSchema, validator: validator_ajv8_1.default }), customOptions.selectMulti)
219
+ .toJSON();
220
+ expect(tree).toMatchSnapshot();
221
+ });
222
+ test('select field single choice formData', () => {
223
+ const schema = {
224
+ type: 'string',
225
+ enum: ['foo', 'bar'],
226
+ };
227
+ const formData = 'bar';
228
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, formData: formData, validator: validator_ajv8_1.default })).toJSON();
229
+ expect(tree).toMatchSnapshot();
230
+ });
231
+ test('select field multiple choice formData', () => {
232
+ const schema = {
233
+ type: 'array',
234
+ items: {
235
+ type: 'string',
236
+ enum: ['foo', 'bar', 'fuzz', 'qux'],
237
+ },
238
+ uniqueItems: true,
239
+ };
240
+ const formData = ['foo', 'bar'];
241
+ const tree = react_test_renderer_1.default
242
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, formData: formData, validator: validator_ajv8_1.default }), customOptions.selectMulti)
243
+ .toJSON();
244
+ expect(tree).toMatchSnapshot();
245
+ });
246
+ test('checkbox field', () => {
247
+ const schema = {
248
+ type: 'boolean',
249
+ };
250
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
251
+ expect(tree).toMatchSnapshot();
252
+ });
253
+ test('checkbox field with label', () => {
254
+ const schema = {
255
+ type: 'boolean',
256
+ title: 'test',
257
+ };
258
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
259
+ expect(tree).toMatchSnapshot();
260
+ });
261
+ test('checkboxes field', () => {
262
+ const schema = {
263
+ type: 'array',
264
+ title: 'An enum list rendered as checkboxes',
265
+ items: {
266
+ type: 'string',
267
+ enum: ['foo', 'bar', 'fuzz', 'qux'],
268
+ },
269
+ uniqueItems: true,
270
+ };
271
+ const uiSchema = {
272
+ 'ui:widget': 'checkboxes',
273
+ };
274
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
275
+ expect(tree).toMatchSnapshot();
276
+ });
277
+ test('radio field', () => {
278
+ const schema = {
279
+ type: 'boolean',
280
+ };
281
+ const uiSchema = {
282
+ 'ui:widget': 'radio',
283
+ };
284
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
285
+ expect(tree).toMatchSnapshot();
286
+ });
287
+ test('slider field', () => {
288
+ const schema = {
289
+ type: 'integer',
290
+ minimum: 42,
291
+ maximum: 100,
292
+ };
293
+ const uiSchema = {
294
+ 'ui:widget': 'range',
295
+ };
296
+ const tree = react_test_renderer_1.default
297
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema, formData: 75 }), customOptions.slider)
298
+ .toJSON();
299
+ expect(tree).toMatchSnapshot();
300
+ });
301
+ test('hidden field', () => {
302
+ const schema = {
303
+ type: 'object',
304
+ properties: {
305
+ 'my-field': {
306
+ type: 'string',
307
+ },
308
+ },
309
+ };
310
+ const uiSchema = {
311
+ 'my-field': {
312
+ 'ui:widget': 'hidden',
313
+ },
314
+ };
315
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
316
+ expect(tree).toMatchSnapshot();
317
+ });
318
+ test('field with description', () => {
319
+ const schema = {
320
+ type: 'object',
321
+ properties: {
322
+ 'my-field': {
323
+ type: 'string',
324
+ description: 'some description',
325
+ },
326
+ },
327
+ };
328
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
329
+ expect(tree).toMatchSnapshot();
330
+ });
331
+ test('field with description in uiSchema', () => {
332
+ const schema = {
333
+ type: 'object',
334
+ properties: {
335
+ 'my-field': {
336
+ type: 'string',
337
+ description: 'some description',
338
+ },
339
+ },
340
+ };
341
+ const uiSchema = {
342
+ 'my-field': {
343
+ 'ui:description': 'some other description',
344
+ },
345
+ };
346
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
347
+ expect(tree).toMatchSnapshot();
348
+ });
349
+ test('title field', () => {
350
+ const schema = {
351
+ type: 'object',
352
+ properties: {
353
+ title: {
354
+ type: 'string',
355
+ },
356
+ },
357
+ };
358
+ const uiSchema = {
359
+ 'ui:title': 'Titre 1',
360
+ title: {
361
+ 'ui:title': 'Titre 2',
362
+ },
363
+ };
364
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
365
+ expect(tree).toMatchSnapshot();
366
+ });
367
+ test('hidden label', () => {
368
+ const schema = {
369
+ type: 'string',
370
+ };
371
+ const uiSchema = {
372
+ 'ui:options': {
373
+ label: false,
374
+ },
375
+ };
376
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, uiSchema: uiSchema })).toJSON();
377
+ expect(tree).toMatchSnapshot();
378
+ });
379
+ test('using custom tagName', () => {
380
+ const schema = {
381
+ type: 'string',
382
+ };
383
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, tagName: 'div' })).toJSON();
384
+ expect(tree).toMatchSnapshot();
385
+ });
386
+ test('schema examples', () => {
387
+ const schema = {
388
+ type: 'string',
389
+ examples: ['Firefox', 'Chrome', 'Opera', 'Vivaldi', 'Safari'],
390
+ };
391
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
392
+ expect(tree).toMatchSnapshot();
393
+ });
394
+ test('help and error display', () => {
395
+ const schema = {
396
+ type: 'string',
397
+ };
398
+ const uiSchema = {
399
+ 'ui:help': 'help me!',
400
+ };
401
+ const errors = ['an error'];
402
+ const extraErrors = { __errors: errors };
403
+ const tree = react_test_renderer_1.default
404
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiSchema, validator: validator_ajv8_1.default, extraErrors: extraErrors }))
405
+ .toJSON();
406
+ expect(tree).toMatchSnapshot();
407
+ });
408
+ });
409
+ }
410
+ exports.formTests = formTests;
411
+ //# sourceMappingURL=formTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formTests.js","sourceRoot":"","sources":["../src/formTests.tsx"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { type ArrayRenderCustomOptions, CHECKBOXES_CUSTOMIZE, arrayTests } from './arrayTests';
2
+ export { type FormRenderCustomOptions, formTests, SELECT_CUSTOMIZE, SLIDER_CUSTOMIZE, TEXTAREA_CUSTOMIZE, } from './formTests';
3
+ export { objectTests } from './objectTests';
package/lib/index.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectTests = exports.TEXTAREA_CUSTOMIZE = exports.SLIDER_CUSTOMIZE = exports.SELECT_CUSTOMIZE = exports.formTests = exports.arrayTests = exports.CHECKBOXES_CUSTOMIZE = void 0;
4
+ var arrayTests_1 = require("./arrayTests");
5
+ Object.defineProperty(exports, "CHECKBOXES_CUSTOMIZE", { enumerable: true, get: function () { return arrayTests_1.CHECKBOXES_CUSTOMIZE; } });
6
+ Object.defineProperty(exports, "arrayTests", { enumerable: true, get: function () { return arrayTests_1.arrayTests; } });
7
+ var formTests_1 = require("./formTests");
8
+ Object.defineProperty(exports, "formTests", { enumerable: true, get: function () { return formTests_1.formTests; } });
9
+ Object.defineProperty(exports, "SELECT_CUSTOMIZE", { enumerable: true, get: function () { return formTests_1.SELECT_CUSTOMIZE; } });
10
+ Object.defineProperty(exports, "SLIDER_CUSTOMIZE", { enumerable: true, get: function () { return formTests_1.SLIDER_CUSTOMIZE; } });
11
+ Object.defineProperty(exports, "TEXTAREA_CUSTOMIZE", { enumerable: true, get: function () { return formTests_1.TEXTAREA_CUSTOMIZE; } });
12
+ var objectTests_1 = require("./objectTests");
13
+ Object.defineProperty(exports, "objectTests", { enumerable: true, get: function () { return objectTests_1.objectTests; } });
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA+F;AAAvD,kHAAA,oBAAoB,OAAA;AAAE,wGAAA,UAAU,OAAA;AAExE,yCAMqB;AAJnB,sGAAA,SAAS,OAAA;AACT,6GAAA,gBAAgB,OAAA;AAChB,6GAAA,gBAAgB,OAAA;AAChB,+GAAA,kBAAkB,OAAA;AAGpB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
@@ -0,0 +1,3 @@
1
+ import { ComponentType } from 'react';
2
+ import { FormProps } from '@rjsf/core';
3
+ export declare function objectTests(Form: ComponentType<FormProps>): void;
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectTests = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_test_renderer_1 = tslib_1.__importDefault(require("react-test-renderer"));
7
+ const validator_ajv8_1 = tslib_1.__importDefault(require("@rjsf/validator-ajv8"));
8
+ const titleAndDesc = {
9
+ title: 'Test field',
10
+ description: 'a test description',
11
+ };
12
+ const uiTitleAndDesc = {
13
+ 'ui:options': {
14
+ title: 'My Field',
15
+ description: 'a fancier description',
16
+ },
17
+ a: {
18
+ 'ui:options': {
19
+ title: 'My Item A',
20
+ description: 'a fancier item A description',
21
+ },
22
+ },
23
+ b: {
24
+ 'ui:options': {
25
+ title: 'My Item B',
26
+ description: 'a fancier item B description',
27
+ },
28
+ },
29
+ };
30
+ const labelsOff = {
31
+ 'ui:globalOptions': { label: false },
32
+ };
33
+ function objectTests(Form) {
34
+ describe('object fields', () => {
35
+ test('object', () => {
36
+ const schema = {
37
+ type: 'object',
38
+ properties: {
39
+ a: { type: 'string', title: 'A' },
40
+ b: { type: 'number', title: 'B' },
41
+ },
42
+ };
43
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
44
+ expect(tree).toMatchSnapshot();
45
+ });
46
+ test('additionalProperties', () => {
47
+ const schema = {
48
+ type: 'object',
49
+ additionalProperties: true,
50
+ };
51
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, formData: { foo: 'foo' } })).toJSON();
52
+ expect(tree).toMatchSnapshot();
53
+ });
54
+ test('show add button and fields if additionalProperties is true and not an object', () => {
55
+ const schema = {
56
+ additionalProperties: true,
57
+ };
58
+ const formData = {
59
+ additionalProperty: 'should appear',
60
+ };
61
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, formData: formData })).toJSON();
62
+ expect(tree).toMatchSnapshot();
63
+ });
64
+ describe('with title and description', () => {
65
+ test('object', () => {
66
+ const schema = Object.assign(Object.assign({ type: 'object' }, titleAndDesc), { properties: {
67
+ a: { type: 'string', title: 'A', description: 'A description' },
68
+ b: { type: 'number', title: 'B', description: 'B description' },
69
+ } });
70
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default })).toJSON();
71
+ expect(tree).toMatchSnapshot();
72
+ });
73
+ test('additionalProperties', () => {
74
+ const schema = Object.assign(Object.assign({ type: 'object' }, titleAndDesc), { additionalProperties: true });
75
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, formData: { foo: 'foo' } })).toJSON();
76
+ expect(tree).toMatchSnapshot();
77
+ });
78
+ test('show add button and fields if additionalProperties is true and not an object', () => {
79
+ const schema = Object.assign(Object.assign({}, titleAndDesc), { additionalProperties: true });
80
+ const formData = {
81
+ additionalProperty: 'should appear',
82
+ };
83
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, validator: validator_ajv8_1.default, formData: formData })).toJSON();
84
+ expect(tree).toMatchSnapshot();
85
+ });
86
+ });
87
+ describe('with title and description from uiSchema', () => {
88
+ test('object', () => {
89
+ const schema = {
90
+ type: 'object',
91
+ properties: {
92
+ a: { type: 'string', title: 'A' },
93
+ b: { type: 'number', title: 'B' },
94
+ },
95
+ };
96
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiTitleAndDesc, validator: validator_ajv8_1.default })).toJSON();
97
+ expect(tree).toMatchSnapshot();
98
+ });
99
+ test('additionalProperties', () => {
100
+ const schema = {
101
+ type: 'object',
102
+ additionalProperties: true,
103
+ };
104
+ const tree = react_test_renderer_1.default
105
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiTitleAndDesc, validator: validator_ajv8_1.default, formData: { foo: 'foo' } }))
106
+ .toJSON();
107
+ expect(tree).toMatchSnapshot();
108
+ });
109
+ test('show add button and fields if additionalProperties is true and not an object', () => {
110
+ const schema = {
111
+ additionalProperties: true,
112
+ };
113
+ const formData = {
114
+ additionalProperty: 'should appear',
115
+ };
116
+ const tree = react_test_renderer_1.default
117
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiTitleAndDesc, validator: validator_ajv8_1.default, formData: formData }))
118
+ .toJSON();
119
+ expect(tree).toMatchSnapshot();
120
+ });
121
+ });
122
+ describe('with title and description from both', () => {
123
+ test('object', () => {
124
+ const schema = Object.assign(Object.assign({ type: 'object' }, titleAndDesc), { properties: {
125
+ a: { type: 'string', title: 'A', description: 'A description' },
126
+ b: { type: 'number', title: 'B', description: 'B description' },
127
+ } });
128
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiTitleAndDesc, validator: validator_ajv8_1.default })).toJSON();
129
+ expect(tree).toMatchSnapshot();
130
+ });
131
+ test('additionalProperties', () => {
132
+ const schema = Object.assign(Object.assign({ type: 'object' }, titleAndDesc), { additionalProperties: true });
133
+ const tree = react_test_renderer_1.default
134
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: uiTitleAndDesc, validator: validator_ajv8_1.default, formData: { foo: 'foo' } }))
135
+ .toJSON();
136
+ expect(tree).toMatchSnapshot();
137
+ });
138
+ });
139
+ describe('with title and description with global label off', () => {
140
+ test('object', () => {
141
+ const schema = Object.assign(Object.assign({ type: 'object' }, titleAndDesc), { properties: {
142
+ a: { type: 'string', title: 'A', description: 'A description' },
143
+ b: { type: 'number', title: 'B', description: 'B description' },
144
+ } });
145
+ const tree = react_test_renderer_1.default.create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: labelsOff, validator: validator_ajv8_1.default })).toJSON();
146
+ expect(tree).toMatchSnapshot();
147
+ });
148
+ test('additionalProperties', () => {
149
+ const schema = Object.assign(Object.assign({ type: 'object' }, titleAndDesc), { additionalProperties: true });
150
+ const tree = react_test_renderer_1.default
151
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: labelsOff, validator: validator_ajv8_1.default, formData: { foo: 'foo' } }))
152
+ .toJSON();
153
+ expect(tree).toMatchSnapshot();
154
+ });
155
+ test('show add button and fields if additionalProperties is true and not an object', () => {
156
+ const schema = Object.assign(Object.assign({}, titleAndDesc), { additionalProperties: true });
157
+ const formData = {
158
+ additionalProperty: 'should appear',
159
+ };
160
+ const tree = react_test_renderer_1.default
161
+ .create((0, jsx_runtime_1.jsx)(Form, { schema: schema, uiSchema: labelsOff, validator: validator_ajv8_1.default, formData: formData }))
162
+ .toJSON();
163
+ expect(tree).toMatchSnapshot();
164
+ });
165
+ });
166
+ });
167
+ }
168
+ exports.objectTests = objectTests;
169
+ //# sourceMappingURL=objectTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectTests.js","sourceRoot":"","sources":["../src/objectTests.tsx"],"names":[],"mappings":"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"}