@jsonforms/core 2.5.2-alpha.0 → 3.0.0-alpha.2
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 +1 -1
- package/docs/assets/js/search.json +1 -1
- package/docs/enums/ruleeffect.html +4 -4
- package/docs/globals.html +1061 -1120
- package/docs/index.html +64 -91
- package/docs/interfaces/addcellrendereraction.html +3 -3
- package/docs/interfaces/addrendereraction.html +3 -3
- package/docs/interfaces/adduischemaaction.html +3 -3
- package/docs/interfaces/andcondition.html +2 -2
- package/docs/interfaces/arraycontrolprops.html +22 -22
- package/docs/interfaces/arraylayoutprops.html +22 -22
- package/docs/interfaces/categorization.html +5 -5
- package/docs/interfaces/category.html +5 -5
- package/docs/interfaces/cellprops.html +14 -14
- package/docs/interfaces/combinatorrendererprops.html +13 -13
- package/docs/interfaces/combinatorsubschemarenderinfo.html +3 -3
- package/docs/interfaces/composablecondition.html +2 -2
- package/docs/interfaces/condition.html +1 -1
- package/docs/interfaces/controlelement.html +5 -5
- package/docs/interfaces/controlprops.html +17 -17
- package/docs/interfaces/controlstate.html +2 -2
- package/docs/interfaces/controlwithdetailprops.html +18 -18
- package/docs/interfaces/dispatchcellprops.html +13 -13
- package/docs/interfaces/dispatchcellstateprops.html +13 -13
- package/docs/interfaces/dispatchpropsofarraycontrol.html +4 -4
- package/docs/interfaces/dispatchpropsofcontrol.html +1 -1
- package/docs/interfaces/dispatchpropsofmultienumcontrol.html +2 -2
- package/docs/interfaces/enumcellprops.html +15 -15
- package/docs/interfaces/enumoption.html +2 -2
- package/docs/interfaces/formatted.html +2 -2
- package/docs/interfaces/grouplayout.html +5 -5
- package/docs/interfaces/horizontallayout.html +4 -4
- package/docs/interfaces/initaction.html +6 -6
- package/docs/interfaces/initactionoptions.html +3 -17
- package/docs/interfaces/jsonformscellrendererregistryentry.html +2 -2
- package/docs/interfaces/jsonformscore.html +7 -21
- package/docs/interfaces/jsonformsdefaultdataregistryentry.html +2 -2
- package/docs/interfaces/jsonformsextendedstate.html +1 -1
- package/docs/interfaces/{jsonformslocalestate.html → jsonformsi18nstate.html} +20 -20
- package/docs/interfaces/jsonformsprops.html +9 -24
- package/docs/interfaces/jsonformsrendererregistryentry.html +2 -2
- package/docs/interfaces/jsonformsstate.html +1 -1
- package/docs/interfaces/jsonformsstore.html +5 -5
- package/docs/interfaces/jsonformssubstates.html +18 -8
- package/docs/interfaces/jsonformsuischemaregistryentry.html +2 -2
- package/docs/interfaces/labeldescription.html +2 -2
- package/docs/interfaces/labelelement.html +4 -4
- package/docs/interfaces/layout.html +4 -4
- package/docs/interfaces/layoutprops.html +10 -10
- package/docs/interfaces/leafcondition.html +3 -3
- package/docs/interfaces/orcondition.html +2 -2
- package/docs/interfaces/ownpropsofcell.html +10 -10
- package/docs/interfaces/ownpropsofcontrol.html +9 -9
- package/docs/interfaces/ownpropsofenum.html +1 -1
- package/docs/interfaces/ownpropsofenumcell.html +11 -11
- package/docs/interfaces/ownpropsofjsonformsrenderer.html +8 -8
- package/docs/interfaces/ownpropsoflayout.html +9 -9
- package/docs/interfaces/ownpropsofmasterlistitem.html +6 -6
- package/docs/interfaces/ownpropsofrenderer.html +8 -8
- package/docs/interfaces/registerdefaultdataaction.html +3 -3
- package/docs/interfaces/removecellrendereraction.html +3 -3
- package/docs/interfaces/removerendereraction.html +3 -3
- package/docs/interfaces/removeuischemaaction.html +2 -2
- package/docs/interfaces/rendererprops.html +9 -9
- package/docs/interfaces/rule.html +2 -2
- package/docs/interfaces/schemabasedcondition.html +3 -3
- package/docs/interfaces/scopable.html +1 -1
- package/docs/interfaces/setajvaction.html +3 -3
- package/docs/interfaces/setconfigaction.html +2 -2
- package/docs/interfaces/setlocaleaction.html +3 -3
- package/docs/interfaces/setschemaaction.html +2 -2
- package/docs/interfaces/{setlocalizeduischemasaction.html → settranslatoraction.html} +29 -15
- package/docs/interfaces/setuischemaaction.html +2 -2
- package/docs/interfaces/setvalidationmodeaction.html +2 -2
- package/docs/interfaces/statepropsofarraycontrol.html +18 -18
- package/docs/interfaces/statepropsofarraylayout.html +18 -18
- package/docs/interfaces/statepropsofcell.html +13 -13
- package/docs/interfaces/statepropsofcombinator.html +12 -12
- package/docs/interfaces/statepropsofcontrol.html +16 -16
- package/docs/interfaces/statepropsofcontrolwithdetail.html +17 -17
- package/docs/interfaces/statepropsofenumcell.html +14 -14
- package/docs/interfaces/statepropsofjsonformsrenderer.html +9 -23
- package/docs/interfaces/statepropsoflayout.html +10 -10
- package/docs/interfaces/statepropsofmasteritem.html +7 -7
- package/docs/interfaces/statepropsofrenderer.html +9 -9
- package/docs/interfaces/statepropsofscopedrenderer.html +12 -12
- package/docs/interfaces/uischemaelement.html +3 -3
- package/docs/interfaces/unregisterdefaultdataaction.html +2 -2
- package/docs/interfaces/updateaction.html +3 -3
- package/docs/interfaces/updatecoreaction.html +6 -6
- package/docs/interfaces/updateerrorsaction.html +2 -2
- package/docs/interfaces/{setlocalizedschemasaction.html → updatei18naction.html} +43 -15
- package/docs/interfaces/verticallayout.html +4 -4
- package/docs/interfaces/withclassname.html +1 -1
- package/lib/Helpers.d.ts +5 -0
- package/lib/Helpers.js +33 -0
- package/lib/Helpers.js.map +1 -0
- package/lib/actions/actions.d.ts +181 -0
- package/lib/actions/actions.js +173 -0
- package/lib/actions/actions.js.map +1 -0
- package/lib/actions/index.d.ts +1 -180
- package/lib/actions/index.js +26 -122
- package/lib/actions/index.js.map +1 -1
- package/lib/configDefault.js +2 -1
- package/lib/configDefault.js.map +1 -1
- package/lib/generators/Generate.d.ts +6 -0
- package/lib/generators/Generate.js +35 -0
- package/lib/generators/Generate.js.map +1 -0
- package/lib/generators/index.d.ts +3 -10
- package/lib/generators/index.js +28 -9
- package/lib/generators/index.js.map +1 -1
- package/lib/generators/schema.d.ts +1 -1
- package/lib/generators/schema.js +3 -1
- package/lib/generators/schema.js.map +1 -1
- package/lib/generators/uischema.d.ts +1 -2
- package/lib/generators/uischema.js +12 -10
- package/lib/generators/uischema.js.map +1 -1
- package/lib/i18n/i18nTypes.d.ts +15 -0
- package/lib/i18n/i18nTypes.js +3 -0
- package/lib/i18n/i18nTypes.js.map +1 -0
- package/lib/i18n/i18nUtil.d.ts +11 -0
- package/lib/i18n/i18nUtil.js +58 -0
- package/lib/i18n/i18nUtil.js.map +1 -0
- package/lib/i18n/index.d.ts +2 -0
- package/lib/i18n/index.js +6 -0
- package/lib/i18n/index.js.map +1 -0
- package/lib/index.d.ts +6 -18
- package/lib/index.js +10 -15
- package/lib/index.js.map +1 -1
- package/lib/jsonforms-core.js +9 -12
- package/lib/jsonforms-core.js.map +1 -1
- package/lib/models/draft4.js +2 -1
- package/lib/models/draft4.js.map +1 -1
- package/lib/models/index.d.ts +5 -0
- package/lib/models/index.js +33 -0
- package/lib/models/index.js.map +1 -0
- package/lib/models/jsonSchema.js +24 -0
- package/lib/models/jsonSchema.js.map +1 -1
- package/lib/models/uischema.js +29 -2
- package/lib/models/uischema.js.map +1 -1
- package/lib/reducers/cells.d.ts +1 -1
- package/lib/reducers/cells.js +27 -1
- package/lib/reducers/cells.js.map +1 -1
- package/lib/reducers/config.d.ts +1 -1
- package/lib/reducers/config.js +5 -3
- package/lib/reducers/config.js.map +1 -1
- package/lib/reducers/core.d.ts +5 -7
- package/lib/reducers/core.js +78 -63
- package/lib/reducers/core.js.map +1 -1
- package/lib/reducers/default-data.d.ts +1 -1
- package/lib/reducers/default-data.js +6 -3
- package/lib/reducers/default-data.js.map +1 -1
- package/lib/reducers/i18n.d.ts +8 -11
- package/lib/reducers/i18n.js +40 -23
- package/lib/reducers/i18n.js.map +1 -1
- package/lib/reducers/index.d.ts +9 -49
- package/lib/reducers/index.js +33 -91
- package/lib/reducers/index.js.map +1 -1
- package/lib/reducers/reducers.d.ts +37 -0
- package/lib/reducers/reducers.js +107 -0
- package/lib/reducers/reducers.js.map +1 -0
- package/lib/reducers/renderers.d.ts +1 -1
- package/lib/reducers/renderers.js +27 -1
- package/lib/reducers/renderers.js.map +1 -1
- package/lib/reducers/selectors.d.ts +15 -0
- package/lib/reducers/selectors.js +56 -0
- package/lib/reducers/selectors.js.map +1 -0
- package/lib/reducers/uischemas.d.ts +2 -2
- package/lib/reducers/uischemas.js +9 -6
- package/lib/reducers/uischemas.js.map +1 -1
- package/lib/store.d.ts +5 -8
- package/lib/store.js +24 -0
- package/lib/store.js.map +1 -1
- package/lib/testers/index.d.ts +1 -204
- package/lib/testers/index.js +3 -376
- package/lib/testers/index.js.map +1 -1
- package/lib/testers/testers.d.ts +203 -0
- package/lib/testers/testers.js +421 -0
- package/lib/testers/testers.js.map +1 -0
- package/lib/util/Formatted.js +24 -0
- package/lib/util/Formatted.js.map +1 -1
- package/lib/util/array.js +25 -0
- package/lib/util/array.js.map +1 -1
- package/lib/util/cell.d.ts +11 -4
- package/lib/util/cell.js +61 -17
- package/lib/util/cell.js.map +1 -1
- package/lib/util/combinators.d.ts +2 -3
- package/lib/util/combinators.js +5 -2
- package/lib/util/combinators.js.map +1 -1
- package/lib/util/ids.js +8 -4
- package/lib/util/ids.js.map +1 -1
- package/lib/util/index.d.ts +11 -45
- package/lib/util/index.js +14 -104
- package/lib/util/index.js.map +1 -1
- package/lib/util/label.d.ts +1 -2
- package/lib/util/label.js +7 -4
- package/lib/util/label.js.map +1 -1
- package/lib/util/path.d.ts +2 -1
- package/lib/util/path.js +12 -6
- package/lib/util/path.js.map +1 -1
- package/lib/util/renderer.d.ts +17 -17
- package/lib/util/renderer.js +163 -76
- package/lib/util/renderer.js.map +1 -1
- package/lib/util/resolvers.d.ts +1 -14
- package/lib/util/resolvers.js +9 -215
- package/lib/util/resolvers.js.map +1 -1
- package/lib/util/runtime.d.ts +12 -2
- package/lib/util/runtime.js +59 -17
- package/lib/util/runtime.js.map +1 -1
- package/lib/util/schema.js +27 -1
- package/lib/util/schema.js.map +1 -1
- package/lib/util/uischema.d.ts +1 -1
- package/lib/util/uischema.js +11 -7
- package/lib/util/uischema.js.map +1 -1
- package/lib/util/util.d.ts +31 -0
- package/lib/util/util.js +112 -0
- package/lib/util/util.js.map +1 -0
- package/lib/util/validator.d.ts +3 -2
- package/lib/util/validator.js +6 -5
- package/lib/util/validator.js.map +1 -1
- package/package.json +7 -9
- package/src/Helpers.ts +38 -0
- package/src/actions/actions.ts +345 -0
- package/src/actions/index.ts +1 -312
- package/src/configDefault.ts +1 -0
- package/src/generators/Generate.ts +43 -0
- package/src/generators/index.ts +3 -21
- package/src/generators/schema.ts +1 -1
- package/src/generators/uischema.ts +4 -4
- package/src/i18n/i18nTypes.ts +17 -0
- package/src/i18n/i18nUtil.ts +76 -0
- package/src/i18n/index.ts +2 -0
- package/src/index.ts +7 -31
- package/src/models/draft4.ts +1 -0
- package/src/models/index.ts +30 -0
- package/src/models/jsonSchema.ts +1 -0
- package/src/models/uischema.ts +1 -0
- package/src/reducers/cells.ts +2 -1
- package/src/reducers/config.ts +2 -1
- package/src/reducers/core.ts +74 -81
- package/src/reducers/default-data.ts +2 -1
- package/src/reducers/i18n.ts +42 -35
- package/src/reducers/index.ts +9 -158
- package/src/reducers/reducers.ts +148 -0
- package/src/reducers/renderers.ts +2 -1
- package/src/reducers/selectors.ts +65 -0
- package/src/reducers/uischemas.ts +4 -2
- package/src/store.ts +11 -8
- package/src/testers/index.ts +1 -516
- package/src/testers/testers.ts +547 -0
- package/src/util/Formatted.ts +1 -0
- package/src/util/array.ts +25 -0
- package/src/util/cell.ts +91 -19
- package/src/util/combinators.ts +2 -4
- package/src/util/ids.ts +1 -0
- package/src/util/index.ts +11 -126
- package/src/util/label.ts +2 -2
- package/src/util/path.ts +4 -1
- package/src/util/renderer.ts +168 -85
- package/src/util/resolvers.ts +2 -261
- package/src/util/runtime.ts +46 -2
- package/src/util/schema.ts +26 -1
- package/src/util/uischema.ts +2 -1
- package/src/util/util.ts +127 -0
- package/src/util/validator.ts +5 -8
- package/test/reducers/core.test.ts +31 -223
- package/test/util/cell.test.ts +33 -2
- package/test/util/renderer.test.ts +483 -3
- package/test/util/resolvers.test.ts +1 -59
- package/test/util/runtime.test.ts +264 -4
- package/docs/interfaces/labels.html +0 -157
- package/docs/interfaces/schemaref.html +0 -160
- package/docs/interfaces/schemarefs.html +0 -138
|
@@ -23,15 +23,14 @@
|
|
|
23
23
|
THE SOFTWARE.
|
|
24
24
|
*/
|
|
25
25
|
import test from 'ava';
|
|
26
|
-
import
|
|
27
|
-
import RefParser from 'json-schema-ref-parser';
|
|
26
|
+
import Ajv from 'ajv';
|
|
28
27
|
import { coreReducer } from '../../src/reducers';
|
|
29
28
|
import { init, update, updateErrors } from '../../src/actions';
|
|
30
29
|
import { JsonSchema } from '../../src/models/jsonSchema';
|
|
31
30
|
import {
|
|
32
31
|
errorAt,
|
|
33
32
|
JsonFormsCore,
|
|
34
|
-
|
|
33
|
+
validate,
|
|
35
34
|
subErrorsAt
|
|
36
35
|
} from '../../src/reducers/core';
|
|
37
36
|
|
|
@@ -39,20 +38,6 @@ import { createAjv, updateCore } from '../../src';
|
|
|
39
38
|
import { setSchema, setValidationMode } from '../../lib';
|
|
40
39
|
import { cloneDeep } from 'lodash';
|
|
41
40
|
|
|
42
|
-
const createRefParserOptions = (
|
|
43
|
-
encoding = 'testEncoding'
|
|
44
|
-
): RefParser.Options => {
|
|
45
|
-
const parserOptions: RefParser.ParserOptions & { encoding?: string } = {
|
|
46
|
-
encoding
|
|
47
|
-
};
|
|
48
|
-
const myOptions: RefParser.Options = {
|
|
49
|
-
parse: {
|
|
50
|
-
text: parserOptions
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
return myOptions;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
41
|
test('core reducer should support v7', t => {
|
|
57
42
|
const schema: JsonSchema = {
|
|
58
43
|
type: 'object',
|
|
@@ -75,7 +60,7 @@ test('core reducer should support v7', t => {
|
|
|
75
60
|
t.is(after.errors.length, 1);
|
|
76
61
|
});
|
|
77
62
|
|
|
78
|
-
test('core reducer - no previous state - init without options should create new ajv
|
|
63
|
+
test('core reducer - no previous state - init without options should create new ajv', t => {
|
|
79
64
|
const schema: JsonSchema = {
|
|
80
65
|
type: 'object',
|
|
81
66
|
properties: {
|
|
@@ -87,7 +72,6 @@ test('core reducer - no previous state - init without options should create new
|
|
|
87
72
|
};
|
|
88
73
|
const after = coreReducer(undefined, init({}, schema, undefined, undefined));
|
|
89
74
|
t.true(after.ajv !== undefined);
|
|
90
|
-
t.true(after.refParserOptions === undefined);
|
|
91
75
|
});
|
|
92
76
|
|
|
93
77
|
test('core reducer - no previous state - init with ajv as options object should use it', t => {
|
|
@@ -100,12 +84,9 @@ test('core reducer - no previous state - init with ajv as options object should
|
|
|
100
84
|
}
|
|
101
85
|
}
|
|
102
86
|
};
|
|
103
|
-
const myAjv = new
|
|
104
|
-
errorDataPath: 'mypath'
|
|
105
|
-
});
|
|
87
|
+
const myAjv = new Ajv();
|
|
106
88
|
const after = coreReducer(undefined, init({}, schema, undefined, myAjv));
|
|
107
89
|
t.deepEqual(after.ajv, myAjv);
|
|
108
|
-
t.true(after.refParserOptions === undefined);
|
|
109
90
|
});
|
|
110
91
|
|
|
111
92
|
test('core reducer - no previous state - init with empty options object', t => {
|
|
@@ -120,7 +101,6 @@ test('core reducer - no previous state - init with empty options object', t => {
|
|
|
120
101
|
};
|
|
121
102
|
const after = coreReducer(undefined, init({}, schema, undefined, {}));
|
|
122
103
|
t.true(after.ajv !== undefined);
|
|
123
|
-
t.true(after.refParserOptions === undefined);
|
|
124
104
|
});
|
|
125
105
|
|
|
126
106
|
test('core reducer - no previous state - init with options object with ajv', t => {
|
|
@@ -133,9 +113,7 @@ test('core reducer - no previous state - init with options object with ajv', t =
|
|
|
133
113
|
}
|
|
134
114
|
}
|
|
135
115
|
};
|
|
136
|
-
const myAjv = new
|
|
137
|
-
errorDataPath: 'mypath'
|
|
138
|
-
});
|
|
116
|
+
const myAjv = new Ajv();
|
|
139
117
|
const after = coreReducer(
|
|
140
118
|
undefined,
|
|
141
119
|
init({}, schema, undefined, {
|
|
@@ -143,53 +121,6 @@ test('core reducer - no previous state - init with options object with ajv', t =
|
|
|
143
121
|
})
|
|
144
122
|
);
|
|
145
123
|
t.deepEqual(after.ajv, myAjv);
|
|
146
|
-
t.true(after.refParserOptions === undefined);
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
test('core reducer - no previous state - init with options object with ref parser options', t => {
|
|
150
|
-
const schema: JsonSchema = {
|
|
151
|
-
type: 'object',
|
|
152
|
-
properties: {
|
|
153
|
-
foo: {
|
|
154
|
-
type: 'string',
|
|
155
|
-
const: 'bar'
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
const myOptions = createRefParserOptions();
|
|
160
|
-
const after = coreReducer(
|
|
161
|
-
undefined,
|
|
162
|
-
init({}, schema, undefined, {
|
|
163
|
-
refParserOptions: myOptions
|
|
164
|
-
})
|
|
165
|
-
);
|
|
166
|
-
t.true(after.ajv !== undefined);
|
|
167
|
-
t.deepEqual(after.refParserOptions, myOptions);
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
test('core reducer - no previous state - init with options object with ajv and ref parser options', t => {
|
|
171
|
-
const schema: JsonSchema = {
|
|
172
|
-
type: 'object',
|
|
173
|
-
properties: {
|
|
174
|
-
foo: {
|
|
175
|
-
type: 'string',
|
|
176
|
-
const: 'bar'
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
};
|
|
180
|
-
const myAjv = new AJV({
|
|
181
|
-
errorDataPath: 'mypath'
|
|
182
|
-
});
|
|
183
|
-
const myOptions = createRefParserOptions();
|
|
184
|
-
const after = coreReducer(
|
|
185
|
-
undefined,
|
|
186
|
-
init({}, schema, undefined, {
|
|
187
|
-
ajv: myAjv,
|
|
188
|
-
refParserOptions: myOptions
|
|
189
|
-
})
|
|
190
|
-
);
|
|
191
|
-
t.deepEqual(after.ajv, myAjv);
|
|
192
|
-
t.deepEqual(after.refParserOptions, myOptions);
|
|
193
124
|
});
|
|
194
125
|
|
|
195
126
|
test('core reducer - previous state - init without options should keep previous objects', t => {
|
|
@@ -202,10 +133,7 @@ test('core reducer - previous state - init without options should keep previous
|
|
|
202
133
|
}
|
|
203
134
|
}
|
|
204
135
|
};
|
|
205
|
-
const myAjv = new
|
|
206
|
-
errorDataPath: 'mypath'
|
|
207
|
-
});
|
|
208
|
-
const myOptions = createRefParserOptions();
|
|
136
|
+
const myAjv = new Ajv();
|
|
209
137
|
const after = coreReducer(
|
|
210
138
|
{
|
|
211
139
|
data: {},
|
|
@@ -214,15 +142,13 @@ test('core reducer - previous state - init without options should keep previous
|
|
|
214
142
|
type: 'Label'
|
|
215
143
|
},
|
|
216
144
|
ajv: myAjv,
|
|
217
|
-
refParserOptions: myOptions
|
|
218
145
|
},
|
|
219
146
|
init({}, schema)
|
|
220
147
|
);
|
|
221
148
|
t.deepEqual(after.ajv, myAjv);
|
|
222
|
-
t.deepEqual(after.refParserOptions, myOptions);
|
|
223
149
|
});
|
|
224
150
|
|
|
225
|
-
test('core reducer - previous state - init with ajv options object should overwrite ajv
|
|
151
|
+
test('core reducer - previous state - init with ajv options object should overwrite ajv', t => {
|
|
226
152
|
const schema: JsonSchema = {
|
|
227
153
|
type: 'object',
|
|
228
154
|
properties: {
|
|
@@ -232,13 +158,8 @@ test('core reducer - previous state - init with ajv options object should overwr
|
|
|
232
158
|
}
|
|
233
159
|
}
|
|
234
160
|
};
|
|
235
|
-
const previousAjv = new
|
|
236
|
-
|
|
237
|
-
});
|
|
238
|
-
const newAjv = new AJV({
|
|
239
|
-
errorDataPath: 'newajv'
|
|
240
|
-
});
|
|
241
|
-
const myOptions = createRefParserOptions();
|
|
161
|
+
const previousAjv = new Ajv();
|
|
162
|
+
const newAjv = new Ajv();
|
|
242
163
|
const after = coreReducer(
|
|
243
164
|
{
|
|
244
165
|
data: {},
|
|
@@ -247,117 +168,10 @@ test('core reducer - previous state - init with ajv options object should overwr
|
|
|
247
168
|
type: 'Label'
|
|
248
169
|
},
|
|
249
170
|
ajv: previousAjv,
|
|
250
|
-
refParserOptions: myOptions
|
|
251
171
|
},
|
|
252
172
|
init({}, schema, undefined, newAjv)
|
|
253
173
|
);
|
|
254
174
|
t.deepEqual(after.ajv, newAjv);
|
|
255
|
-
t.deepEqual(after.refParserOptions, myOptions);
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
test('core reducer - previous state - init with options with ajv should overwrite ajv and keep ref parser options', t => {
|
|
259
|
-
const schema: JsonSchema = {
|
|
260
|
-
type: 'object',
|
|
261
|
-
properties: {
|
|
262
|
-
foo: {
|
|
263
|
-
type: 'string',
|
|
264
|
-
const: 'bar'
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
};
|
|
268
|
-
const previousAjv = new AJV({
|
|
269
|
-
errorDataPath: 'mypath'
|
|
270
|
-
});
|
|
271
|
-
const newAjv = new AJV({
|
|
272
|
-
errorDataPath: 'newajv'
|
|
273
|
-
});
|
|
274
|
-
const myOptions = createRefParserOptions();
|
|
275
|
-
const after = coreReducer(
|
|
276
|
-
{
|
|
277
|
-
data: {},
|
|
278
|
-
schema: {},
|
|
279
|
-
uischema: {
|
|
280
|
-
type: 'Label'
|
|
281
|
-
},
|
|
282
|
-
ajv: previousAjv,
|
|
283
|
-
refParserOptions: myOptions
|
|
284
|
-
},
|
|
285
|
-
init({}, schema, undefined, {
|
|
286
|
-
ajv: newAjv
|
|
287
|
-
})
|
|
288
|
-
);
|
|
289
|
-
t.deepEqual(after.ajv, newAjv);
|
|
290
|
-
t.deepEqual(after.refParserOptions, myOptions);
|
|
291
|
-
});
|
|
292
|
-
|
|
293
|
-
test('core reducer - previous state - init with options with ref parser options should overwrite ref parser options and keep ajv', t => {
|
|
294
|
-
const schema: JsonSchema = {
|
|
295
|
-
type: 'object',
|
|
296
|
-
properties: {
|
|
297
|
-
foo: {
|
|
298
|
-
type: 'string',
|
|
299
|
-
const: 'bar'
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
const myAjv = new AJV({
|
|
304
|
-
errorDataPath: 'mypath'
|
|
305
|
-
});
|
|
306
|
-
const previousOptions = createRefParserOptions();
|
|
307
|
-
const newOptions = createRefParserOptions('newEncoding');
|
|
308
|
-
const after = coreReducer(
|
|
309
|
-
{
|
|
310
|
-
data: {},
|
|
311
|
-
schema: {},
|
|
312
|
-
uischema: {
|
|
313
|
-
type: 'Label'
|
|
314
|
-
},
|
|
315
|
-
ajv: myAjv,
|
|
316
|
-
refParserOptions: previousOptions
|
|
317
|
-
},
|
|
318
|
-
init({}, schema, undefined, {
|
|
319
|
-
refParserOptions: newOptions
|
|
320
|
-
})
|
|
321
|
-
);
|
|
322
|
-
t.deepEqual(after.ajv, myAjv);
|
|
323
|
-
t.deepEqual(after.refParserOptions, newOptions);
|
|
324
|
-
});
|
|
325
|
-
|
|
326
|
-
test('core reducer - previous state - init with both options should overwrite both', t => {
|
|
327
|
-
const schema: JsonSchema = {
|
|
328
|
-
type: 'object',
|
|
329
|
-
properties: {
|
|
330
|
-
foo: {
|
|
331
|
-
type: 'string',
|
|
332
|
-
const: 'bar'
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
};
|
|
336
|
-
const previousAjv = new AJV({
|
|
337
|
-
errorDataPath: 'mypath'
|
|
338
|
-
});
|
|
339
|
-
const newAjv = new AJV({
|
|
340
|
-
errorDataPath: 'newajv'
|
|
341
|
-
});
|
|
342
|
-
const previousOptions = createRefParserOptions();
|
|
343
|
-
const newOptions = createRefParserOptions('newEncoding');
|
|
344
|
-
const after = coreReducer(
|
|
345
|
-
{
|
|
346
|
-
data: {},
|
|
347
|
-
schema: {},
|
|
348
|
-
uischema: {
|
|
349
|
-
type: 'Label'
|
|
350
|
-
},
|
|
351
|
-
ajv: previousAjv,
|
|
352
|
-
refParserOptions: previousOptions
|
|
353
|
-
},
|
|
354
|
-
init({}, schema, undefined, {
|
|
355
|
-
ajv: newAjv,
|
|
356
|
-
refParserOptions: newOptions
|
|
357
|
-
})
|
|
358
|
-
);
|
|
359
|
-
t.deepEqual(after.ajv, newAjv);
|
|
360
|
-
t.deepEqual(after.refParserOptions, newOptions);
|
|
361
175
|
});
|
|
362
176
|
|
|
363
177
|
test('core reducer - previous state - init with empty options should not overwrite', t => {
|
|
@@ -370,10 +184,7 @@ test('core reducer - previous state - init with empty options should not overwri
|
|
|
370
184
|
}
|
|
371
185
|
}
|
|
372
186
|
};
|
|
373
|
-
const myAjv = new
|
|
374
|
-
errorDataPath: 'mypath'
|
|
375
|
-
});
|
|
376
|
-
const myOptions = createRefParserOptions();
|
|
187
|
+
const myAjv = new Ajv();
|
|
377
188
|
const after = coreReducer(
|
|
378
189
|
{
|
|
379
190
|
data: {},
|
|
@@ -382,12 +193,10 @@ test('core reducer - previous state - init with empty options should not overwri
|
|
|
382
193
|
type: 'Label'
|
|
383
194
|
},
|
|
384
195
|
ajv: myAjv,
|
|
385
|
-
refParserOptions: myOptions
|
|
386
196
|
},
|
|
387
197
|
init({}, schema, undefined, {})
|
|
388
198
|
);
|
|
389
199
|
t.deepEqual(after.ajv, myAjv);
|
|
390
|
-
t.deepEqual(after.refParserOptions, myOptions);
|
|
391
200
|
});
|
|
392
201
|
|
|
393
202
|
test('core reducer - previous state - init with undefined data should not change data', t => {
|
|
@@ -458,7 +267,7 @@ test('core reducer - update - undefined data should update for given path', t =>
|
|
|
458
267
|
type: 'Label'
|
|
459
268
|
},
|
|
460
269
|
errors: [],
|
|
461
|
-
validator: new
|
|
270
|
+
validator: new Ajv().compile(schema)
|
|
462
271
|
};
|
|
463
272
|
|
|
464
273
|
const after = coreReducer(
|
|
@@ -565,7 +374,7 @@ test('core reducer - update - empty path should update root state', t => {
|
|
|
565
374
|
uischema: {
|
|
566
375
|
type: 'Label'
|
|
567
376
|
},
|
|
568
|
-
validator: new
|
|
377
|
+
validator: new Ajv().compile(schema)
|
|
569
378
|
};
|
|
570
379
|
|
|
571
380
|
const after = coreReducer(
|
|
@@ -606,7 +415,7 @@ test('core reducer - update - providing a path should update data only belonging
|
|
|
606
415
|
uischema: {
|
|
607
416
|
type: 'Label'
|
|
608
417
|
},
|
|
609
|
-
validator: new
|
|
418
|
+
validator: new Ajv().compile(schema)
|
|
610
419
|
};
|
|
611
420
|
|
|
612
421
|
const after = coreReducer(
|
|
@@ -646,7 +455,7 @@ test('core reducer - update - should update errors', t => {
|
|
|
646
455
|
uischema: {
|
|
647
456
|
type: 'Label'
|
|
648
457
|
},
|
|
649
|
-
validator: new
|
|
458
|
+
validator: new Ajv().compile(schema)
|
|
650
459
|
};
|
|
651
460
|
|
|
652
461
|
const after = coreReducer(
|
|
@@ -661,9 +470,9 @@ test('core reducer - update - should update errors', t => {
|
|
|
661
470
|
data: { ...before.data, color: 'Yellow' },
|
|
662
471
|
errors: [
|
|
663
472
|
{
|
|
664
|
-
|
|
473
|
+
instancePath: '/color',
|
|
665
474
|
keyword: 'enum',
|
|
666
|
-
message: '
|
|
475
|
+
message: 'must be equal to one of the allowed values',
|
|
667
476
|
params: {
|
|
668
477
|
allowedValues: ['Blue', 'Green']
|
|
669
478
|
},
|
|
@@ -693,7 +502,7 @@ test('core reducer - updateErrors - should update errors with error', t => {
|
|
|
693
502
|
};
|
|
694
503
|
|
|
695
504
|
const error = {
|
|
696
|
-
|
|
505
|
+
instancePath: '/color',
|
|
697
506
|
keyword: 'enum',
|
|
698
507
|
message: 'should be equal to one of the allowed values',
|
|
699
508
|
params: {
|
|
@@ -735,7 +544,7 @@ test('errorAt filters enum', t => {
|
|
|
735
544
|
};
|
|
736
545
|
const data = { foo: '', bar: '' };
|
|
737
546
|
const v = ajv.compile(schema);
|
|
738
|
-
const errors =
|
|
547
|
+
const errors = validate(v, data);
|
|
739
548
|
|
|
740
549
|
const state: JsonFormsCore = {
|
|
741
550
|
data,
|
|
@@ -766,7 +575,7 @@ test('errorAt filters required', t => {
|
|
|
766
575
|
};
|
|
767
576
|
const data = {};
|
|
768
577
|
const v = ajv.compile(schema);
|
|
769
|
-
const errors =
|
|
578
|
+
const errors = validate(v, data);
|
|
770
579
|
|
|
771
580
|
const state: JsonFormsCore = {
|
|
772
581
|
data,
|
|
@@ -815,7 +624,7 @@ test('errorAt filters required in oneOf object', t => {
|
|
|
815
624
|
};
|
|
816
625
|
const data = { fooOrBar: { } };
|
|
817
626
|
const v = ajv.compile(schema);
|
|
818
|
-
const errors =
|
|
627
|
+
const errors = validate(v, data);
|
|
819
628
|
|
|
820
629
|
const state: JsonFormsCore = {
|
|
821
630
|
data,
|
|
@@ -867,7 +676,7 @@ test('errorAt filters required in anyOf object', t => {
|
|
|
867
676
|
};
|
|
868
677
|
const data = { fooOrBar: { } };
|
|
869
678
|
const v = ajv.compile(schema);
|
|
870
|
-
const errors =
|
|
679
|
+
const errors = validate(v, data);
|
|
871
680
|
|
|
872
681
|
const state: JsonFormsCore = {
|
|
873
682
|
data,
|
|
@@ -915,7 +724,7 @@ test('errorAt filters array minItems', t => {
|
|
|
915
724
|
numbers: []
|
|
916
725
|
};
|
|
917
726
|
const v = ajv.compile(schema);
|
|
918
|
-
const errors =
|
|
727
|
+
const errors = validate(v, data);
|
|
919
728
|
|
|
920
729
|
const state: JsonFormsCore = {
|
|
921
730
|
data,
|
|
@@ -960,7 +769,7 @@ test('errorAt filters array inner value', t => {
|
|
|
960
769
|
numbers: ['Bar']
|
|
961
770
|
};
|
|
962
771
|
const v = ajv.compile(schema);
|
|
963
|
-
const errors =
|
|
772
|
+
const errors = validate(v, data);
|
|
964
773
|
|
|
965
774
|
const state: JsonFormsCore = {
|
|
966
775
|
data,
|
|
@@ -996,7 +805,7 @@ test('errorAt filters oneOf simple', t => {
|
|
|
996
805
|
};
|
|
997
806
|
const data: { coloursOrNumbers: string } = { coloursOrNumbers: 'Foo' };
|
|
998
807
|
const v = ajv.compile(schema);
|
|
999
|
-
const errors =
|
|
808
|
+
const errors = validate(v, data);
|
|
1000
809
|
|
|
1001
810
|
const state: JsonFormsCore = {
|
|
1002
811
|
data,
|
|
@@ -1035,7 +844,7 @@ test('errorAt filters anyOf simple', t => {
|
|
|
1035
844
|
};
|
|
1036
845
|
const data: { coloursOrNumbers: string } = { coloursOrNumbers: 'Foo' };
|
|
1037
846
|
const v = ajv.compile(schema);
|
|
1038
|
-
const errors =
|
|
847
|
+
const errors = validate(v, data);
|
|
1039
848
|
|
|
1040
849
|
const state: JsonFormsCore = {
|
|
1041
850
|
data,
|
|
@@ -1089,7 +898,7 @@ test('errorAt filters oneOf objects', t => {
|
|
|
1089
898
|
};
|
|
1090
899
|
const data = { coloursOrNumbers: { colour: 'Foo' } };
|
|
1091
900
|
const v = ajv.compile(schema);
|
|
1092
|
-
const errors =
|
|
901
|
+
const errors = validate(v, data);
|
|
1093
902
|
|
|
1094
903
|
const state: JsonFormsCore = {
|
|
1095
904
|
data,
|
|
@@ -1141,7 +950,7 @@ test('errorAt filters oneOf objects same properties', t => {
|
|
|
1141
950
|
};
|
|
1142
951
|
const data = { coloursOrNumbers: { colourOrNumber: 'Foo' } };
|
|
1143
952
|
const v = ajv.compile(schema);
|
|
1144
|
-
const errors =
|
|
953
|
+
const errors = validate(v, data);
|
|
1145
954
|
|
|
1146
955
|
const state: JsonFormsCore = {
|
|
1147
956
|
data,
|
|
@@ -1190,7 +999,7 @@ test('errorAt filters oneOf array', t => {
|
|
|
1190
999
|
};
|
|
1191
1000
|
const data: { coloursOrNumbers: string[] } = { coloursOrNumbers: [] };
|
|
1192
1001
|
const v = ajv.compile(schema);
|
|
1193
|
-
const errors =
|
|
1002
|
+
const errors = validate(v, data);
|
|
1194
1003
|
|
|
1195
1004
|
const state: JsonFormsCore = {
|
|
1196
1005
|
data,
|
|
@@ -1239,7 +1048,7 @@ test('errorAt filters oneOf array inner', t => {
|
|
|
1239
1048
|
};
|
|
1240
1049
|
const data: { coloursOrNumbers: string[] } = { coloursOrNumbers: ['Foo'] };
|
|
1241
1050
|
const v = ajv.compile(schema);
|
|
1242
|
-
const errors =
|
|
1051
|
+
const errors = validate(v, data);
|
|
1243
1052
|
|
|
1244
1053
|
const state: JsonFormsCore = {
|
|
1245
1054
|
data,
|
|
@@ -1286,7 +1095,7 @@ test('subErrorsAt filters array inner', t => {
|
|
|
1286
1095
|
numbers: ['Bar']
|
|
1287
1096
|
};
|
|
1288
1097
|
const v = ajv.compile(schema);
|
|
1289
|
-
const errors =
|
|
1098
|
+
const errors = validate(v, data);
|
|
1290
1099
|
|
|
1291
1100
|
const state: JsonFormsCore = {
|
|
1292
1101
|
data,
|
|
@@ -1335,7 +1144,7 @@ test('subErrorsAt filters oneOf array inner', t => {
|
|
|
1335
1144
|
};
|
|
1336
1145
|
const data: { coloursOrNumbers: string[] } = { coloursOrNumbers: ['Foo'] };
|
|
1337
1146
|
const v = ajv.compile(schema);
|
|
1338
|
-
const errors =
|
|
1147
|
+
const errors = validate(v, data);
|
|
1339
1148
|
|
|
1340
1149
|
const state: JsonFormsCore = {
|
|
1341
1150
|
data,
|
|
@@ -1621,7 +1430,6 @@ test('core reducer - update core - unchanged state properties should be unchange
|
|
|
1621
1430
|
t.true(before.schema === afterDataUpdate.schema);
|
|
1622
1431
|
t.true(before.ajv === afterDataUpdate.ajv);
|
|
1623
1432
|
t.true(before.errors === afterDataUpdate.errors);
|
|
1624
|
-
t.true(before.refParserOptions === afterDataUpdate.refParserOptions);
|
|
1625
1433
|
t.true(before.uischema === afterDataUpdate.uischema);
|
|
1626
1434
|
t.true(before.validationMode === afterDataUpdate.validationMode);
|
|
1627
1435
|
t.true(before.validator === afterDataUpdate.validator);
|
package/test/util/cell.test.ts
CHANGED
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
defaultMapDispatchToControlProps,
|
|
31
31
|
defaultMapStateToEnumCellProps,
|
|
32
32
|
DispatchPropsOfCell,
|
|
33
|
-
mapStateToCellProps
|
|
33
|
+
mapStateToCellProps, mapStateToOneOfEnumCellProps, oneOfToEnumOptionMapper
|
|
34
34
|
} from '../../src/util';
|
|
35
35
|
import { UPDATE_DATA, UpdateAction } from '../../src/actions';
|
|
36
36
|
import configureStore from 'redux-mock-store';
|
|
@@ -284,7 +284,38 @@ test('mapStateToEnumCellProps - set default options for dropdown list', t => {
|
|
|
284
284
|
};
|
|
285
285
|
|
|
286
286
|
const props = defaultMapStateToEnumCellProps(createState(uischema), ownProps);
|
|
287
|
-
t.deepEqual(
|
|
287
|
+
t.deepEqual(
|
|
288
|
+
props.options,
|
|
289
|
+
['DE', 'IT', 'JP', 'US', 'RU', 'Other'].map(e => enumToEnumOptionMapper(e))
|
|
290
|
+
);
|
|
291
|
+
t.is(props.data, undefined);
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
test('mapStateToOneOfEnumCellProps - set one of options for dropdown list', t => {
|
|
296
|
+
const uischema: ControlElement = {
|
|
297
|
+
type: 'Control',
|
|
298
|
+
scope: '#/properties/country'
|
|
299
|
+
};
|
|
300
|
+
const ownProps = {
|
|
301
|
+
schema: {
|
|
302
|
+
oneOf: [
|
|
303
|
+
{
|
|
304
|
+
const: 'AU',
|
|
305
|
+
title: 'Australia'
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
const: 'NZ',
|
|
309
|
+
title: 'New Zealand'
|
|
310
|
+
}
|
|
311
|
+
]
|
|
312
|
+
},
|
|
313
|
+
uischema,
|
|
314
|
+
path: 'country'
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
const props = mapStateToOneOfEnumCellProps(createState(uischema), ownProps);
|
|
318
|
+
t.deepEqual(props.options, [{title: 'Australia' , const: 'AU', }, { title: 'New Zealand', const: 'NZ' }].map(schema => oneOfToEnumOptionMapper(schema)));
|
|
288
319
|
t.is(props.data, undefined);
|
|
289
320
|
});
|
|
290
321
|
|