@onehat/ui 0.3.343 → 0.3.345
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/package.json
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import React, { useState, useEffect, useRef, } from 'react';
|
|
2
1
|
import {
|
|
3
2
|
Row,
|
|
4
|
-
Text,
|
|
5
3
|
Tooltip,
|
|
6
4
|
} from 'native-base';
|
|
7
5
|
import {
|
|
@@ -11,7 +9,6 @@ import {
|
|
|
11
9
|
import UiGlobals from '../../../UiGlobals.js';
|
|
12
10
|
import withComponent from '../../Hoc/withComponent.js';
|
|
13
11
|
import withValue from '../../Hoc/withValue.js';
|
|
14
|
-
import testProps from '../../../Functions/testProps.js';
|
|
15
12
|
import getComponentFromType from '../../../Functions/getComponentFromType.js';
|
|
16
13
|
import _ from 'lodash';
|
|
17
14
|
|
|
@@ -45,6 +42,7 @@ export function JsonElement(props) {
|
|
|
45
42
|
flex={1}
|
|
46
43
|
{...propsToPass}
|
|
47
44
|
justifyContent="flex-start"
|
|
45
|
+
testID={testID}
|
|
48
46
|
>
|
|
49
47
|
<JsonEditor
|
|
50
48
|
width="100%"
|
|
@@ -55,6 +53,7 @@ export function JsonElement(props) {
|
|
|
55
53
|
onEdit={(obj) => {
|
|
56
54
|
setValue(JSON.stringify(obj.updated_src));
|
|
57
55
|
}}
|
|
56
|
+
{...props}
|
|
58
57
|
/>
|
|
59
58
|
</Row>;
|
|
60
59
|
|
|
@@ -73,6 +73,11 @@ import Inflector from 'inflector-js';
|
|
|
73
73
|
import _ from 'lodash';
|
|
74
74
|
const $ = Cypress.$;
|
|
75
75
|
|
|
76
|
+
export const WINDOWED = 'WINDOWED';
|
|
77
|
+
export const INLINE = 'INLINE';
|
|
78
|
+
export const SIDE = 'SIDE';
|
|
79
|
+
export const FULL = 'FULL';
|
|
80
|
+
|
|
76
81
|
|
|
77
82
|
// Form fields
|
|
78
83
|
export function crudCombo(selector, newData, editData, schema, ancillaryData, level = 0) {
|
|
@@ -108,6 +113,13 @@ export function crudTag(selector, newData, editData, schema, ancillaryData, leve
|
|
|
108
113
|
|
|
109
114
|
clickTrigger(selector);
|
|
110
115
|
}
|
|
116
|
+
export function crudJson(selector, newData, editData, schema, ancillaryData, level = 0) {
|
|
117
|
+
cy.then(() => {
|
|
118
|
+
Cypress.log({ name: 'crudJson' });
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// do nothing for now
|
|
122
|
+
}
|
|
111
123
|
|
|
112
124
|
|
|
113
125
|
// Grid
|
|
@@ -194,7 +206,7 @@ export function crudSideGridRecord(gridSelector, newData, editData, schema, anci
|
|
|
194
206
|
verifyGridRecordExistsById(gridSelector, id);
|
|
195
207
|
|
|
196
208
|
// edit
|
|
197
|
-
editGridRecord(gridSelector, editData, schema, id);
|
|
209
|
+
editGridRecord(gridSelector, editData, schema, id, 0, SIDE);
|
|
198
210
|
|
|
199
211
|
// delete
|
|
200
212
|
verifyGridRecordExistsById(gridSelector, id);
|
|
@@ -290,7 +302,7 @@ export function addInlineGridRecord(gridSelector, fieldValues, schema, ancillary
|
|
|
290
302
|
cy.wait(500); // allow window to close
|
|
291
303
|
// TODO: Change this to wait until window is closed
|
|
292
304
|
}
|
|
293
|
-
export function editGridRecord(gridSelector, fieldValues, schema, id, level = 0) {
|
|
305
|
+
export function editGridRecord(gridSelector, fieldValues, schema, id, level = 0, whichEditor = WINDOWED) {
|
|
294
306
|
|
|
295
307
|
cy.then(() => {
|
|
296
308
|
Cypress.log({ name: 'editGridRecord ' + gridSelector + ' ' + id});
|
|
@@ -303,13 +315,12 @@ export function editGridRecord(gridSelector, fieldValues, schema, id, level = 0)
|
|
|
303
315
|
viewerSelector = editorSelector + '/viewer',
|
|
304
316
|
formSelector = editorSelector + '/form';
|
|
305
317
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
// side editor
|
|
309
|
-
// switch to Edit mode if necessary
|
|
318
|
+
if (whichEditor === SIDE) {
|
|
319
|
+
Cypress.log({ name: 'switch to Edit mode if necessary ' + viewerSelector});
|
|
310
320
|
clickToEditButtonIfExists(viewerSelector);
|
|
311
321
|
} else {
|
|
312
322
|
// windowed or inline editor
|
|
323
|
+
Cypress.log({ name: 'click editBtn ' + gridSelector});
|
|
313
324
|
clickEditButton(gridSelector);
|
|
314
325
|
}
|
|
315
326
|
cy.wait(1500); // allow form to build
|
|
@@ -334,7 +345,7 @@ export function editWindowedGridRecord(gridSelector, fieldValues, schema, id, le
|
|
|
334
345
|
Cypress.log({ name: 'editWindowedGridRecord ' + gridSelector + ' ' + id});
|
|
335
346
|
});
|
|
336
347
|
|
|
337
|
-
editGridRecord(gridSelector, fieldValues, schema, id, level);
|
|
348
|
+
editGridRecord(gridSelector, fieldValues, schema, id, level, WINDOWED);
|
|
338
349
|
|
|
339
350
|
const formSelector = gridSelector + '/editor/form';
|
|
340
351
|
clickCloseButton(formSelector);
|
|
@@ -348,7 +359,7 @@ export function editInlineGridRecord(gridSelector, fieldValues, schema, id, leve
|
|
|
348
359
|
Cypress.log({ name: 'editWindowedGridRecord ' + gridSelector + ' ' + id});
|
|
349
360
|
});
|
|
350
361
|
|
|
351
|
-
editGridRecord(gridSelector, fieldValues, schema, id, level);
|
|
362
|
+
editGridRecord(gridSelector, fieldValues, schema, id, level, INLINE);
|
|
352
363
|
|
|
353
364
|
const formSelector = gridSelector + '/editor/form';
|
|
354
365
|
clickCloseButton(formSelector);
|
|
@@ -427,7 +438,7 @@ export function crudWindowedTreeRecord(treeSelector, newData, editData, schema,
|
|
|
427
438
|
verifyTreeRecordExistsById(treeSelector, id);
|
|
428
439
|
|
|
429
440
|
// edit
|
|
430
|
-
editWindowedTreeRecord(treeSelector, editData, schema, id);
|
|
441
|
+
editWindowedTreeRecord(treeSelector, editData, schema, id, level);
|
|
431
442
|
|
|
432
443
|
// delete
|
|
433
444
|
verifyTreeRecordExistsById(treeSelector, id);
|
|
@@ -456,7 +467,7 @@ export function crudSideTreeRecord(treeSelector, newData, editData, schema, anci
|
|
|
456
467
|
verifyTreeRecordExistsById(treeSelector, id);
|
|
457
468
|
|
|
458
469
|
// edit
|
|
459
|
-
editTreeRecord(treeSelector, editData, schema, id);
|
|
470
|
+
editTreeRecord(treeSelector, editData, schema, id, level, SIDE);
|
|
460
471
|
|
|
461
472
|
// delete
|
|
462
473
|
verifyTreeRecordExistsById(treeSelector, id);
|
|
@@ -546,7 +557,7 @@ export function addWindowedTreeRecord(treeSelector, fieldValues, schema, ancilla
|
|
|
546
557
|
cy.wait(500); // allow window to close
|
|
547
558
|
// TODO: Change this to wait until window is closed
|
|
548
559
|
}
|
|
549
|
-
export function editTreeRecord(treeSelector, fieldValues, schema, id, level = 0) {
|
|
560
|
+
export function editTreeRecord(treeSelector, fieldValues, schema, id, level = 0, whichEditor = WINDOWED) {
|
|
550
561
|
|
|
551
562
|
cy.then(() => {
|
|
552
563
|
Cypress.log({ name: 'editTreeRecord ' + treeSelector + ' ' + id});
|
|
@@ -559,13 +570,11 @@ export function editTreeRecord(treeSelector, fieldValues, schema, id, level = 0)
|
|
|
559
570
|
viewerSelector = editorSelector + '/viewer',
|
|
560
571
|
formSelector = editorSelector + '/form';
|
|
561
572
|
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
// side editor
|
|
565
|
-
// switch to Edit mode if necessary
|
|
573
|
+
if (whichEditor === SIDE) {
|
|
574
|
+
Cypress.log({ name: 'switch to Edit mode if necessary ' + viewerSelector});
|
|
566
575
|
clickToEditButtonIfExists(viewerSelector);
|
|
567
576
|
} else {
|
|
568
|
-
|
|
577
|
+
Cypress.log({ name: 'click editBtn ' + treeSelector});
|
|
569
578
|
clickEditButton(treeSelector);
|
|
570
579
|
}
|
|
571
580
|
cy.wait(1500); // allow form to build
|
|
@@ -590,7 +599,7 @@ export function editWindowedTreeRecord(treeSelector, fieldValues, schema, id, le
|
|
|
590
599
|
Cypress.log({ name: 'editWindowedTreeRecord ' + treeSelector + ' ' + id});
|
|
591
600
|
});
|
|
592
601
|
|
|
593
|
-
editTreeRecord(treeSelector, fieldValues, schema, id, level);
|
|
602
|
+
editTreeRecord(treeSelector, fieldValues, schema, id, level, WINDOWED);
|
|
594
603
|
|
|
595
604
|
const formSelector = treeSelector + '/editor/form';
|
|
596
605
|
clickCloseButton(formSelector);
|
|
@@ -707,9 +716,16 @@ export function runClosureTreeControlledManagerScreenCrudTests(model, schema, ne
|
|
|
707
716
|
});
|
|
708
717
|
|
|
709
718
|
}
|
|
710
|
-
export function runClosureTreeManagerScreenCrudTests(
|
|
711
|
-
|
|
712
|
-
const
|
|
719
|
+
export function runClosureTreeManagerScreenCrudTests(args) {
|
|
720
|
+
|
|
721
|
+
const {
|
|
722
|
+
model,
|
|
723
|
+
schema,
|
|
724
|
+
newData,
|
|
725
|
+
editData,
|
|
726
|
+
ancillaryData,
|
|
727
|
+
skip = null,
|
|
728
|
+
} = args,
|
|
713
729
|
Models = fixInflector(Inflector.camelize(Inflector.pluralize(model))),
|
|
714
730
|
url = fixInflector(Inflector.dasherize(Inflector.underscore(Models)));
|
|
715
731
|
|
|
@@ -730,90 +746,50 @@ export function runClosureTreeManagerScreenCrudTests(model, schema, newData, edi
|
|
|
730
746
|
// logout();
|
|
731
747
|
// });
|
|
732
748
|
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
const
|
|
736
|
-
managerSelector = '/' + Models + 'Manager',
|
|
737
|
-
treeSelector = '/' + Models + 'TreeEditor';
|
|
738
|
-
|
|
739
|
-
toFullMode(managerSelector);
|
|
740
|
-
cy.wait(500); // wait for grid to load
|
|
741
|
-
|
|
742
|
-
crudWindowedTreeRecord(treeSelector, newData, editData, schema, ancillaryData);
|
|
743
|
-
|
|
744
|
-
});
|
|
745
|
-
|
|
746
|
-
it('CRUD in side mode', function() {
|
|
747
|
-
|
|
748
|
-
const
|
|
749
|
-
managerSelector = '/' + Models + 'Manager',
|
|
750
|
-
treeSelector = '/' + Models + 'TreeEditor';
|
|
751
|
-
|
|
752
|
-
toSideMode(managerSelector);
|
|
753
|
-
cy.wait(1000); // wait for grid to load
|
|
754
|
-
|
|
755
|
-
crudSideTreeRecord(treeSelector, newData, editData, schema, ancillaryData);
|
|
756
|
-
|
|
757
|
-
});
|
|
749
|
+
if (skip !== FULL) {
|
|
750
|
+
it('CRUD in full mode', function() {
|
|
758
751
|
|
|
759
|
-
|
|
752
|
+
const
|
|
753
|
+
managerSelector = '/' + Models + 'Manager',
|
|
754
|
+
treeSelector = '/' + Models + 'TreeEditor';
|
|
760
755
|
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
const
|
|
765
|
-
Models = fixInflector(Inflector.camelize(Inflector.pluralize(model))),
|
|
766
|
-
url = fixInflector(Inflector.dasherize(Inflector.underscore(Models)));
|
|
756
|
+
toFullMode(managerSelector);
|
|
757
|
+
cy.wait(500); // wait for grid to load
|
|
767
758
|
|
|
768
|
-
|
|
759
|
+
crudWindowedTreeRecord(treeSelector, newData, editData, schema, ancillaryData);
|
|
769
760
|
|
|
770
|
-
beforeEach(function () {
|
|
771
|
-
login();
|
|
772
|
-
cy.restoreLocalStorage();
|
|
773
|
-
cy.url().then((currentUrl) => {
|
|
774
|
-
if (!currentUrl.endsWith(url)) {
|
|
775
|
-
navigateViaTabOrHomeButtonTo(url);
|
|
776
|
-
}
|
|
777
761
|
});
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
afterEach(function () {
|
|
781
|
-
cy.saveLocalStorage();
|
|
782
|
-
logout();
|
|
783
|
-
});
|
|
784
|
-
|
|
785
|
-
it('CRUD with inline editor in full mode', function() {
|
|
786
|
-
|
|
787
|
-
const
|
|
788
|
-
managerSelector = '/' + Models + 'Manager',
|
|
789
|
-
gridSelector = '/' + Models + 'GridEditor';
|
|
790
|
-
|
|
791
|
-
toFullMode(managerSelector);
|
|
792
|
-
cy.wait(500); // wait for grid to load
|
|
793
|
-
|
|
794
|
-
crudInlineGridRecord(gridSelector, newData, editData, schema, ancillaryData);
|
|
795
|
-
|
|
796
|
-
});
|
|
762
|
+
}
|
|
797
763
|
|
|
798
|
-
|
|
764
|
+
if (skip !== SIDE) {
|
|
765
|
+
it('CRUD in side mode', function() {
|
|
799
766
|
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
767
|
+
const
|
|
768
|
+
managerSelector = '/' + Models + 'Manager',
|
|
769
|
+
treeSelector = '/' + Models + 'TreeEditor';
|
|
803
770
|
|
|
804
|
-
|
|
805
|
-
|
|
771
|
+
toSideMode(managerSelector);
|
|
772
|
+
cy.wait(1000); // wait for grid to load
|
|
806
773
|
|
|
807
|
-
|
|
774
|
+
crudSideTreeRecord(treeSelector, newData, editData, schema, ancillaryData);
|
|
808
775
|
|
|
809
|
-
|
|
776
|
+
});
|
|
777
|
+
}
|
|
810
778
|
|
|
811
779
|
});
|
|
812
780
|
|
|
813
781
|
}
|
|
814
|
-
export function runManagerScreenCrudTests(
|
|
815
|
-
|
|
816
|
-
const
|
|
782
|
+
export function runManagerScreenCrudTests(args) {
|
|
783
|
+
|
|
784
|
+
const {
|
|
785
|
+
model,
|
|
786
|
+
schema,
|
|
787
|
+
newData,
|
|
788
|
+
editData,
|
|
789
|
+
ancillaryData,
|
|
790
|
+
fullIsInline = false,
|
|
791
|
+
skip = null,
|
|
792
|
+
} = args,
|
|
817
793
|
Models = fixInflector(Inflector.camelize(Inflector.pluralize(model))),
|
|
818
794
|
url = fixInflector(Inflector.dasherize(Inflector.underscore(Models)));
|
|
819
795
|
|
|
@@ -834,31 +810,39 @@ export function runManagerScreenCrudTests(model, schema, newData, editData, anci
|
|
|
834
810
|
// logout();
|
|
835
811
|
// });
|
|
836
812
|
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
toSideMode(managerSelector);
|
|
857
|
-
cy.wait(1000); // wait for grid to load
|
|
858
|
-
|
|
859
|
-
crudSideGridRecord(gridSelector, newData, editData, schema, ancillaryData);
|
|
813
|
+
if (skip !== FULL) {
|
|
814
|
+
it('CRUD in full mode', function() {
|
|
815
|
+
|
|
816
|
+
const
|
|
817
|
+
managerSelector = '/' + Models + 'Manager',
|
|
818
|
+
gridSelector = '/' + Models + 'GridEditor';
|
|
819
|
+
|
|
820
|
+
toFullMode(managerSelector);
|
|
821
|
+
cy.wait(500); // wait for grid to load
|
|
822
|
+
|
|
823
|
+
if (fullIsInline) {
|
|
824
|
+
crudInlineGridRecord(gridSelector, newData, editData, schema, ancillaryData);
|
|
825
|
+
} else {
|
|
826
|
+
crudWindowedGridRecord(gridSelector, newData, editData, schema, ancillaryData);
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
});
|
|
830
|
+
}
|
|
860
831
|
|
|
861
|
-
|
|
832
|
+
if (skip !== SIDE) {
|
|
833
|
+
it('CRUD in side mode', function() {
|
|
834
|
+
|
|
835
|
+
const
|
|
836
|
+
managerSelector = '/' + Models + 'Manager',
|
|
837
|
+
gridSelector = '/' + Models + 'GridEditor';
|
|
838
|
+
|
|
839
|
+
toSideMode(managerSelector);
|
|
840
|
+
cy.wait(1000); // wait for grid to load
|
|
841
|
+
|
|
842
|
+
crudSideGridRecord(gridSelector, newData, editData, schema, ancillaryData);
|
|
843
|
+
|
|
844
|
+
});
|
|
845
|
+
}
|
|
862
846
|
|
|
863
847
|
});
|
|
864
848
|
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
crudCombo,
|
|
12
12
|
crudTag,
|
|
13
|
+
crudJson,
|
|
13
14
|
} from './crud_functions.js';
|
|
14
15
|
import natsort from 'natsort';
|
|
15
16
|
import _ from 'lodash';
|
|
@@ -88,6 +89,9 @@ export function fillForm(selector, fieldValues, schema, level = 0) {
|
|
|
88
89
|
} else
|
|
89
90
|
if (editorType === 'File') {
|
|
90
91
|
// setFileValue(selectors, value);
|
|
92
|
+
} else
|
|
93
|
+
if (editorType === 'Json') {
|
|
94
|
+
// do nothing for now
|
|
91
95
|
} else {
|
|
92
96
|
const editorFn = customFormFunctions.getCustomEditorSetFn(editorType);
|
|
93
97
|
if (editorFn) {
|