@jsonforms/material-renderers 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/classes/combinatorproperties.html +2 -5
- package/docs/classes/materialanyofstringorenumcontrol.html +6 -9
- package/docs/classes/materialtablecontrol.html +4 -7
- package/docs/globals.html +986 -274
- package/docs/index.html +78 -51
- package/docs/interfaces/ajvprops.html +1 -4
- package/docs/interfaces/arraylayouttoolbarprops.html +0 -3
- package/docs/interfaces/categorizationstate.html +0 -3
- package/docs/interfaces/categorizationstepperstate.html +0 -3
- package/docs/interfaces/combinatorpropertiesprops.html +0 -3
- package/docs/interfaces/deletedialogprops.html +0 -3
- package/docs/interfaces/dispatchpropsofexpandpanel.html +3 -6
- package/docs/interfaces/emptytableprops.html +0 -3
- package/docs/interfaces/expandpanelprops.html +19 -22
- package/docs/interfaces/jsonformstheme.html +0 -3
- package/docs/interfaces/materialcategorizationlayoutrendererprops.html +7 -10
- package/docs/interfaces/materialcategorizationstepperlayoutrendererprops.html +7 -10
- package/docs/interfaces/materiallayoutrendererprops.html +0 -3
- package/docs/interfaces/materialtabletoolbarprops.html +10 -13
- package/docs/interfaces/muitextinputprops.html +2 -5
- package/docs/interfaces/nonemptycellcomponentprops.html +266 -0
- package/docs/interfaces/nonemptycellprops.html +0 -3
- package/docs/interfaces/nonemptyrowprops.html +80 -27
- package/docs/interfaces/ownoneofprops.html +0 -3
- package/docs/interfaces/ownpropsofexpandpanel.html +14 -17
- package/docs/interfaces/ownpropsofnonemptycell.html +0 -3
- package/docs/interfaces/statepropsofexpandpanel.html +16 -19
- package/docs/interfaces/tableheadercellprops.html +0 -3
- package/docs/interfaces/tablerowsprop.html +9 -12
- package/docs/interfaces/validationprops.html +0 -3
- package/docs/interfaces/withdeletedialogsupport.html +0 -3
- package/docs/interfaces/withinput.html +1 -4
- package/docs/interfaces/withoptionlabel.html +3 -6
- package/lib/additional/ListWithDetailMasterItem.d.ts +1 -1
- package/lib/additional/ListWithDetailMasterItem.js.map +1 -1
- package/lib/additional/MaterialLabelRenderer.d.ts +1 -1
- package/lib/additional/MaterialLabelRenderer.js +3 -1
- package/lib/additional/MaterialLabelRenderer.js.map +1 -1
- package/lib/additional/MaterialListWithDetailRenderer.d.ts +1 -1
- package/lib/additional/MaterialListWithDetailRenderer.js +5 -3
- package/lib/additional/MaterialListWithDetailRenderer.js.map +1 -1
- package/lib/additional/index.js +3 -2
- package/lib/additional/index.js.map +1 -1
- package/lib/cells/CustomizableCells.d.ts +1 -0
- package/lib/cells/CustomizableCells.js +11 -8
- package/lib/cells/CustomizableCells.js.map +1 -1
- package/lib/cells/MaterialBooleanCell.d.ts +1 -1
- package/lib/cells/MaterialBooleanCell.js +3 -1
- package/lib/cells/MaterialBooleanCell.js.map +1 -1
- package/lib/cells/MaterialBooleanToggleCell.d.ts +1 -1
- package/lib/cells/MaterialBooleanToggleCell.js +3 -1
- package/lib/cells/MaterialBooleanToggleCell.js.map +1 -1
- package/lib/cells/MaterialDateCell.d.ts +1 -1
- package/lib/cells/MaterialDateCell.js +3 -1
- package/lib/cells/MaterialDateCell.js.map +1 -1
- package/lib/cells/MaterialEnumCell.d.ts +1 -1
- package/lib/cells/MaterialEnumCell.js +3 -1
- package/lib/cells/MaterialEnumCell.js.map +1 -1
- package/lib/cells/MaterialIntegerCell.d.ts +1 -1
- package/lib/cells/MaterialIntegerCell.js +3 -1
- package/lib/cells/MaterialIntegerCell.js.map +1 -1
- package/lib/cells/MaterialNumberCell.d.ts +1 -1
- package/lib/cells/MaterialNumberCell.js +3 -1
- package/lib/cells/MaterialNumberCell.js.map +1 -1
- package/lib/cells/MaterialNumberFormatCell.d.ts +1 -1
- package/lib/cells/MaterialNumberFormatCell.js +3 -1
- package/lib/cells/MaterialNumberFormatCell.js.map +1 -1
- package/lib/cells/MaterialOneOfEnumCell.d.ts +10 -0
- package/lib/cells/MaterialOneOfEnumCell.js +41 -0
- package/lib/cells/MaterialOneOfEnumCell.js.map +1 -0
- package/lib/cells/MaterialTextCell.d.ts +1 -1
- package/lib/cells/MaterialTextCell.js +3 -1
- package/lib/cells/MaterialTextCell.js.map +1 -1
- package/lib/cells/MaterialTimeCell.d.ts +1 -1
- package/lib/cells/MaterialTimeCell.js +3 -1
- package/lib/cells/MaterialTimeCell.js.map +1 -1
- package/lib/cells/index.d.ts +2 -1
- package/lib/cells/index.js +13 -9
- package/lib/cells/index.js.map +1 -1
- package/lib/complex/CombinatorProperties.js +4 -2
- package/lib/complex/CombinatorProperties.js.map +1 -1
- package/lib/complex/DeleteDialog.js +1 -0
- package/lib/complex/DeleteDialog.js.map +1 -1
- package/lib/complex/MaterialAllOfRenderer.d.ts +3 -2
- package/lib/complex/MaterialAllOfRenderer.js +5 -3
- package/lib/complex/MaterialAllOfRenderer.js.map +1 -1
- package/lib/complex/MaterialAnyOfRenderer.d.ts +3 -2
- package/lib/complex/MaterialAnyOfRenderer.js +4 -2
- package/lib/complex/MaterialAnyOfRenderer.js.map +1 -1
- package/lib/complex/MaterialArrayControlRenderer.d.ts +1 -1
- package/lib/complex/MaterialArrayControlRenderer.js +3 -1
- package/lib/complex/MaterialArrayControlRenderer.js.map +1 -1
- package/lib/complex/MaterialEnumArrayRenderer.d.ts +2 -2
- package/lib/complex/MaterialEnumArrayRenderer.js +6 -3
- package/lib/complex/MaterialEnumArrayRenderer.js.map +1 -1
- package/lib/complex/MaterialObjectRenderer.d.ts +3 -2
- package/lib/complex/MaterialObjectRenderer.js +5 -3
- package/lib/complex/MaterialObjectRenderer.js.map +1 -1
- package/lib/complex/MaterialOneOfRenderer.d.ts +2 -1
- package/lib/complex/MaterialOneOfRenderer.js +6 -5
- package/lib/complex/MaterialOneOfRenderer.js.map +1 -1
- package/lib/complex/MaterialTableControl.d.ts +16 -1
- package/lib/complex/MaterialTableControl.js +16 -8
- package/lib/complex/MaterialTableControl.js.map +1 -1
- package/lib/complex/NoBorderTableCell.js.map +1 -1
- package/lib/complex/TableToolbar.d.ts +2 -2
- package/lib/complex/TableToolbar.js.map +1 -1
- package/lib/complex/ValidationIcon.d.ts +5 -3
- package/lib/complex/ValidationIcon.js.map +1 -1
- package/lib/complex/index.js +6 -5
- package/lib/complex/index.js.map +1 -1
- package/lib/controls/MaterialAnyOfStringOrEnumControl.d.ts +1 -1
- package/lib/controls/MaterialAnyOfStringOrEnumControl.js +17 -12
- package/lib/controls/MaterialAnyOfStringOrEnumControl.js.map +1 -1
- package/lib/controls/MaterialBooleanControl.d.ts +1 -1
- package/lib/controls/MaterialBooleanControl.js +3 -1
- package/lib/controls/MaterialBooleanControl.js.map +1 -1
- package/lib/controls/MaterialBooleanToggleControl.d.ts +1 -1
- package/lib/controls/MaterialBooleanToggleControl.js +3 -1
- package/lib/controls/MaterialBooleanToggleControl.js.map +1 -1
- package/lib/controls/MaterialDateControl.d.ts +3 -15
- package/lib/controls/MaterialDateControl.js +27 -45
- package/lib/controls/MaterialDateControl.js.map +1 -1
- package/lib/controls/MaterialDateTimeControl.d.ts +3 -6
- package/lib/controls/MaterialDateTimeControl.js +27 -24
- package/lib/controls/MaterialDateTimeControl.js.map +1 -1
- package/lib/controls/MaterialEnumControl.d.ts +1 -1
- package/lib/controls/MaterialEnumControl.js +3 -1
- package/lib/controls/MaterialEnumControl.js.map +1 -1
- package/lib/controls/MaterialInputControl.d.ts +2 -5
- package/lib/controls/MaterialInputControl.js +23 -28
- package/lib/controls/MaterialInputControl.js.map +1 -1
- package/lib/controls/MaterialIntegerControl.d.ts +1 -1
- package/lib/controls/MaterialIntegerControl.js +3 -1
- package/lib/controls/MaterialIntegerControl.js.map +1 -1
- package/lib/controls/MaterialNativeControl.d.ts +3 -6
- package/lib/controls/MaterialNativeControl.js +15 -18
- package/lib/controls/MaterialNativeControl.js.map +1 -1
- package/lib/controls/MaterialNumberControl.d.ts +1 -1
- package/lib/controls/MaterialNumberControl.js +3 -1
- package/lib/controls/MaterialNumberControl.js.map +1 -1
- package/lib/controls/MaterialOneOfEnumControl.d.ts +1 -1
- package/lib/controls/MaterialOneOfEnumControl.js +3 -1
- package/lib/controls/MaterialOneOfEnumControl.js.map +1 -1
- package/lib/controls/MaterialOneOfRadioGroupControl.d.ts +1 -1
- package/lib/controls/MaterialOneOfRadioGroupControl.js +3 -1
- package/lib/controls/MaterialOneOfRadioGroupControl.js.map +1 -1
- package/lib/controls/MaterialRadioGroup.d.ts +2 -5
- package/lib/controls/MaterialRadioGroup.js +15 -20
- package/lib/controls/MaterialRadioGroup.js.map +1 -1
- package/lib/controls/MaterialRadioGroupControl.d.ts +1 -1
- package/lib/controls/MaterialRadioGroupControl.js +3 -1
- package/lib/controls/MaterialRadioGroupControl.js.map +1 -1
- package/lib/controls/MaterialSliderControl.d.ts +3 -6
- package/lib/controls/MaterialSliderControl.js +35 -39
- package/lib/controls/MaterialSliderControl.js.map +1 -1
- package/lib/controls/MaterialTextControl.d.ts +1 -1
- package/lib/controls/MaterialTextControl.js +3 -1
- package/lib/controls/MaterialTextControl.js.map +1 -1
- package/lib/controls/MaterialTimeControl.d.ts +6 -0
- package/lib/controls/MaterialTimeControl.js +62 -0
- package/lib/controls/MaterialTimeControl.js.map +1 -0
- package/lib/controls/index.d.ts +11 -9
- package/lib/controls/index.js +19 -14
- package/lib/controls/index.js.map +1 -1
- package/lib/extended/MaterialAutocompleteEnumControl.d.ts +1 -1
- package/lib/extended/MaterialAutocompleteEnumControl.js +3 -1
- package/lib/extended/MaterialAutocompleteEnumControl.js.map +1 -1
- package/lib/extended/MaterialAutocompleteOneOfEnumControl.d.ts +1 -1
- package/lib/extended/MaterialAutocompleteOneOfEnumControl.js +3 -1
- package/lib/extended/MaterialAutocompleteOneOfEnumControl.js.map +1 -1
- package/lib/extended/MuiAutocomplete.d.ts +2 -2
- package/lib/extended/MuiAutocomplete.js +4 -3
- package/lib/extended/MuiAutocomplete.js.map +1 -1
- package/lib/extended/index.d.ts +2 -2
- package/lib/extended/index.js +2 -1
- package/lib/extended/index.js.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/jsonforms-material.js +9 -281
- package/lib/jsonforms-material.js.map +1 -1
- package/lib/layouts/ArrayToolbar.js +1 -0
- package/lib/layouts/ArrayToolbar.js.map +1 -1
- package/lib/layouts/ExpandPanelRenderer.d.ts +2 -3
- package/lib/layouts/ExpandPanelRenderer.js +29 -22
- package/lib/layouts/ExpandPanelRenderer.js.map +1 -1
- package/lib/layouts/MaterialArrayLayout.d.ts +1 -11
- package/lib/layouts/MaterialArrayLayout.js +19 -31
- package/lib/layouts/MaterialArrayLayout.js.map +1 -1
- package/lib/layouts/MaterialArrayLayoutRenderer.d.ts +1 -1
- package/lib/layouts/MaterialArrayLayoutRenderer.js +3 -1
- package/lib/layouts/MaterialArrayLayoutRenderer.js.map +1 -1
- package/lib/layouts/MaterialCategorizationLayout.d.ts +2 -10
- package/lib/layouts/MaterialCategorizationLayout.js +31 -47
- package/lib/layouts/MaterialCategorizationLayout.js.map +1 -1
- package/lib/layouts/MaterialCategorizationStepperLayout.d.ts +2 -9
- package/lib/layouts/MaterialCategorizationStepperLayout.js +42 -53
- package/lib/layouts/MaterialCategorizationStepperLayout.js.map +1 -1
- package/lib/layouts/MaterialGroupLayout.d.ts +1 -1
- package/lib/layouts/MaterialGroupLayout.js +3 -1
- package/lib/layouts/MaterialGroupLayout.js.map +1 -1
- package/lib/layouts/MaterialHorizontalLayout.d.ts +1 -1
- package/lib/layouts/MaterialHorizontalLayout.js +3 -1
- package/lib/layouts/MaterialHorizontalLayout.js.map +1 -1
- package/lib/layouts/MaterialVerticalLayout.d.ts +1 -1
- package/lib/layouts/MaterialVerticalLayout.js +3 -1
- package/lib/layouts/MaterialVerticalLayout.js.map +1 -1
- package/lib/layouts/index.js +6 -5
- package/lib/layouts/index.js.map +1 -1
- package/lib/mui-controls/MuiCheckbox.js +2 -2
- package/lib/mui-controls/MuiCheckbox.js.map +1 -1
- package/lib/mui-controls/MuiInputInteger.js +9 -6
- package/lib/mui-controls/MuiInputInteger.js.map +1 -1
- package/lib/mui-controls/MuiInputNumber.js +9 -6
- package/lib/mui-controls/MuiInputNumber.js.map +1 -1
- package/lib/mui-controls/MuiInputNumberFormat.js +7 -8
- package/lib/mui-controls/MuiInputNumberFormat.js.map +1 -1
- package/lib/mui-controls/MuiInputText.js +11 -7
- package/lib/mui-controls/MuiInputText.js.map +1 -1
- package/lib/mui-controls/MuiInputTime.js +5 -3
- package/lib/mui-controls/MuiInputTime.js.map +1 -1
- package/lib/mui-controls/MuiSelect.js +3 -3
- package/lib/mui-controls/MuiSelect.js.map +1 -1
- package/lib/mui-controls/MuiToggle.js +2 -2
- package/lib/mui-controls/MuiToggle.js.map +1 -1
- package/lib/util/datejs.d.ts +3 -0
- package/lib/util/datejs.js +29 -0
- package/lib/util/datejs.js.map +1 -0
- package/lib/util/debounce.d.ts +1 -0
- package/lib/util/debounce.js +48 -0
- package/lib/util/debounce.js.map +1 -0
- package/lib/util/focus.d.ts +1 -0
- package/lib/util/focus.js +36 -0
- package/lib/util/focus.js.map +1 -0
- package/lib/util/index.d.ts +3 -0
- package/lib/util/index.js +4 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/layout.d.ts +2 -1
- package/lib/util/layout.js +9 -5
- package/lib/util/layout.js.map +1 -1
- package/package.json +12 -13
- package/src/additional/MaterialListWithDetailRenderer.tsx +3 -4
- package/src/cells/CustomizableCells.ts +1 -0
- package/src/cells/MaterialOneOfEnumCell.tsx +46 -0
- package/src/cells/MaterialTimeCell.tsx +1 -0
- package/src/cells/index.ts +5 -0
- package/src/complex/CombinatorProperties.tsx +2 -2
- package/src/complex/MaterialAllOfRenderer.tsx +5 -4
- package/src/complex/MaterialAnyOfRenderer.tsx +4 -3
- package/src/complex/MaterialEnumArrayRenderer.tsx +1 -0
- package/src/complex/MaterialObjectRenderer.tsx +5 -5
- package/src/complex/MaterialOneOfRenderer.tsx +8 -8
- package/src/complex/MaterialTableControl.tsx +36 -24
- package/src/complex/TableToolbar.tsx +1 -2
- package/src/controls/MaterialAnyOfStringOrEnumControl.tsx +16 -12
- package/src/controls/MaterialDateControl.tsx +82 -113
- package/src/controls/MaterialDateTimeControl.tsx +88 -70
- package/src/controls/MaterialInputControl.tsx +62 -70
- package/src/controls/MaterialNativeControl.tsx +54 -58
- package/src/controls/MaterialRadioGroup.tsx +67 -70
- package/src/controls/MaterialSliderControl.tsx +92 -88
- package/src/controls/MaterialTimeControl.tsx +128 -0
- package/src/controls/index.ts +7 -0
- package/src/extended/MuiAutocomplete.tsx +2 -3
- package/src/index.ts +6 -0
- package/src/layouts/ExpandPanelRenderer.tsx +32 -32
- package/src/layouts/MaterialArrayLayout.tsx +73 -83
- package/src/layouts/MaterialCategorizationLayout.tsx +49 -65
- package/src/layouts/MaterialCategorizationStepperLayout.tsx +79 -87
- package/src/mui-controls/MuiCheckbox.tsx +1 -2
- package/src/mui-controls/MuiInputInteger.tsx +12 -9
- package/src/mui-controls/MuiInputNumber.tsx +9 -6
- package/src/mui-controls/MuiInputNumberFormat.tsx +8 -11
- package/src/mui-controls/MuiInputText.tsx +17 -15
- package/src/mui-controls/MuiInputTime.tsx +6 -4
- package/src/mui-controls/MuiSelect.tsx +2 -3
- package/src/mui-controls/MuiToggle.tsx +1 -2
- package/src/util/datejs.ts +32 -0
- package/src/util/debounce.ts +43 -0
- package/src/util/focus.ts +32 -0
- package/src/util/index.ts +3 -0
- package/src/util/layout.tsx +6 -7
- package/test/renderers/MaterialAnyOfRenderer.test.tsx +14 -8
- package/test/renderers/MaterialArrayLayout.test.tsx +8 -8
- package/test/renderers/MaterialBooleanToggleControl.test.tsx +0 -1
- package/test/renderers/MaterialCategorizationLayout.test.tsx +73 -0
- package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +73 -0
- package/test/renderers/MaterialDateControl.test.tsx +42 -0
- package/test/renderers/MaterialDateTimeControl.test.tsx +54 -11
- package/test/renderers/MaterialInputControl.test.tsx +3 -3
- package/test/renderers/MaterialIntegerCell.test.tsx +41 -20
- package/test/renderers/MaterialNumberCell.test.tsx +45 -24
- package/test/renderers/MaterialOneOfEnumCell.test.tsx +93 -0
- package/test/renderers/MaterialOneOfRenderer.test.tsx +10 -7
- package/test/renderers/MaterialTextCell.test.tsx +41 -20
- package/test/renderers/MaterialTimeCell.test.tsx +41 -20
- package/test/renderers/MaterialTimeControl.test.tsx +378 -0
- package/docs/classes/materialarraylayout.html +0 -777
- package/docs/classes/materialcategorizationlayoutrenderer.html +0 -786
- package/docs/classes/materialcategorizationstepperlayoutrenderer.html +0 -762
- package/docs/classes/materialdatecontrol.html +0 -825
- package/docs/classes/materialdatetimecontrol.html +0 -825
- package/docs/classes/materialinputcontrol.html +0 -825
- package/docs/classes/materialnativecontrol.html +0 -825
- package/docs/classes/materialradiogroup.html +0 -825
- package/docs/classes/materialslidercontrol.html +0 -825
- package/docs/interfaces/datecontrol.html +0 -157
- package/docs/interfaces/materialarraylayoutstate.html +0 -157
- package/docs/interfaces/statepropsofdatecontrol.html +0 -468
|
@@ -217,7 +217,7 @@ describe('Material number cells', () => {
|
|
|
217
217
|
expect(input.props().value).toBe(0);
|
|
218
218
|
});
|
|
219
219
|
|
|
220
|
-
it('should update via input event', () => {
|
|
220
|
+
it('should update via input event', (done) => {
|
|
221
221
|
const core = initCore(schema, uischema, data);
|
|
222
222
|
const onChangeData: any = {
|
|
223
223
|
data: undefined
|
|
@@ -234,10 +234,13 @@ describe('Material number cells', () => {
|
|
|
234
234
|
);
|
|
235
235
|
const input = wrapper.find('input');
|
|
236
236
|
input.simulate('change', { target: { value: 2.72 } });
|
|
237
|
-
|
|
237
|
+
setTimeout(() => {
|
|
238
|
+
expect(onChangeData.data.foo).toBe(2.72);
|
|
239
|
+
done();
|
|
240
|
+
}, 1000);
|
|
238
241
|
});
|
|
239
242
|
|
|
240
|
-
it('should update via action', () => {
|
|
243
|
+
it('should update via action', (done) => {
|
|
241
244
|
const core = initCore(schema, uischema, { foo: 2.72 });
|
|
242
245
|
wrapper = mount(
|
|
243
246
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -251,15 +254,18 @@ describe('Material number cells', () => {
|
|
|
251
254
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
252
255
|
wrapper.update();
|
|
253
256
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
257
|
+
setTimeout(() => {
|
|
258
|
+
expect(
|
|
259
|
+
wrapper
|
|
260
|
+
.find('input')
|
|
261
|
+
.first()
|
|
262
|
+
.props().value
|
|
263
|
+
).toBe(3.14);
|
|
264
|
+
done();
|
|
265
|
+
}, 1000);
|
|
260
266
|
});
|
|
261
267
|
|
|
262
|
-
it('should update with undefined value', () => {
|
|
268
|
+
it('should update with undefined value', (done) => {
|
|
263
269
|
const core = initCore(schema, uischema, data);
|
|
264
270
|
wrapper = mount(
|
|
265
271
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -269,11 +275,14 @@ describe('Material number cells', () => {
|
|
|
269
275
|
core.data = { ...core.data, foo: undefined };
|
|
270
276
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
271
277
|
wrapper.update();
|
|
272
|
-
|
|
273
|
-
|
|
278
|
+
setTimeout(() => {
|
|
279
|
+
const input = wrapper.find('input').first();
|
|
280
|
+
expect(input.props().value).toBe('');
|
|
281
|
+
done();
|
|
282
|
+
}, 1000);
|
|
274
283
|
});
|
|
275
284
|
|
|
276
|
-
it('should not update with null value', () => {
|
|
285
|
+
it('should not update with null value', (done) => {
|
|
277
286
|
const core = initCore(schema, uischema, data);
|
|
278
287
|
wrapper = mount(
|
|
279
288
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -283,11 +292,14 @@ describe('Material number cells', () => {
|
|
|
283
292
|
core.data = { ...core.data, foo: null };
|
|
284
293
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
285
294
|
wrapper.update();
|
|
286
|
-
|
|
287
|
-
|
|
295
|
+
setTimeout(() => {
|
|
296
|
+
const input = wrapper.find('input').first();
|
|
297
|
+
expect(input.props().value).toBe('');
|
|
298
|
+
done();
|
|
299
|
+
}, 1000);
|
|
288
300
|
});
|
|
289
301
|
|
|
290
|
-
it('should not update with wrong ref', () => {
|
|
302
|
+
it('should not update with wrong ref', (done) => {
|
|
291
303
|
const core = initCore(schema, uischema, data);
|
|
292
304
|
wrapper = mount(
|
|
293
305
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -297,11 +309,14 @@ describe('Material number cells', () => {
|
|
|
297
309
|
core.data = { ...core.data, bar: 11 };
|
|
298
310
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
299
311
|
wrapper.update();
|
|
300
|
-
|
|
301
|
-
|
|
312
|
+
setTimeout(() => {
|
|
313
|
+
const input = wrapper.find('input').first();
|
|
314
|
+
expect(input.props().value).toBe(3.14);
|
|
315
|
+
done();
|
|
316
|
+
}, 1000);
|
|
302
317
|
});
|
|
303
318
|
|
|
304
|
-
it('should not update with null ref', () => {
|
|
319
|
+
it('should not update with null ref', (done) => {
|
|
305
320
|
const core = initCore(schema, uischema, data);
|
|
306
321
|
wrapper = mount(
|
|
307
322
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -311,11 +326,14 @@ describe('Material number cells', () => {
|
|
|
311
326
|
core.data = { ...core.data, null: 2.72 };
|
|
312
327
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
313
328
|
wrapper.update();
|
|
314
|
-
|
|
315
|
-
|
|
329
|
+
setTimeout(() => {
|
|
330
|
+
const input = wrapper.find('input').first();
|
|
331
|
+
expect(input.props().value).toBe(3.14);
|
|
332
|
+
done();
|
|
333
|
+
}, 1000);
|
|
316
334
|
});
|
|
317
335
|
|
|
318
|
-
it('should not update with undefined ref', () => {
|
|
336
|
+
it('should not update with undefined ref', (done) => {
|
|
319
337
|
const core = initCore(schema, uischema, data);
|
|
320
338
|
wrapper = mount(
|
|
321
339
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -325,8 +343,11 @@ describe('Material number cells', () => {
|
|
|
325
343
|
core.data = { ...core.data, undefined: 13 };
|
|
326
344
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
327
345
|
wrapper.update();
|
|
328
|
-
|
|
329
|
-
|
|
346
|
+
setTimeout(() => {
|
|
347
|
+
const input = wrapper.find('input').first();
|
|
348
|
+
expect(input.props().value).toBe(3.14);
|
|
349
|
+
done();
|
|
350
|
+
}, 1000);
|
|
330
351
|
});
|
|
331
352
|
|
|
332
353
|
it('can be disabled', () => {
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
The MIT License
|
|
3
|
+
|
|
4
|
+
Copyright (c) 2017-2019 EclipseSource Munich
|
|
5
|
+
https://github.com/eclipsesource/jsonforms
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in
|
|
15
|
+
all copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
+
THE SOFTWARE.
|
|
24
|
+
*/
|
|
25
|
+
import './MatchMediaMock';
|
|
26
|
+
import * as React from 'react';
|
|
27
|
+
import {
|
|
28
|
+
ControlElement
|
|
29
|
+
} from '@jsonforms/core';
|
|
30
|
+
import MaterialOneOfEnumCell, {
|
|
31
|
+
materialOneOfEnumCellTester
|
|
32
|
+
} from '../../src/cells/MaterialOneOfEnumCell';
|
|
33
|
+
import { materialRenderers } from '../../src';
|
|
34
|
+
|
|
35
|
+
import Enzyme, { mount } from 'enzyme';
|
|
36
|
+
import Adapter from 'enzyme-adapter-react-16';
|
|
37
|
+
import { JsonFormsStateProvider } from '@jsonforms/react';
|
|
38
|
+
import { initCore } from './util';
|
|
39
|
+
|
|
40
|
+
Enzyme.configure({ adapter: new Adapter() });
|
|
41
|
+
|
|
42
|
+
const data = { country: 'AU' };
|
|
43
|
+
const schema = {
|
|
44
|
+
type: 'string',
|
|
45
|
+
oneOf: [
|
|
46
|
+
{
|
|
47
|
+
const: 'AU',
|
|
48
|
+
title: 'Australia'
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
const: 'NZ',
|
|
52
|
+
title: 'New Zealand'
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
};
|
|
56
|
+
const uischema: ControlElement = {
|
|
57
|
+
type: 'Control',
|
|
58
|
+
scope: '#/properties/country'
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
describe('Material one of enum cell tester', () => {
|
|
62
|
+
it('should succeed with matching prop type', () => {
|
|
63
|
+
const control: ControlElement = {
|
|
64
|
+
type: 'Control',
|
|
65
|
+
scope: '#/properties/country'
|
|
66
|
+
};
|
|
67
|
+
expect(
|
|
68
|
+
materialOneOfEnumCellTester(control, {
|
|
69
|
+
type: 'object',
|
|
70
|
+
properties: {
|
|
71
|
+
country: schema
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
).toBe(2);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
describe('Material enum cell', () => {
|
|
79
|
+
it('should select an item from dropdown list', () => {
|
|
80
|
+
const core = initCore(schema, uischema, data);
|
|
81
|
+
const wrapper = mount(
|
|
82
|
+
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
83
|
+
<MaterialOneOfEnumCell
|
|
84
|
+
schema={schema}
|
|
85
|
+
uischema={uischema}
|
|
86
|
+
path='country'
|
|
87
|
+
/>
|
|
88
|
+
</JsonFormsStateProvider>
|
|
89
|
+
);
|
|
90
|
+
const input = wrapper.find('input');
|
|
91
|
+
expect(input.props().value).toBe('AU');
|
|
92
|
+
});
|
|
93
|
+
});
|
|
@@ -256,7 +256,7 @@ describe('Material oneOf renderer', () => {
|
|
|
256
256
|
expect(secondTab.props().selected).toBeTruthy();
|
|
257
257
|
});
|
|
258
258
|
|
|
259
|
-
it('should add an item at correct path', () => {
|
|
259
|
+
it('should add an item at correct path', (done) => {
|
|
260
260
|
const schema = {
|
|
261
261
|
type: 'object',
|
|
262
262
|
properties: {
|
|
@@ -298,12 +298,15 @@ describe('Material oneOf renderer', () => {
|
|
|
298
298
|
const input = wrapper.find('input').first();
|
|
299
299
|
input.simulate('change', { target: { value: 'test' } });
|
|
300
300
|
wrapper.update();
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
301
|
+
setTimeout(() => {
|
|
302
|
+
expect(onChangeData.data).toEqual({
|
|
303
|
+
value: 'test'
|
|
304
|
+
});
|
|
305
|
+
done();
|
|
306
|
+
}, 1000);
|
|
304
307
|
});
|
|
305
308
|
|
|
306
|
-
it('should add an item within an array', async () => {
|
|
309
|
+
it.skip('should add an item within an array', async () => {
|
|
307
310
|
const schema = {
|
|
308
311
|
type: 'object',
|
|
309
312
|
properties: {
|
|
@@ -360,7 +363,7 @@ describe('Material oneOf renderer', () => {
|
|
|
360
363
|
expect(nrOfRowsAfterAdd.length).toBe(3);
|
|
361
364
|
});
|
|
362
365
|
|
|
363
|
-
it('should add an object within an array', async () => {
|
|
366
|
+
it.skip('should add an object within an array', async () => {
|
|
364
367
|
const schema = {
|
|
365
368
|
type: 'object',
|
|
366
369
|
properties: {
|
|
@@ -435,7 +438,7 @@ describe('Material oneOf renderer', () => {
|
|
|
435
438
|
});
|
|
436
439
|
});
|
|
437
440
|
|
|
438
|
-
it('should switch to array based oneOf subschema, then switch back, then edit', async () => {
|
|
441
|
+
it.skip('should switch to array based oneOf subschema, then switch back, then edit', async () => {
|
|
439
442
|
const schema = {
|
|
440
443
|
type: 'object',
|
|
441
444
|
properties: {
|
|
@@ -196,7 +196,7 @@ describe('Material text cell', () => {
|
|
|
196
196
|
expect(input.props().value).toBe('Foo');
|
|
197
197
|
});
|
|
198
198
|
|
|
199
|
-
it('should update via input event', () => {
|
|
199
|
+
it('should update via input event', (done) => {
|
|
200
200
|
const core = initCore(minLengthSchema, uischema, data);
|
|
201
201
|
const onChangeData: any = {
|
|
202
202
|
data: undefined
|
|
@@ -214,10 +214,13 @@ describe('Material text cell', () => {
|
|
|
214
214
|
|
|
215
215
|
const input = wrapper.find('input').first();
|
|
216
216
|
input.simulate('change', { target: { value: 'Bar' } });
|
|
217
|
-
|
|
217
|
+
setTimeout(() => {
|
|
218
|
+
expect(onChangeData.data.name).toBe('Bar');
|
|
219
|
+
done();
|
|
220
|
+
}, 1000);
|
|
218
221
|
});
|
|
219
222
|
|
|
220
|
-
it('should update via action', () => {
|
|
223
|
+
it('should update via action', (done) => {
|
|
221
224
|
const core = initCore(minLengthSchema, uischema, data);
|
|
222
225
|
wrapper = mount(
|
|
223
226
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -227,11 +230,14 @@ describe('Material text cell', () => {
|
|
|
227
230
|
core.data = { ...core.data, name: 'Bar' };
|
|
228
231
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
229
232
|
wrapper.update();
|
|
230
|
-
|
|
231
|
-
|
|
233
|
+
setTimeout(() => {
|
|
234
|
+
const input = wrapper.find('input').first();
|
|
235
|
+
expect(input.props().value).toBe('Bar');
|
|
236
|
+
done();
|
|
237
|
+
}, 1000);
|
|
232
238
|
});
|
|
233
239
|
|
|
234
|
-
it('should update with undefined value', () => {
|
|
240
|
+
it('should update with undefined value', (done) => {
|
|
235
241
|
const core = initCore(minLengthSchema, uischema, data);
|
|
236
242
|
wrapper = mount(
|
|
237
243
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -241,11 +247,14 @@ describe('Material text cell', () => {
|
|
|
241
247
|
core.data = { ...core.data, name: undefined };
|
|
242
248
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
243
249
|
wrapper.update();
|
|
244
|
-
|
|
245
|
-
|
|
250
|
+
setTimeout(() => {
|
|
251
|
+
const input = wrapper.find('input').first();
|
|
252
|
+
expect(input.props().value).toBe('');
|
|
253
|
+
done();
|
|
254
|
+
}, 1000);
|
|
246
255
|
});
|
|
247
256
|
|
|
248
|
-
it('should update with null value', () => {
|
|
257
|
+
it('should update with null value', (done) => {
|
|
249
258
|
const core = initCore(minLengthSchema, uischema, data);
|
|
250
259
|
wrapper = mount(
|
|
251
260
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -255,11 +264,14 @@ describe('Material text cell', () => {
|
|
|
255
264
|
core.data = { ...core.data, name: null };
|
|
256
265
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
257
266
|
wrapper.update();
|
|
258
|
-
|
|
259
|
-
|
|
267
|
+
setTimeout(() => {
|
|
268
|
+
const input = wrapper.find('input').first();
|
|
269
|
+
expect(input.props().value).toBe('');
|
|
270
|
+
done();
|
|
271
|
+
}, 1000);
|
|
260
272
|
});
|
|
261
273
|
|
|
262
|
-
it('should not update if wrong ref', () => {
|
|
274
|
+
it('should not update if wrong ref', (done) => {
|
|
263
275
|
const core = initCore(minLengthSchema, uischema, data);
|
|
264
276
|
wrapper = mount(
|
|
265
277
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -269,11 +281,14 @@ describe('Material text cell', () => {
|
|
|
269
281
|
core.data = { ...core.data, firstname: 'Bar' };
|
|
270
282
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
271
283
|
wrapper.update();
|
|
272
|
-
|
|
273
|
-
|
|
284
|
+
setTimeout(() => {
|
|
285
|
+
const input = wrapper.find('input').first();
|
|
286
|
+
expect(input.props().value).toBe('Foo');
|
|
287
|
+
done();
|
|
288
|
+
}, 1000);
|
|
274
289
|
});
|
|
275
290
|
|
|
276
|
-
it('should not update if null ref', () => {
|
|
291
|
+
it('should not update if null ref', (done) => {
|
|
277
292
|
const core = initCore(minLengthSchema, uischema, data);
|
|
278
293
|
wrapper = mount(
|
|
279
294
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -283,11 +298,14 @@ describe('Material text cell', () => {
|
|
|
283
298
|
core.data = { ...core.data, null: 'Bar' };
|
|
284
299
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
285
300
|
wrapper.update();
|
|
286
|
-
|
|
287
|
-
|
|
301
|
+
setTimeout(() => {
|
|
302
|
+
const input = wrapper.find('input').first();
|
|
303
|
+
expect(input.props().value).toBe('Foo');
|
|
304
|
+
done();
|
|
305
|
+
}, 1000);
|
|
288
306
|
});
|
|
289
307
|
|
|
290
|
-
it('should not update if undefined ref', () => {
|
|
308
|
+
it('should not update if undefined ref', (done) => {
|
|
291
309
|
const core = initCore(minLengthSchema, uischema, data);
|
|
292
310
|
wrapper = mount(
|
|
293
311
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -297,8 +315,11 @@ describe('Material text cell', () => {
|
|
|
297
315
|
core.data = { ...core.data, undefined: 'Bar' };
|
|
298
316
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
299
317
|
wrapper.update();
|
|
300
|
-
|
|
301
|
-
|
|
318
|
+
setTimeout(() => {
|
|
319
|
+
const input = wrapper.find('input').first();
|
|
320
|
+
expect(input.props().value).toBe('Foo');
|
|
321
|
+
done();
|
|
322
|
+
}, 1000);
|
|
302
323
|
});
|
|
303
324
|
|
|
304
325
|
it('can be disabled', () => {
|
|
@@ -174,7 +174,7 @@ describe('Material time cell', () => {
|
|
|
174
174
|
expect(input.props().value).toBe('13:37');
|
|
175
175
|
});
|
|
176
176
|
|
|
177
|
-
it('should update via event', () => {
|
|
177
|
+
it('should update via event', (done) => {
|
|
178
178
|
const core = initCore(schema, uischema, data);
|
|
179
179
|
const onChangeData: any = {
|
|
180
180
|
data: undefined
|
|
@@ -191,10 +191,13 @@ describe('Material time cell', () => {
|
|
|
191
191
|
);
|
|
192
192
|
const input = wrapper.find('input').first();
|
|
193
193
|
input.simulate('change', { target: { value: '20:15' } });
|
|
194
|
-
|
|
194
|
+
setTimeout(() => {
|
|
195
|
+
expect(onChangeData.data.foo).toBe('20:15');
|
|
196
|
+
done();
|
|
197
|
+
}, 1000);
|
|
195
198
|
});
|
|
196
199
|
|
|
197
|
-
it('should update via action', () => {
|
|
200
|
+
it('should update via action', (done) => {
|
|
198
201
|
const core = initCore(schema, uischema, data);
|
|
199
202
|
wrapper = mount(
|
|
200
203
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -204,11 +207,14 @@ describe('Material time cell', () => {
|
|
|
204
207
|
core.data = { ...core.data, foo: '20:15' };
|
|
205
208
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
206
209
|
wrapper.update();
|
|
207
|
-
|
|
208
|
-
|
|
210
|
+
setTimeout(() => {
|
|
211
|
+
const input = wrapper.find('input').first();
|
|
212
|
+
expect(input.props().value).toBe('20:15');
|
|
213
|
+
done();
|
|
214
|
+
}, 1000);
|
|
209
215
|
});
|
|
210
216
|
|
|
211
|
-
it('should update with null value', () => {
|
|
217
|
+
it('should update with null value', (done) => {
|
|
212
218
|
const core = initCore(schema, uischema, data);
|
|
213
219
|
wrapper = mount(
|
|
214
220
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -218,11 +224,14 @@ describe('Material time cell', () => {
|
|
|
218
224
|
core.data = { ...core.data, foo: null };
|
|
219
225
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
220
226
|
wrapper.update();
|
|
221
|
-
|
|
222
|
-
|
|
227
|
+
setTimeout(() => {
|
|
228
|
+
const input = wrapper.find('input').first();
|
|
229
|
+
expect(input.props().value).toBe('');
|
|
230
|
+
done();
|
|
231
|
+
}, 1000);
|
|
223
232
|
});
|
|
224
233
|
|
|
225
|
-
it('update with undefined value', () => {
|
|
234
|
+
it('update with undefined value', (done) => {
|
|
226
235
|
const core = initCore(schema, uischema, data);
|
|
227
236
|
wrapper = mount(
|
|
228
237
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -232,11 +241,14 @@ describe('Material time cell', () => {
|
|
|
232
241
|
core.data = { ...core.data, foo: undefined };
|
|
233
242
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
234
243
|
wrapper.update();
|
|
235
|
-
|
|
236
|
-
|
|
244
|
+
setTimeout(() => {
|
|
245
|
+
const input = wrapper.find('input').first();
|
|
246
|
+
expect(input.props().value).toBe('');
|
|
247
|
+
done();
|
|
248
|
+
}, 1000);
|
|
237
249
|
});
|
|
238
250
|
|
|
239
|
-
it('should update with wrong ref', () => {
|
|
251
|
+
it('should update with wrong ref', (done) => {
|
|
240
252
|
const core = initCore(schema, uischema, data);
|
|
241
253
|
wrapper = mount(
|
|
242
254
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -246,11 +258,14 @@ describe('Material time cell', () => {
|
|
|
246
258
|
core.data = { ...core.data, bar: 'Bar' };
|
|
247
259
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
248
260
|
wrapper.update();
|
|
249
|
-
|
|
250
|
-
|
|
261
|
+
setTimeout(() => {
|
|
262
|
+
const input = wrapper.find('input').first();
|
|
263
|
+
expect(input.props().value).toBe('13:37');
|
|
264
|
+
done();
|
|
265
|
+
}, 1000);
|
|
251
266
|
});
|
|
252
267
|
|
|
253
|
-
it('should update with null ref', () => {
|
|
268
|
+
it('should update with null ref', (done) => {
|
|
254
269
|
const core = initCore(schema, uischema, data);
|
|
255
270
|
wrapper = mount(
|
|
256
271
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -260,11 +275,14 @@ describe('Material time cell', () => {
|
|
|
260
275
|
core.data = { ...core.data, null: '20:15' };
|
|
261
276
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
262
277
|
wrapper.update();
|
|
263
|
-
|
|
264
|
-
|
|
278
|
+
setTimeout(() => {
|
|
279
|
+
const input = wrapper.find('input').first();
|
|
280
|
+
expect(input.props().value).toBe('13:37');
|
|
281
|
+
done();
|
|
282
|
+
}, 1000);
|
|
265
283
|
});
|
|
266
284
|
|
|
267
|
-
it('should update with undefined ref', () => {
|
|
285
|
+
it('should update with undefined ref', (done) => {
|
|
268
286
|
const core = initCore(schema, uischema, data);
|
|
269
287
|
wrapper = mount(
|
|
270
288
|
<JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
|
|
@@ -274,8 +292,11 @@ describe('Material time cell', () => {
|
|
|
274
292
|
core.data = { ...core.data, undefined: '20:15' };
|
|
275
293
|
wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
|
|
276
294
|
wrapper.update();
|
|
277
|
-
|
|
278
|
-
|
|
295
|
+
setTimeout(() => {
|
|
296
|
+
const input = wrapper.find('input').first();
|
|
297
|
+
expect(input.props().value).toBe('13:37');
|
|
298
|
+
done();
|
|
299
|
+
}, 1000);
|
|
279
300
|
});
|
|
280
301
|
|
|
281
302
|
it('can be disabled', () => {
|