@mic-rexjs/usecases-react 2.3.4 → 2.3.6
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/dist/index.min.js +1 -1
- package/es/components/UseCaseFragment/index.d.ts +1 -1
- package/es/components/UseCaseFragment/index.js +2 -2
- package/es/components/UseCaseFragment/types.d.ts +2 -0
- package/es/hooks/useEntity/index.js +6 -2
- package/es/hooks/useUseCase/index.test.js +596 -0
- package/es/hooks/useUseCase/types.d.ts +14 -0
- package/es/index.d.ts +1 -1
- package/es/methods/initEntityReducers/index.js +1 -1
- package/es/methods/triggerWatchers/index.d.ts +2 -0
- package/es/methods/triggerWatchers/index.js +14 -0
- package/lib/components/UseCaseFragment/index.js +2 -0
- package/lib/hooks/useEntity/index.js +8 -2
- package/lib/hooks/useUseCase/index.test.js +799 -47
- package/lib/methods/initEntityReducers/index.js +3 -2
- package/lib/methods/triggerWatchers/index.js +28 -0
- package/package.json +1 -1
- package/es/components/UpdateFragment/index.d.ts +0 -2
- package/es/components/UpdateFragment/index.js +0 -8
- package/es/components/UpdateFragment/types.d.ts +0 -3
- package/es/components/UpdateFragment/types.js +0 -1
- package/lib/components/UpdateFragment/index.js +0 -15
- package/lib/components/UpdateFragment/types.js +0 -5
|
@@ -132,6 +132,9 @@ var mathUseCase = function mathUseCase() {
|
|
|
132
132
|
subtraction: subtractionReducer
|
|
133
133
|
};
|
|
134
134
|
};
|
|
135
|
+
var fieldPathUseCase = function fieldPathUseCase() {
|
|
136
|
+
return (0, _usecases.objectUseCase)();
|
|
137
|
+
};
|
|
135
138
|
var Child = function Child(_ref2) {
|
|
136
139
|
var _ref2$textPrefix = _ref2.textPrefix,
|
|
137
140
|
textPrefix = _ref2$textPrefix === void 0 ? '' : _ref2$textPrefix,
|
|
@@ -779,6 +782,586 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
779
782
|
(0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(1);
|
|
780
783
|
(0, _globals.expect)(onPathChange2).toHaveBeenLastCalledWith(PATH_2, PATH_1);
|
|
781
784
|
});
|
|
785
|
+
(0, _globals.test)('`options.watch` should be trigger after entity changed', function () {
|
|
786
|
+
var onPathChange = _globals.jest.fn();
|
|
787
|
+
var onSizeChange = _globals.jest.fn();
|
|
788
|
+
var _renderHook19 = (0, _react.renderHook)(function () {
|
|
789
|
+
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
790
|
+
watch: {
|
|
791
|
+
path: onPathChange,
|
|
792
|
+
size: onSizeChange
|
|
793
|
+
}
|
|
794
|
+
});
|
|
795
|
+
}),
|
|
796
|
+
result = _renderHook19.result;
|
|
797
|
+
var cores = result.current;
|
|
798
|
+
var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
|
|
799
|
+
setPath = _cores13[1].setPath;
|
|
800
|
+
(0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(0);
|
|
801
|
+
(0, _react.act)(function () {
|
|
802
|
+
setPath(PATH_1);
|
|
803
|
+
});
|
|
804
|
+
(0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(1);
|
|
805
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
|
|
806
|
+
(0, _globals.expect)(onPathChange).toHaveBeenLastCalledWith({
|
|
807
|
+
fieldPaths: ['path'],
|
|
808
|
+
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
809
|
+
path: PATH_1,
|
|
810
|
+
ext: EXT_1
|
|
811
|
+
}),
|
|
812
|
+
oldEntity: defaultFile,
|
|
813
|
+
newValue: PATH_1,
|
|
814
|
+
oldValue: ''
|
|
815
|
+
});
|
|
816
|
+
});
|
|
817
|
+
(0, _globals.test)('`options.watch` should trigger the latest one', function () {
|
|
818
|
+
var onPathChange1 = _globals.jest.fn();
|
|
819
|
+
var onPathChange2 = _globals.jest.fn();
|
|
820
|
+
var onPathChange = onPathChange1;
|
|
821
|
+
var _renderHook20 = (0, _react.renderHook)(function () {
|
|
822
|
+
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
823
|
+
watch: {
|
|
824
|
+
path: onPathChange
|
|
825
|
+
}
|
|
826
|
+
});
|
|
827
|
+
}),
|
|
828
|
+
result = _renderHook20.result;
|
|
829
|
+
var cores = result.current;
|
|
830
|
+
var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
|
|
831
|
+
_cores14$ = _cores14[1],
|
|
832
|
+
setPath = _cores14$.setPath,
|
|
833
|
+
setEntity = _cores14$.setEntity;
|
|
834
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(0);
|
|
835
|
+
(0, _react.act)(function () {
|
|
836
|
+
setPath(PATH_1);
|
|
837
|
+
setEntity({
|
|
838
|
+
size: 5000
|
|
839
|
+
});
|
|
840
|
+
onPathChange = onPathChange2;
|
|
841
|
+
});
|
|
842
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(1);
|
|
843
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenLastCalledWith({
|
|
844
|
+
fieldPaths: ['path'],
|
|
845
|
+
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
846
|
+
path: PATH_1,
|
|
847
|
+
ext: EXT_1
|
|
848
|
+
}),
|
|
849
|
+
oldEntity: defaultFile,
|
|
850
|
+
newValue: PATH_1,
|
|
851
|
+
oldValue: ''
|
|
852
|
+
});
|
|
853
|
+
(0, _react.act)(function () {
|
|
854
|
+
setPath('');
|
|
855
|
+
});
|
|
856
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(1);
|
|
857
|
+
(0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(1);
|
|
858
|
+
(0, _globals.expect)(onPathChange2).toHaveBeenLastCalledWith({
|
|
859
|
+
fieldPaths: ['path'],
|
|
860
|
+
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
861
|
+
size: 5000
|
|
862
|
+
}),
|
|
863
|
+
oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
864
|
+
path: PATH_1,
|
|
865
|
+
ext: EXT_1,
|
|
866
|
+
size: 5000
|
|
867
|
+
}),
|
|
868
|
+
newValue: '',
|
|
869
|
+
oldValue: PATH_1
|
|
870
|
+
});
|
|
871
|
+
});
|
|
872
|
+
(0, _globals.test)('`options.watch` should work with array field path of array', function () {
|
|
873
|
+
var onExtChange = _globals.jest.fn();
|
|
874
|
+
var onSizeChange = _globals.jest.fn();
|
|
875
|
+
var _renderHook21 = (0, _react.renderHook)(function () {
|
|
876
|
+
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
877
|
+
watch: {
|
|
878
|
+
'list.ext': onExtChange,
|
|
879
|
+
'list.size': onSizeChange
|
|
880
|
+
}
|
|
881
|
+
});
|
|
882
|
+
}),
|
|
883
|
+
result = _renderHook21.result;
|
|
884
|
+
var cores = result.current;
|
|
885
|
+
var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
|
|
886
|
+
setEntity = _cores15[1].setEntity;
|
|
887
|
+
(0, _react.act)(function () {
|
|
888
|
+
setEntity({
|
|
889
|
+
list: [defaultFile]
|
|
890
|
+
});
|
|
891
|
+
});
|
|
892
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(1);
|
|
893
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(1);
|
|
894
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
|
|
895
|
+
fieldPaths: ['list', '0', 'ext'],
|
|
896
|
+
newEntity: {
|
|
897
|
+
list: [defaultFile]
|
|
898
|
+
},
|
|
899
|
+
oldEntity: {},
|
|
900
|
+
newValue: '',
|
|
901
|
+
oldValue: void 0
|
|
902
|
+
});
|
|
903
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledWith({
|
|
904
|
+
fieldPaths: ['list', '0', 'size'],
|
|
905
|
+
newEntity: {
|
|
906
|
+
list: [defaultFile]
|
|
907
|
+
},
|
|
908
|
+
oldEntity: {},
|
|
909
|
+
newValue: 0,
|
|
910
|
+
oldValue: void 0
|
|
911
|
+
});
|
|
912
|
+
(0, _react.act)(function () {
|
|
913
|
+
setEntity({
|
|
914
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
915
|
+
ext: EXT_1
|
|
916
|
+
})]
|
|
917
|
+
});
|
|
918
|
+
});
|
|
919
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(2);
|
|
920
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(1);
|
|
921
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
|
|
922
|
+
fieldPaths: ['list', '0', 'ext'],
|
|
923
|
+
newEntity: {
|
|
924
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
925
|
+
ext: EXT_1
|
|
926
|
+
})]
|
|
927
|
+
},
|
|
928
|
+
oldEntity: {
|
|
929
|
+
list: [defaultFile]
|
|
930
|
+
},
|
|
931
|
+
newValue: EXT_1,
|
|
932
|
+
oldValue: ''
|
|
933
|
+
});
|
|
934
|
+
(0, _react.act)(function () {
|
|
935
|
+
setEntity({
|
|
936
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
937
|
+
ext: EXT_1
|
|
938
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
939
|
+
ext: EXT_2
|
|
940
|
+
})]
|
|
941
|
+
});
|
|
942
|
+
});
|
|
943
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(3);
|
|
944
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(2);
|
|
945
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
|
|
946
|
+
fieldPaths: ['list', '1', 'ext'],
|
|
947
|
+
newEntity: {
|
|
948
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
949
|
+
ext: EXT_1
|
|
950
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
951
|
+
ext: EXT_2
|
|
952
|
+
})]
|
|
953
|
+
},
|
|
954
|
+
oldEntity: {
|
|
955
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
956
|
+
ext: EXT_1
|
|
957
|
+
})]
|
|
958
|
+
},
|
|
959
|
+
newValue: EXT_2,
|
|
960
|
+
oldValue: void 0
|
|
961
|
+
});
|
|
962
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledWith({
|
|
963
|
+
fieldPaths: ['list', '1', 'size'],
|
|
964
|
+
newEntity: {
|
|
965
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
966
|
+
ext: EXT_1
|
|
967
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
968
|
+
ext: EXT_2
|
|
969
|
+
})]
|
|
970
|
+
},
|
|
971
|
+
oldEntity: {
|
|
972
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
973
|
+
ext: EXT_1
|
|
974
|
+
})]
|
|
975
|
+
},
|
|
976
|
+
newValue: 0,
|
|
977
|
+
oldValue: void 0
|
|
978
|
+
});
|
|
979
|
+
(0, _react.act)(function () {
|
|
980
|
+
setEntity({
|
|
981
|
+
nestedList: []
|
|
982
|
+
});
|
|
983
|
+
});
|
|
984
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(3);
|
|
985
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(2);
|
|
986
|
+
(0, _react.act)(function () {
|
|
987
|
+
setEntity(function () {
|
|
988
|
+
return {
|
|
989
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
990
|
+
ext: EXT_2
|
|
991
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
992
|
+
ext: EXT_1
|
|
993
|
+
}), defaultFile]
|
|
994
|
+
};
|
|
995
|
+
});
|
|
996
|
+
});
|
|
997
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(6);
|
|
998
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(3);
|
|
999
|
+
(0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(4, {
|
|
1000
|
+
fieldPaths: ['list', '0', 'ext'],
|
|
1001
|
+
newEntity: {
|
|
1002
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1003
|
+
ext: EXT_2
|
|
1004
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1005
|
+
ext: EXT_1
|
|
1006
|
+
}), defaultFile]
|
|
1007
|
+
},
|
|
1008
|
+
oldEntity: {
|
|
1009
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1010
|
+
ext: EXT_1
|
|
1011
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1012
|
+
ext: EXT_2
|
|
1013
|
+
})],
|
|
1014
|
+
nestedList: []
|
|
1015
|
+
},
|
|
1016
|
+
newValue: EXT_2,
|
|
1017
|
+
oldValue: EXT_1
|
|
1018
|
+
});
|
|
1019
|
+
(0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(5, {
|
|
1020
|
+
fieldPaths: ['list', '1', 'ext'],
|
|
1021
|
+
newEntity: {
|
|
1022
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1023
|
+
ext: EXT_2
|
|
1024
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1025
|
+
ext: EXT_1
|
|
1026
|
+
}), defaultFile]
|
|
1027
|
+
},
|
|
1028
|
+
oldEntity: {
|
|
1029
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1030
|
+
ext: EXT_1
|
|
1031
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1032
|
+
ext: EXT_2
|
|
1033
|
+
})],
|
|
1034
|
+
nestedList: []
|
|
1035
|
+
},
|
|
1036
|
+
newValue: EXT_1,
|
|
1037
|
+
oldValue: EXT_2
|
|
1038
|
+
});
|
|
1039
|
+
(0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(6, {
|
|
1040
|
+
fieldPaths: ['list', '2', 'ext'],
|
|
1041
|
+
newEntity: {
|
|
1042
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1043
|
+
ext: EXT_2
|
|
1044
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1045
|
+
ext: EXT_1
|
|
1046
|
+
}), defaultFile]
|
|
1047
|
+
},
|
|
1048
|
+
oldEntity: {
|
|
1049
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1050
|
+
ext: EXT_1
|
|
1051
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1052
|
+
ext: EXT_2
|
|
1053
|
+
})],
|
|
1054
|
+
nestedList: []
|
|
1055
|
+
},
|
|
1056
|
+
newValue: '',
|
|
1057
|
+
oldValue: void 0
|
|
1058
|
+
});
|
|
1059
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledWith({
|
|
1060
|
+
fieldPaths: ['list', '2', 'size'],
|
|
1061
|
+
newEntity: {
|
|
1062
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1063
|
+
ext: EXT_2
|
|
1064
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1065
|
+
ext: EXT_1
|
|
1066
|
+
}), defaultFile]
|
|
1067
|
+
},
|
|
1068
|
+
oldEntity: {
|
|
1069
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1070
|
+
ext: EXT_1
|
|
1071
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1072
|
+
ext: EXT_2
|
|
1073
|
+
})],
|
|
1074
|
+
nestedList: []
|
|
1075
|
+
},
|
|
1076
|
+
newValue: 0,
|
|
1077
|
+
oldValue: void 0
|
|
1078
|
+
});
|
|
1079
|
+
(0, _react.act)(function () {
|
|
1080
|
+
setEntity(function () {
|
|
1081
|
+
return {};
|
|
1082
|
+
});
|
|
1083
|
+
});
|
|
1084
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(9);
|
|
1085
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(6);
|
|
1086
|
+
(0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(7, {
|
|
1087
|
+
fieldPaths: ['list', '0', 'ext'],
|
|
1088
|
+
newEntity: {},
|
|
1089
|
+
oldEntity: {
|
|
1090
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1091
|
+
ext: EXT_2
|
|
1092
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1093
|
+
ext: EXT_1
|
|
1094
|
+
}), defaultFile]
|
|
1095
|
+
},
|
|
1096
|
+
newValue: void 0,
|
|
1097
|
+
oldValue: EXT_2
|
|
1098
|
+
});
|
|
1099
|
+
(0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(8, {
|
|
1100
|
+
fieldPaths: ['list', '1', 'ext'],
|
|
1101
|
+
newEntity: {},
|
|
1102
|
+
oldEntity: {
|
|
1103
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1104
|
+
ext: EXT_2
|
|
1105
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1106
|
+
ext: EXT_1
|
|
1107
|
+
}), defaultFile]
|
|
1108
|
+
},
|
|
1109
|
+
newValue: void 0,
|
|
1110
|
+
oldValue: EXT_1
|
|
1111
|
+
});
|
|
1112
|
+
(0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(9, {
|
|
1113
|
+
fieldPaths: ['list', '2', 'ext'],
|
|
1114
|
+
newEntity: {},
|
|
1115
|
+
oldEntity: {
|
|
1116
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1117
|
+
ext: EXT_2
|
|
1118
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1119
|
+
ext: EXT_1
|
|
1120
|
+
}), defaultFile]
|
|
1121
|
+
},
|
|
1122
|
+
newValue: void 0,
|
|
1123
|
+
oldValue: ''
|
|
1124
|
+
});
|
|
1125
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(4, {
|
|
1126
|
+
fieldPaths: ['list', '0', 'size'],
|
|
1127
|
+
newEntity: {},
|
|
1128
|
+
oldEntity: {
|
|
1129
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1130
|
+
ext: EXT_2
|
|
1131
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1132
|
+
ext: EXT_1
|
|
1133
|
+
}), defaultFile]
|
|
1134
|
+
},
|
|
1135
|
+
newValue: void 0,
|
|
1136
|
+
oldValue: 0
|
|
1137
|
+
});
|
|
1138
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(5, {
|
|
1139
|
+
fieldPaths: ['list', '1', 'size'],
|
|
1140
|
+
newEntity: {},
|
|
1141
|
+
oldEntity: {
|
|
1142
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1143
|
+
ext: EXT_2
|
|
1144
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1145
|
+
ext: EXT_1
|
|
1146
|
+
}), defaultFile]
|
|
1147
|
+
},
|
|
1148
|
+
newValue: void 0,
|
|
1149
|
+
oldValue: 0
|
|
1150
|
+
});
|
|
1151
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(6, {
|
|
1152
|
+
fieldPaths: ['list', '2', 'size'],
|
|
1153
|
+
newEntity: {},
|
|
1154
|
+
oldEntity: {
|
|
1155
|
+
list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1156
|
+
ext: EXT_2
|
|
1157
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1158
|
+
ext: EXT_1
|
|
1159
|
+
}), defaultFile]
|
|
1160
|
+
},
|
|
1161
|
+
newValue: void 0,
|
|
1162
|
+
oldValue: 0
|
|
1163
|
+
});
|
|
1164
|
+
});
|
|
1165
|
+
(0, _globals.test)('`options.watch` should work with field path of array length', function () {
|
|
1166
|
+
var onEntityLengthChange = _globals.jest.fn();
|
|
1167
|
+
var onListLengthChange = _globals.jest.fn();
|
|
1168
|
+
var lengthUseCase = function lengthUseCase() {
|
|
1169
|
+
return (0, _usecases.entityUseCase)();
|
|
1170
|
+
};
|
|
1171
|
+
var _renderHook22 = (0, _react.renderHook)(function () {
|
|
1172
|
+
return (0, _.useUseCase)([], lengthUseCase, {
|
|
1173
|
+
watch: {
|
|
1174
|
+
length: onEntityLengthChange,
|
|
1175
|
+
'list.length': onListLengthChange
|
|
1176
|
+
}
|
|
1177
|
+
});
|
|
1178
|
+
}),
|
|
1179
|
+
result = _renderHook22.result;
|
|
1180
|
+
var cores = result.current;
|
|
1181
|
+
var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1182
|
+
setEntity = _cores16[1].setEntity;
|
|
1183
|
+
(0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledTimes(0);
|
|
1184
|
+
(0, _globals.expect)(onListLengthChange).toHaveBeenCalledTimes(0);
|
|
1185
|
+
(0, _react.act)(function () {
|
|
1186
|
+
setEntity([{
|
|
1187
|
+
list: [defaultFile, defaultFile]
|
|
1188
|
+
}]);
|
|
1189
|
+
});
|
|
1190
|
+
(0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledTimes(1);
|
|
1191
|
+
(0, _globals.expect)(onListLengthChange).toHaveBeenCalledTimes(1);
|
|
1192
|
+
(0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledWith({
|
|
1193
|
+
fieldPaths: ['length'],
|
|
1194
|
+
newEntity: [{
|
|
1195
|
+
list: [defaultFile, defaultFile]
|
|
1196
|
+
}],
|
|
1197
|
+
oldEntity: [],
|
|
1198
|
+
newValue: 1,
|
|
1199
|
+
oldValue: 0
|
|
1200
|
+
});
|
|
1201
|
+
(0, _globals.expect)(onListLengthChange).toHaveBeenCalledWith({
|
|
1202
|
+
fieldPaths: ['0', 'list', 'length'],
|
|
1203
|
+
newEntity: [{
|
|
1204
|
+
list: [defaultFile, defaultFile]
|
|
1205
|
+
}],
|
|
1206
|
+
oldEntity: [],
|
|
1207
|
+
newValue: 2,
|
|
1208
|
+
oldValue: void 0
|
|
1209
|
+
});
|
|
1210
|
+
});
|
|
1211
|
+
(0, _globals.test)('`options.watch` should work with field path of nested array', function () {
|
|
1212
|
+
var onChange = _globals.jest.fn();
|
|
1213
|
+
var _renderHook23 = (0, _react.renderHook)(function () {
|
|
1214
|
+
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
1215
|
+
watch: {
|
|
1216
|
+
'nestedList.size': onChange
|
|
1217
|
+
}
|
|
1218
|
+
});
|
|
1219
|
+
}),
|
|
1220
|
+
result = _renderHook23.result;
|
|
1221
|
+
var cores = result.current;
|
|
1222
|
+
var _cores17 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1223
|
+
setEntity = _cores17[1].setEntity;
|
|
1224
|
+
(0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
|
|
1225
|
+
(0, _react.act)(function () {
|
|
1226
|
+
setEntity({
|
|
1227
|
+
nestedList: [[[defaultFile]]]
|
|
1228
|
+
});
|
|
1229
|
+
});
|
|
1230
|
+
(0, _globals.expect)(onChange).toHaveBeenCalledTimes(1);
|
|
1231
|
+
(0, _globals.expect)(onChange).toHaveBeenCalledWith({
|
|
1232
|
+
fieldPaths: ['nestedList', '0', '0', '0', 'size'],
|
|
1233
|
+
newEntity: {
|
|
1234
|
+
nestedList: [[[defaultFile]]]
|
|
1235
|
+
},
|
|
1236
|
+
oldEntity: {},
|
|
1237
|
+
newValue: 0,
|
|
1238
|
+
oldValue: void 0
|
|
1239
|
+
});
|
|
1240
|
+
(0, _react.act)(function () {
|
|
1241
|
+
setEntity({
|
|
1242
|
+
nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1243
|
+
size: 100
|
|
1244
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1245
|
+
size: 200
|
|
1246
|
+
})]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1247
|
+
size: 300
|
|
1248
|
+
})]]]
|
|
1249
|
+
});
|
|
1250
|
+
});
|
|
1251
|
+
(0, _globals.expect)(onChange).toHaveBeenCalledTimes(4);
|
|
1252
|
+
(0, _globals.expect)(onChange).toHaveBeenNthCalledWith(2, {
|
|
1253
|
+
fieldPaths: ['nestedList', '0', '0', '0', 'size'],
|
|
1254
|
+
newEntity: {
|
|
1255
|
+
nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1256
|
+
size: 100
|
|
1257
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1258
|
+
size: 200
|
|
1259
|
+
})]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1260
|
+
size: 300
|
|
1261
|
+
})]]]
|
|
1262
|
+
},
|
|
1263
|
+
oldEntity: {
|
|
1264
|
+
nestedList: [[[defaultFile]]]
|
|
1265
|
+
},
|
|
1266
|
+
newValue: 100,
|
|
1267
|
+
oldValue: 0
|
|
1268
|
+
});
|
|
1269
|
+
(0, _globals.expect)(onChange).toHaveBeenNthCalledWith(3, {
|
|
1270
|
+
fieldPaths: ['nestedList', '0', '0', '1', 'size'],
|
|
1271
|
+
newEntity: {
|
|
1272
|
+
nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1273
|
+
size: 100
|
|
1274
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1275
|
+
size: 200
|
|
1276
|
+
})]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1277
|
+
size: 300
|
|
1278
|
+
})]]]
|
|
1279
|
+
},
|
|
1280
|
+
oldEntity: {
|
|
1281
|
+
nestedList: [[[defaultFile]]]
|
|
1282
|
+
},
|
|
1283
|
+
newValue: 200,
|
|
1284
|
+
oldValue: void 0
|
|
1285
|
+
});
|
|
1286
|
+
(0, _globals.expect)(onChange).toHaveBeenNthCalledWith(4, {
|
|
1287
|
+
fieldPaths: ['nestedList', '1', '0', '0', 'size'],
|
|
1288
|
+
newEntity: {
|
|
1289
|
+
nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1290
|
+
size: 100
|
|
1291
|
+
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1292
|
+
size: 200
|
|
1293
|
+
})]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1294
|
+
size: 300
|
|
1295
|
+
})]]]
|
|
1296
|
+
},
|
|
1297
|
+
oldEntity: {
|
|
1298
|
+
nestedList: [[[defaultFile]]]
|
|
1299
|
+
},
|
|
1300
|
+
newValue: 300,
|
|
1301
|
+
oldValue: void 0
|
|
1302
|
+
});
|
|
1303
|
+
});
|
|
1304
|
+
(0, _globals.test)('`options.watch` should work with field path of object', function () {
|
|
1305
|
+
var onExtChange = _globals.jest.fn();
|
|
1306
|
+
var onSizeChange = _globals.jest.fn();
|
|
1307
|
+
var _renderHook24 = (0, _react.renderHook)(function () {
|
|
1308
|
+
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
1309
|
+
watch: {
|
|
1310
|
+
'obj.file.ext': onExtChange,
|
|
1311
|
+
'obj.file.size': onSizeChange
|
|
1312
|
+
}
|
|
1313
|
+
});
|
|
1314
|
+
}),
|
|
1315
|
+
result = _renderHook24.result;
|
|
1316
|
+
var cores = result.current;
|
|
1317
|
+
var _cores18 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1318
|
+
setEntity = _cores18[1].setEntity;
|
|
1319
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(0);
|
|
1320
|
+
(0, _react.act)(function () {
|
|
1321
|
+
setEntity({
|
|
1322
|
+
obj: {
|
|
1323
|
+
file: {
|
|
1324
|
+
ext: EXT_1
|
|
1325
|
+
}
|
|
1326
|
+
}
|
|
1327
|
+
});
|
|
1328
|
+
});
|
|
1329
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(1);
|
|
1330
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
|
|
1331
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
|
|
1332
|
+
fieldPaths: ['obj', 'file', 'ext'],
|
|
1333
|
+
newEntity: {
|
|
1334
|
+
obj: {
|
|
1335
|
+
file: {
|
|
1336
|
+
ext: EXT_1
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
},
|
|
1340
|
+
oldEntity: {},
|
|
1341
|
+
newValue: EXT_1,
|
|
1342
|
+
oldValue: void 0
|
|
1343
|
+
});
|
|
1344
|
+
(0, _react.act)(function () {
|
|
1345
|
+
setEntity(function () {
|
|
1346
|
+
return {};
|
|
1347
|
+
});
|
|
1348
|
+
});
|
|
1349
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(2);
|
|
1350
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
|
|
1351
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
|
|
1352
|
+
fieldPaths: ['obj', 'file', 'ext'],
|
|
1353
|
+
newEntity: {},
|
|
1354
|
+
oldEntity: {
|
|
1355
|
+
obj: {
|
|
1356
|
+
file: {
|
|
1357
|
+
ext: EXT_1
|
|
1358
|
+
}
|
|
1359
|
+
}
|
|
1360
|
+
},
|
|
1361
|
+
newValue: void 0,
|
|
1362
|
+
oldValue: EXT_1
|
|
1363
|
+
});
|
|
1364
|
+
});
|
|
782
1365
|
(0, _globals.test)('multiple `Provider` should work', function () {
|
|
783
1366
|
var onNumberMount = _globals.jest.fn();
|
|
784
1367
|
var onStringMount = _globals.jest.fn();
|
|
@@ -832,28 +1415,28 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
832
1415
|
});
|
|
833
1416
|
(0, _globals.describe)('`useUseCase` should work the same as `ModeCoreCollectionHook`', function () {
|
|
834
1417
|
_globals.test.each([_UseCaseModes.UseCaseModes.Normal, _UseCaseModes.UseCaseModes.Stateless])('[mode=%s]: check context type', function (mode) {
|
|
835
|
-
var
|
|
1418
|
+
var _renderHook25 = (0, _react.renderHook)(function () {
|
|
836
1419
|
return (0, _.useUseCase)(defaultFile, fileUseCase, mode);
|
|
837
1420
|
}),
|
|
838
|
-
result =
|
|
1421
|
+
result = _renderHook25.result;
|
|
839
1422
|
var cores = result.current;
|
|
840
1423
|
(0, _globals.expect)(Array.isArray(cores)).toBe(true);
|
|
841
1424
|
(0, _globals.expect)(cores).toHaveLength(3);
|
|
842
1425
|
});
|
|
843
1426
|
(0, _globals.test)('stateless mode should not generate new reducers when `yeild entity`', function () {
|
|
844
1427
|
var onUpdate = _globals.jest.fn();
|
|
845
|
-
var
|
|
1428
|
+
var _renderHook26 = (0, _react.renderHook)(function () {
|
|
846
1429
|
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
|
|
847
1430
|
(0, _ahooks.useUpdateEffect)(function () {
|
|
848
1431
|
onUpdate();
|
|
849
1432
|
});
|
|
850
1433
|
return (0, _.useUseCase)(file, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
|
|
851
1434
|
}),
|
|
852
|
-
result =
|
|
853
|
-
rerender =
|
|
1435
|
+
result = _renderHook26.result,
|
|
1436
|
+
rerender = _renderHook26.rerender;
|
|
854
1437
|
var cores = result.current;
|
|
855
|
-
var
|
|
856
|
-
setPath =
|
|
1438
|
+
var _cores19 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1439
|
+
setPath = _cores19[1].setPath;
|
|
857
1440
|
setPath(PATH_1);
|
|
858
1441
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
859
1442
|
(0, _globals.expect)(result.current[0].path).toBe('');
|
|
@@ -866,16 +1449,16 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
866
1449
|
});
|
|
867
1450
|
(0, _globals.test)('stateless mode should not trigger update when after `yield entity`', function () {
|
|
868
1451
|
var onUpdate = _globals.jest.fn();
|
|
869
|
-
var
|
|
1452
|
+
var _renderHook27 = (0, _react.renderHook)(function () {
|
|
870
1453
|
(0, _ahooks.useUpdateEffect)(function () {
|
|
871
1454
|
onUpdate();
|
|
872
1455
|
});
|
|
873
1456
|
return (0, _.useUseCase)(defaultFile, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
|
|
874
1457
|
}),
|
|
875
|
-
result =
|
|
1458
|
+
result = _renderHook27.result;
|
|
876
1459
|
var cores = result.current;
|
|
877
|
-
var
|
|
878
|
-
reducers =
|
|
1460
|
+
var _cores20 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1461
|
+
reducers = _cores20[1];
|
|
879
1462
|
var setPath = reducers.setPath;
|
|
880
1463
|
(0, _react.act)(function () {
|
|
881
1464
|
setPath(PATH_1);
|
|
@@ -1216,41 +1799,210 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1216
1799
|
path: PATH_1
|
|
1217
1800
|
}));
|
|
1218
1801
|
});
|
|
1802
|
+
(0, _globals.test)('`options.watch` should be trigger at child elements', function () {
|
|
1803
|
+
var onExtChange = _globals.jest.fn();
|
|
1804
|
+
var firstButtonText = 'first button';
|
|
1805
|
+
var A = function A() {
|
|
1806
|
+
var _useUseCase44 = (0, _.useUseCase)(fileUseCase, {
|
|
1807
|
+
watch: {
|
|
1808
|
+
ext: onExtChange
|
|
1809
|
+
}
|
|
1810
|
+
}),
|
|
1811
|
+
_useUseCase45 = (0, _slicedToArray2["default"])(_useUseCase44, 2),
|
|
1812
|
+
setPath = _useUseCase45[1].setPath;
|
|
1813
|
+
var onFirstClick = function onFirstClick() {
|
|
1814
|
+
setPath(PATH_1);
|
|
1815
|
+
};
|
|
1816
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
1817
|
+
onClick: onFirstClick,
|
|
1818
|
+
children: firstButtonText
|
|
1819
|
+
});
|
|
1820
|
+
};
|
|
1821
|
+
var B = function B() {
|
|
1822
|
+
var _useUseCase46 = (0, _.useUseCase)(defaultFile, fileUseCase, {}),
|
|
1823
|
+
_useUseCase47 = (0, _slicedToArray2["default"])(_useUseCase46, 3),
|
|
1824
|
+
Provider = _useUseCase47[2];
|
|
1825
|
+
return (0, _jsxRuntime.jsx)(Provider, {
|
|
1826
|
+
children: (0, _jsxRuntime.jsx)(A, {})
|
|
1827
|
+
});
|
|
1828
|
+
};
|
|
1829
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1830
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(0);
|
|
1831
|
+
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
1832
|
+
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(1);
|
|
1833
|
+
(0, _globals.expect)(onExtChange).toHaveBeenLastCalledWith({
|
|
1834
|
+
fieldPaths: ['ext'],
|
|
1835
|
+
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1836
|
+
ext: EXT_1,
|
|
1837
|
+
path: PATH_1
|
|
1838
|
+
}),
|
|
1839
|
+
oldEntity: defaultFile,
|
|
1840
|
+
newValue: EXT_1,
|
|
1841
|
+
oldValue: ''
|
|
1842
|
+
});
|
|
1843
|
+
});
|
|
1844
|
+
(0, _globals.test)('`options.watch` should be trigger in orders', function () {
|
|
1845
|
+
var changeTimes = 0;
|
|
1846
|
+
var updateChangeTimes = function updateChangeTimes(e) {
|
|
1847
|
+
void e;
|
|
1848
|
+
return ++changeTimes;
|
|
1849
|
+
};
|
|
1850
|
+
var onChangeA = _globals.jest.fn(updateChangeTimes);
|
|
1851
|
+
var onChangeB = _globals.jest.fn(updateChangeTimes);
|
|
1852
|
+
var onChangeC = _globals.jest.fn(updateChangeTimes);
|
|
1853
|
+
var buttonText = 'my button';
|
|
1854
|
+
var A = function A(_ref8) {
|
|
1855
|
+
var children = _ref8.children;
|
|
1856
|
+
(0, _.useUseCase)(fileUseCase, {
|
|
1857
|
+
watch: {
|
|
1858
|
+
ext: onChangeA
|
|
1859
|
+
}
|
|
1860
|
+
});
|
|
1861
|
+
return (0, _jsxRuntime.jsx)(_react2.Fragment, {
|
|
1862
|
+
children: children
|
|
1863
|
+
});
|
|
1864
|
+
};
|
|
1865
|
+
var B = function B() {
|
|
1866
|
+
(0, _.useUseCase)(fileUseCase, {
|
|
1867
|
+
watch: {
|
|
1868
|
+
ext: onChangeB
|
|
1869
|
+
}
|
|
1870
|
+
});
|
|
1871
|
+
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1872
|
+
};
|
|
1873
|
+
var C = function C() {
|
|
1874
|
+
var _useUseCase48 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
1875
|
+
watch: {
|
|
1876
|
+
ext: onChangeC
|
|
1877
|
+
}
|
|
1878
|
+
}),
|
|
1879
|
+
_useUseCase49 = (0, _slicedToArray2["default"])(_useUseCase48, 3),
|
|
1880
|
+
setPath = _useUseCase49[1].setPath,
|
|
1881
|
+
Provider = _useUseCase49[2];
|
|
1882
|
+
var onFirstClick = function onFirstClick() {
|
|
1883
|
+
setPath(PATH_1);
|
|
1884
|
+
};
|
|
1885
|
+
return (0, _jsxRuntime.jsxs)(Provider, {
|
|
1886
|
+
children: [(0, _jsxRuntime.jsx)(A, {
|
|
1887
|
+
children: (0, _jsxRuntime.jsx)(B, {})
|
|
1888
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
1889
|
+
onClick: onFirstClick,
|
|
1890
|
+
children: buttonText
|
|
1891
|
+
})]
|
|
1892
|
+
});
|
|
1893
|
+
};
|
|
1894
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(C, {}));
|
|
1895
|
+
(0, _globals.expect)(changeTimes).toBe(0);
|
|
1896
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1897
|
+
(0, _globals.expect)(onChangeA).toHaveReturnedWith(2);
|
|
1898
|
+
(0, _globals.expect)(onChangeB).toHaveReturnedWith(1);
|
|
1899
|
+
(0, _globals.expect)(onChangeC).toHaveReturnedWith(3);
|
|
1900
|
+
});
|
|
1901
|
+
_globals.test.each([_UseCaseModes.UseCaseModes.Normal, _UseCaseModes.UseCaseModes.Stateless])('[mode=%s]: `options.watch` should trigger the latest one in child components', function (mode) {
|
|
1902
|
+
var onFirstExtChange = _globals.jest.fn();
|
|
1903
|
+
var onSecondExtChange = _globals.jest.fn();
|
|
1904
|
+
var onExtChange = onFirstExtChange;
|
|
1905
|
+
var firstButtonText = 'first button';
|
|
1906
|
+
var secondButtonText = 'second button';
|
|
1907
|
+
var A = function A() {
|
|
1908
|
+
var _useUseCase50 = (0, _.useUseCase)(fileUseCase, {
|
|
1909
|
+
watch: {
|
|
1910
|
+
ext: onExtChange
|
|
1911
|
+
}
|
|
1912
|
+
}),
|
|
1913
|
+
_useUseCase51 = (0, _slicedToArray2["default"])(_useUseCase50, 2),
|
|
1914
|
+
setPath = _useUseCase51[1].setPath;
|
|
1915
|
+
var onFirstClick = function onFirstClick() {
|
|
1916
|
+
setPath(PATH_1);
|
|
1917
|
+
onExtChange = onSecondExtChange;
|
|
1918
|
+
};
|
|
1919
|
+
var onSecondClick = function onSecondClick() {
|
|
1920
|
+
setPath('');
|
|
1921
|
+
};
|
|
1922
|
+
return (0, _jsxRuntime.jsxs)(_react2.Fragment, {
|
|
1923
|
+
children: [(0, _jsxRuntime.jsx)("button", {
|
|
1924
|
+
onClick: onFirstClick,
|
|
1925
|
+
children: firstButtonText
|
|
1926
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
1927
|
+
onClick: onSecondClick,
|
|
1928
|
+
children: secondButtonText
|
|
1929
|
+
})]
|
|
1930
|
+
});
|
|
1931
|
+
};
|
|
1932
|
+
var B = function B() {
|
|
1933
|
+
var _useState9 = (0, _react2.useState)(defaultFile),
|
|
1934
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
1935
|
+
file = _useState10[0],
|
|
1936
|
+
setFile = _useState10[1];
|
|
1937
|
+
var _useUseCase52 = (0, _.useUseCase)(file, fileUseCase, mode, {
|
|
1938
|
+
onChange: function onChange(newFile) {
|
|
1939
|
+
if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
|
|
1940
|
+
return;
|
|
1941
|
+
}
|
|
1942
|
+
// `stateless` 不会保存状态,所以需要手动保存
|
|
1943
|
+
setFile(newFile);
|
|
1944
|
+
}
|
|
1945
|
+
}),
|
|
1946
|
+
_useUseCase53 = (0, _slicedToArray2["default"])(_useUseCase52, 3),
|
|
1947
|
+
Provider = _useUseCase53[2];
|
|
1948
|
+
return (0, _jsxRuntime.jsx)(Provider, {
|
|
1949
|
+
children: (0, _jsxRuntime.jsx)(A, {})
|
|
1950
|
+
});
|
|
1951
|
+
};
|
|
1952
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1953
|
+
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(0);
|
|
1954
|
+
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
1955
|
+
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
1956
|
+
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(0);
|
|
1957
|
+
_react.fireEvent.click(_react.screen.getByText(secondButtonText));
|
|
1958
|
+
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
1959
|
+
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(1);
|
|
1960
|
+
(0, _globals.expect)(onSecondExtChange).toHaveBeenLastCalledWith({
|
|
1961
|
+
fieldPaths: ['ext'],
|
|
1962
|
+
newEntity: defaultFile,
|
|
1963
|
+
oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1964
|
+
ext: EXT_1,
|
|
1965
|
+
path: PATH_1
|
|
1966
|
+
}),
|
|
1967
|
+
newValue: '',
|
|
1968
|
+
oldValue: EXT_1
|
|
1969
|
+
});
|
|
1970
|
+
});
|
|
1219
1971
|
});
|
|
1220
1972
|
(0, _globals.describe)('`useUseCase` should work the same as `useReducers`', function () {
|
|
1221
1973
|
(0, _globals.test)('`entity` should equal `defaultFile`', function () {
|
|
1222
|
-
var
|
|
1974
|
+
var _renderHook28 = (0, _react.renderHook)(function () {
|
|
1223
1975
|
return (0, _.useUseCase)(mathUseCase);
|
|
1224
1976
|
}),
|
|
1225
|
-
result =
|
|
1977
|
+
result = _renderHook28.result;
|
|
1226
1978
|
var reducers = result.current;
|
|
1227
1979
|
(0, _globals.expect)(Array.isArray(reducers)).toBe(false);
|
|
1228
1980
|
});
|
|
1229
1981
|
(0, _globals.test)('returned reducer should work', function () {
|
|
1230
|
-
var
|
|
1982
|
+
var _renderHook29 = (0, _react.renderHook)(function () {
|
|
1231
1983
|
return (0, _.useUseCase)(mathUseCase);
|
|
1232
1984
|
}),
|
|
1233
|
-
result =
|
|
1985
|
+
result = _renderHook29.result;
|
|
1234
1986
|
var reducers = result.current;
|
|
1235
1987
|
var add = reducers.add;
|
|
1236
1988
|
(0, _globals.expect)(add(1, 2)).toBe(3);
|
|
1237
1989
|
});
|
|
1238
1990
|
(0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
|
|
1239
1991
|
var mockUseCase = _globals.jest.fn(mathUseCase);
|
|
1240
|
-
var
|
|
1992
|
+
var _renderHook30 = (0, _react.renderHook)(function () {
|
|
1241
1993
|
return (0, _.useUseCase)(mockUseCase);
|
|
1242
1994
|
}),
|
|
1243
|
-
rerender =
|
|
1995
|
+
rerender = _renderHook30.rerender;
|
|
1244
1996
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
1245
1997
|
rerender();
|
|
1246
1998
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
1247
1999
|
});
|
|
1248
2000
|
(0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
|
|
1249
2001
|
var mockUseCase = _globals.jest.fn(mathUseCase);
|
|
1250
|
-
var
|
|
2002
|
+
var _renderHook31 = (0, _react.renderHook)(function () {
|
|
1251
2003
|
return (0, _.useUseCase)(mockUseCase, {}, [1, 'x']);
|
|
1252
2004
|
}),
|
|
1253
|
-
rerender =
|
|
2005
|
+
rerender = _renderHook31.rerender;
|
|
1254
2006
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
1255
2007
|
rerender();
|
|
1256
2008
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
@@ -1258,10 +2010,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1258
2010
|
(0, _globals.test)('`usecase` should be called if deps has changed', function () {
|
|
1259
2011
|
var i = 0;
|
|
1260
2012
|
var mockUseCase = _globals.jest.fn(mathUseCase);
|
|
1261
|
-
var
|
|
2013
|
+
var _renderHook32 = (0, _react.renderHook)(function () {
|
|
1262
2014
|
return (0, _.useUseCase)(mockUseCase, {}, [i++, 'x']);
|
|
1263
2015
|
}),
|
|
1264
|
-
rerender =
|
|
2016
|
+
rerender = _renderHook32.rerender;
|
|
1265
2017
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
1266
2018
|
rerender();
|
|
1267
2019
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(2);
|
|
@@ -1269,8 +2021,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1269
2021
|
(0, _globals.test)('reducer call should not be cached if component is at rendering phase', function () {
|
|
1270
2022
|
var buttonText = 'button';
|
|
1271
2023
|
var CacheTestComponent = function CacheTestComponent() {
|
|
1272
|
-
var
|
|
1273
|
-
subtraction =
|
|
2024
|
+
var _useUseCase54 = (0, _.useUseCase)(mathUseCase),
|
|
2025
|
+
subtraction = _useUseCase54.subtraction;
|
|
1274
2026
|
var update = (0, _ahooks.useUpdate)();
|
|
1275
2027
|
var onClick = function onClick() {
|
|
1276
2028
|
update();
|
|
@@ -1293,8 +2045,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1293
2045
|
(0, _globals.test)('reducer call should not be cached if component is not at rendering phase', function () {
|
|
1294
2046
|
var buttonText = 'button';
|
|
1295
2047
|
var CacheTestComponent = function CacheTestComponent() {
|
|
1296
|
-
var
|
|
1297
|
-
subtraction =
|
|
2048
|
+
var _useUseCase55 = (0, _.useUseCase)(mathUseCase),
|
|
2049
|
+
subtraction = _useUseCase55.subtraction;
|
|
1298
2050
|
var onClick = function onClick() {
|
|
1299
2051
|
subtraction(5, 3);
|
|
1300
2052
|
};
|
|
@@ -1322,8 +2074,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1322
2074
|
var count = 0;
|
|
1323
2075
|
var buttonText = 'button';
|
|
1324
2076
|
var StringUseCaseTestComponent = function StringUseCaseTestComponent() {
|
|
1325
|
-
var
|
|
1326
|
-
subtraction =
|
|
2077
|
+
var _useUseCase56 = (0, _.useUseCase)(mathUseCase),
|
|
2078
|
+
subtraction = _useUseCase56.subtraction;
|
|
1327
2079
|
var update = (0, _ahooks.useUpdate)();
|
|
1328
2080
|
subtraction(5, count++);
|
|
1329
2081
|
var onUpdate = function onUpdate() {
|
|
@@ -1345,12 +2097,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1345
2097
|
(0, _globals.expect)(subtractionReducer).toHaveReturnedWith(4);
|
|
1346
2098
|
});
|
|
1347
2099
|
(0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
|
|
1348
|
-
var
|
|
2100
|
+
var _renderHook33 = (0, _react.renderHook)(function () {
|
|
1349
2101
|
return (0, _.useUseCase)(mathUseCase, {
|
|
1350
2102
|
extraValue: 5
|
|
1351
2103
|
});
|
|
1352
2104
|
}),
|
|
1353
|
-
result =
|
|
2105
|
+
result = _renderHook33.result;
|
|
1354
2106
|
var reducers = result.current;
|
|
1355
2107
|
var add = reducers.add;
|
|
1356
2108
|
(0, _globals.expect)(add(1, 2)).toBe(8);
|
|
@@ -1358,11 +2110,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1358
2110
|
(0, _globals.test)('when `options` has changed, it should not trigger update', function () {
|
|
1359
2111
|
var onUpdate = _globals.jest.fn();
|
|
1360
2112
|
var onDeepUpdate = _globals.jest.fn();
|
|
1361
|
-
var
|
|
1362
|
-
var
|
|
1363
|
-
|
|
1364
|
-
extraValue =
|
|
1365
|
-
setExtraValue =
|
|
2113
|
+
var _renderHook34 = (0, _react.renderHook)(function () {
|
|
2114
|
+
var _useState11 = (0, _react2.useState)(0),
|
|
2115
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
2116
|
+
extraValue = _useState12[0],
|
|
2117
|
+
setExtraValue = _useState12[1];
|
|
1366
2118
|
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
1367
2119
|
extraValue: extraValue
|
|
1368
2120
|
});
|
|
@@ -1374,7 +2126,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1374
2126
|
}, [reducers]);
|
|
1375
2127
|
return setExtraValue;
|
|
1376
2128
|
}),
|
|
1377
|
-
result =
|
|
2129
|
+
result = _renderHook34.result;
|
|
1378
2130
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1379
2131
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1380
2132
|
(0, _react.act)(function () {
|
|
@@ -1386,11 +2138,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1386
2138
|
(0, _globals.test)('when `deps` change, it should update reducers', function () {
|
|
1387
2139
|
var onUpdate = _globals.jest.fn();
|
|
1388
2140
|
var onDeepUpdate = _globals.jest.fn();
|
|
1389
|
-
var
|
|
1390
|
-
var
|
|
1391
|
-
|
|
1392
|
-
extraValue =
|
|
1393
|
-
setExtraValue =
|
|
2141
|
+
var _renderHook35 = (0, _react.renderHook)(function () {
|
|
2142
|
+
var _useState13 = (0, _react2.useState)(0),
|
|
2143
|
+
_useState14 = (0, _slicedToArray2["default"])(_useState13, 2),
|
|
2144
|
+
extraValue = _useState14[0],
|
|
2145
|
+
setExtraValue = _useState14[1];
|
|
1394
2146
|
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
1395
2147
|
extraValue: extraValue
|
|
1396
2148
|
}, [extraValue]);
|
|
@@ -1402,7 +2154,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1402
2154
|
}, [reducers]);
|
|
1403
2155
|
return setExtraValue;
|
|
1404
2156
|
}),
|
|
1405
|
-
result =
|
|
2157
|
+
result = _renderHook35.result;
|
|
1406
2158
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1407
2159
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1408
2160
|
(0, _react.act)(function () {
|
|
@@ -1414,11 +2166,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1414
2166
|
(0, _globals.test)('empty `deps` should not update reducers', function () {
|
|
1415
2167
|
var onUpdate = _globals.jest.fn();
|
|
1416
2168
|
var onDeepUpdate = _globals.jest.fn();
|
|
1417
|
-
var
|
|
1418
|
-
var
|
|
1419
|
-
|
|
1420
|
-
extraValue =
|
|
1421
|
-
setExtraValue =
|
|
2169
|
+
var _renderHook36 = (0, _react.renderHook)(function () {
|
|
2170
|
+
var _useState15 = (0, _react2.useState)(0),
|
|
2171
|
+
_useState16 = (0, _slicedToArray2["default"])(_useState15, 2),
|
|
2172
|
+
extraValue = _useState16[0],
|
|
2173
|
+
setExtraValue = _useState16[1];
|
|
1422
2174
|
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
1423
2175
|
extraValue: extraValue
|
|
1424
2176
|
}, []);
|
|
@@ -1430,7 +2182,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1430
2182
|
}, [reducers]);
|
|
1431
2183
|
return setExtraValue;
|
|
1432
2184
|
}),
|
|
1433
|
-
result =
|
|
2185
|
+
result = _renderHook36.result;
|
|
1434
2186
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1435
2187
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1436
2188
|
(0, _react.act)(function () {
|