@mic-rexjs/usecases-react 2.3.2 → 2.3.5
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/hooks/useEntity/index.js +12 -14
- package/es/hooks/useUseCase/index.js +8 -3
- package/es/hooks/useUseCase/index.test.js +140 -184
- package/es/methods/captureCalls/index.d.ts +2 -0
- package/es/methods/captureCalls/index.js +14 -0
- package/es/methods/captureCalls/types.d.ts +4 -0
- package/lib/hooks/useEntity/index.js +13 -14
- package/lib/hooks/useUseCase/index.js +9 -2
- package/lib/hooks/useUseCase/index.test.js +292 -347
- package/lib/methods/captureCalls/index.js +23 -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/methods/triggerCallbacks/index.d.ts +0 -2
- package/es/methods/triggerCallbacks/index.js +0 -5
- package/lib/components/UpdateFragment/index.js +0 -15
- package/lib/methods/triggerCallbacks/index.js +0 -11
- /package/es/{components/UpdateFragment → methods/captureCalls}/types.js +0 -0
- /package/lib/{components/UpdateFragment → methods/captureCalls}/types.js +0 -0
|
@@ -36,7 +36,8 @@ var fileUseCase = function fileUseCase() {
|
|
|
36
36
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
37
37
|
var entityReducers = (0, _usecases.objectUseCase)();
|
|
38
38
|
var _options$pathPrefix = options.pathPrefix,
|
|
39
|
-
pathPrefix = _options$pathPrefix === void 0 ? '' : _options$pathPrefix
|
|
39
|
+
pathPrefix = _options$pathPrefix === void 0 ? '' : _options$pathPrefix,
|
|
40
|
+
onPathChange = options.onPathChange;
|
|
40
41
|
var init = function init(entity) {
|
|
41
42
|
var newEntity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultFile;
|
|
42
43
|
return /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
@@ -56,15 +57,20 @@ var fileUseCase = function fileUseCase() {
|
|
|
56
57
|
};
|
|
57
58
|
var setPath = /*#__PURE__*/_regenerator["default"].mark(function setPath(entity, path) {
|
|
58
59
|
var _path$match;
|
|
60
|
+
var oldPath, newPath;
|
|
59
61
|
return _regenerator["default"].wrap(function setPath$(_context2) {
|
|
60
62
|
while (1) switch (_context2.prev = _context2.next) {
|
|
61
63
|
case 0:
|
|
62
|
-
|
|
64
|
+
oldPath = entity.path;
|
|
65
|
+
newPath = pathPrefix + path;
|
|
66
|
+
_context2.next = 4;
|
|
63
67
|
return _objectSpread(_objectSpread({}, entity), {}, {
|
|
64
|
-
path:
|
|
68
|
+
path: newPath,
|
|
65
69
|
ext: ((_path$match = path.match(/\.[^.]+$/)) === null || _path$match === void 0 ? void 0 : _path$match[0]) || ''
|
|
66
70
|
});
|
|
67
|
-
case
|
|
71
|
+
case 4:
|
|
72
|
+
onPathChange === null || onPathChange === void 0 || onPathChange(newPath, oldPath);
|
|
73
|
+
case 5:
|
|
68
74
|
case "end":
|
|
69
75
|
return _context2.stop();
|
|
70
76
|
}
|
|
@@ -606,15 +612,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
606
612
|
ext: EXT_1
|
|
607
613
|
}), defaultFile);
|
|
608
614
|
});
|
|
609
|
-
(0, _globals.test)('`options.onChange` should
|
|
615
|
+
(0, _globals.test)('`options.onChange` should always trigger the latest one', function () {
|
|
610
616
|
var onChange1 = _globals.jest.fn();
|
|
611
617
|
var onChange2 = _globals.jest.fn();
|
|
612
618
|
var onChange = onChange1;
|
|
613
|
-
var deps = [1];
|
|
614
619
|
var _renderHook13 = (0, _react.renderHook)(function () {
|
|
615
620
|
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
616
621
|
onChange: onChange
|
|
617
|
-
},
|
|
622
|
+
}, []);
|
|
618
623
|
}),
|
|
619
624
|
result = _renderHook13.result;
|
|
620
625
|
var cores = result.current;
|
|
@@ -624,7 +629,6 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
624
629
|
(0, _globals.expect)(onChange1).toHaveBeenCalledTimes(0);
|
|
625
630
|
(0, _react.act)(function () {
|
|
626
631
|
setPath(PATH_1);
|
|
627
|
-
deps = [2];
|
|
628
632
|
onChange = onChange2;
|
|
629
633
|
});
|
|
630
634
|
(0, _globals.expect)(onChange2).toHaveBeenCalledTimes(0);
|
|
@@ -646,46 +650,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
646
650
|
ext: EXT_1
|
|
647
651
|
}));
|
|
648
652
|
});
|
|
649
|
-
(0, _globals.test)('`options.onChange` should not be updated if `deps` has not changed', function () {
|
|
650
|
-
var onChange1 = _globals.jest.fn();
|
|
651
|
-
var onChange2 = _globals.jest.fn();
|
|
652
|
-
var onChange = onChange1;
|
|
653
|
-
var _renderHook14 = (0, _react.renderHook)(function () {
|
|
654
|
-
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
655
|
-
onChange: onChange
|
|
656
|
-
}, []);
|
|
657
|
-
}),
|
|
658
|
-
result = _renderHook14.result;
|
|
659
|
-
var cores = result.current;
|
|
660
|
-
var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
|
|
661
|
-
reducers = _cores12[1];
|
|
662
|
-
var setPath = reducers.setPath;
|
|
663
|
-
(0, _globals.expect)(onChange1).toHaveBeenCalledTimes(0);
|
|
664
|
-
(0, _react.act)(function () {
|
|
665
|
-
setPath(PATH_1);
|
|
666
|
-
onChange = onChange2;
|
|
667
|
-
});
|
|
668
|
-
(0, _globals.expect)(onChange2).toHaveBeenCalledTimes(0);
|
|
669
|
-
(0, _globals.expect)(onChange1).toHaveBeenCalledTimes(1);
|
|
670
|
-
(0, _globals.expect)(onChange1).toHaveBeenLastCalledWith(_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
671
|
-
path: PATH_1,
|
|
672
|
-
ext: EXT_1
|
|
673
|
-
}), defaultFile);
|
|
674
|
-
(0, _react.act)(function () {
|
|
675
|
-
setPath(PATH_2);
|
|
676
|
-
});
|
|
677
|
-
(0, _globals.expect)(onChange2).toHaveBeenCalledTimes(0);
|
|
678
|
-
(0, _globals.expect)(onChange1).toHaveBeenCalledTimes(2);
|
|
679
|
-
(0, _globals.expect)(onChange1).toHaveBeenLastCalledWith(_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
680
|
-
path: PATH_2,
|
|
681
|
-
ext: EXT_2
|
|
682
|
-
}), _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
683
|
-
path: PATH_1,
|
|
684
|
-
ext: EXT_1
|
|
685
|
-
}));
|
|
686
|
-
});
|
|
687
653
|
(0, _globals.test)('`options.options` should override rest options', function () {
|
|
688
|
-
var
|
|
654
|
+
var _renderHook14 = (0, _react.renderHook)(function () {
|
|
689
655
|
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
690
656
|
pathPrefix: 'xyz/',
|
|
691
657
|
options: {
|
|
@@ -693,11 +659,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
693
659
|
}
|
|
694
660
|
});
|
|
695
661
|
}),
|
|
696
|
-
result =
|
|
662
|
+
result = _renderHook14.result;
|
|
697
663
|
var cores = result.current;
|
|
698
|
-
var
|
|
699
|
-
path =
|
|
700
|
-
reducers =
|
|
664
|
+
var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
|
|
665
|
+
path = _cores12[0].path,
|
|
666
|
+
reducers = _cores12[1];
|
|
701
667
|
var setPath = reducers.setPath;
|
|
702
668
|
(0, _globals.expect)(path).toBe('');
|
|
703
669
|
(0, _react.act)(function () {
|
|
@@ -708,7 +674,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
708
674
|
(0, _globals.test)('when `options` has changed, it should not trigger update', function () {
|
|
709
675
|
var onUpdate = _globals.jest.fn();
|
|
710
676
|
var onDeepUpdate = _globals.jest.fn();
|
|
711
|
-
var
|
|
677
|
+
var _renderHook15 = (0, _react.renderHook)(function () {
|
|
712
678
|
var _useState = (0, _react2.useState)('user/'),
|
|
713
679
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
714
680
|
pathPrefix = _useState2[0],
|
|
@@ -724,7 +690,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
724
690
|
}, [context]);
|
|
725
691
|
return setPathPrefix;
|
|
726
692
|
}),
|
|
727
|
-
result =
|
|
693
|
+
result = _renderHook15.result;
|
|
728
694
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
729
695
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
730
696
|
(0, _react.act)(function () {
|
|
@@ -733,42 +699,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
733
699
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
734
700
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
735
701
|
});
|
|
736
|
-
(0, _globals.test)('when `entity` change, it should trigger watchers', function () {
|
|
737
|
-
var onPathChange = _globals.jest.fn();
|
|
738
|
-
var onSizeChange = _globals.jest.fn();
|
|
739
|
-
var _renderHook17 = (0, _react.renderHook)(function () {
|
|
740
|
-
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
741
|
-
watch: {
|
|
742
|
-
path: onPathChange,
|
|
743
|
-
size: onSizeChange
|
|
744
|
-
}
|
|
745
|
-
});
|
|
746
|
-
}),
|
|
747
|
-
result = _renderHook17.result;
|
|
748
|
-
var cores = result.current;
|
|
749
|
-
var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
|
|
750
|
-
setPath = _cores14[1].setPath;
|
|
751
|
-
(0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(0);
|
|
752
|
-
(0, _react.act)(function () {
|
|
753
|
-
setPath(PATH_1);
|
|
754
|
-
});
|
|
755
|
-
(0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(1);
|
|
756
|
-
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
|
|
757
|
-
(0, _globals.expect)(onPathChange).toHaveBeenLastCalledWith({
|
|
758
|
-
fieldPaths: ['path'],
|
|
759
|
-
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
760
|
-
path: PATH_1,
|
|
761
|
-
ext: EXT_1
|
|
762
|
-
}),
|
|
763
|
-
oldEntity: defaultFile,
|
|
764
|
-
newValue: PATH_1,
|
|
765
|
-
oldValue: ''
|
|
766
|
-
});
|
|
767
|
-
});
|
|
768
702
|
(0, _globals.test)('when `deps` has changed, it should trigger update', function () {
|
|
769
703
|
var onUpdate = _globals.jest.fn();
|
|
770
704
|
var onDeepUpdate = _globals.jest.fn();
|
|
771
|
-
var
|
|
705
|
+
var _renderHook16 = (0, _react.renderHook)(function () {
|
|
772
706
|
var _useState3 = (0, _react2.useState)('user/'),
|
|
773
707
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
774
708
|
pathPrefix = _useState4[0],
|
|
@@ -784,7 +718,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
784
718
|
}, [context]);
|
|
785
719
|
return setPathPrefix;
|
|
786
720
|
}),
|
|
787
|
-
result =
|
|
721
|
+
result = _renderHook16.result;
|
|
788
722
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
789
723
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
790
724
|
(0, _react.act)(function () {
|
|
@@ -796,7 +730,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
796
730
|
(0, _globals.test)('empty `deps` should not trigger update', function () {
|
|
797
731
|
var onUpdate = _globals.jest.fn();
|
|
798
732
|
var onDeepUpdate = _globals.jest.fn();
|
|
799
|
-
var
|
|
733
|
+
var _renderHook17 = (0, _react.renderHook)(function () {
|
|
800
734
|
var _useState5 = (0, _react2.useState)('user/'),
|
|
801
735
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
802
736
|
pathPrefix = _useState6[0],
|
|
@@ -812,7 +746,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
812
746
|
}, [context]);
|
|
813
747
|
return setPathPrefix;
|
|
814
748
|
}),
|
|
815
|
-
result =
|
|
749
|
+
result = _renderHook17.result;
|
|
816
750
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
817
751
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
818
752
|
(0, _react.act)(function () {
|
|
@@ -821,35 +755,55 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
821
755
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
822
756
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
823
757
|
});
|
|
824
|
-
(0, _globals.test)(
|
|
758
|
+
(0, _globals.test)("should call latest functions of usecase options even deps has not change", function () {
|
|
825
759
|
var onPathChange1 = _globals.jest.fn();
|
|
826
760
|
var onPathChange2 = _globals.jest.fn();
|
|
827
761
|
var onPathChange = onPathChange1;
|
|
828
|
-
var
|
|
829
|
-
|
|
762
|
+
var _renderHook18 = (0, _react.renderHook)(function () {
|
|
763
|
+
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
764
|
+
onPathChange: onPathChange
|
|
765
|
+
});
|
|
766
|
+
}),
|
|
767
|
+
result = _renderHook18.result;
|
|
768
|
+
var context = result.current;
|
|
769
|
+
var _context6 = (0, _slicedToArray2["default"])(context, 2),
|
|
770
|
+
setPath = _context6[1].setPath;
|
|
771
|
+
(0, _react.act)(function () {
|
|
772
|
+
setPath(PATH_1);
|
|
773
|
+
onPathChange = onPathChange2;
|
|
774
|
+
});
|
|
775
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(1);
|
|
776
|
+
(0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(0);
|
|
777
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenLastCalledWith(PATH_1, '');
|
|
778
|
+
(0, _react.act)(function () {
|
|
779
|
+
setPath(PATH_2);
|
|
780
|
+
});
|
|
781
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(1);
|
|
782
|
+
(0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(1);
|
|
783
|
+
(0, _globals.expect)(onPathChange2).toHaveBeenLastCalledWith(PATH_2, PATH_1);
|
|
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 () {
|
|
830
789
|
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
831
790
|
watch: {
|
|
832
|
-
path: onPathChange
|
|
791
|
+
path: onPathChange,
|
|
792
|
+
size: onSizeChange
|
|
833
793
|
}
|
|
834
|
-
}
|
|
794
|
+
});
|
|
835
795
|
}),
|
|
836
|
-
result =
|
|
796
|
+
result = _renderHook19.result;
|
|
837
797
|
var cores = result.current;
|
|
838
|
-
var
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
setEntity = _cores15$.setEntity;
|
|
842
|
-
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(0);
|
|
798
|
+
var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
|
|
799
|
+
setPath = _cores13[1].setPath;
|
|
800
|
+
(0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(0);
|
|
843
801
|
(0, _react.act)(function () {
|
|
844
802
|
setPath(PATH_1);
|
|
845
|
-
setEntity({
|
|
846
|
-
size: 5000
|
|
847
|
-
});
|
|
848
|
-
deps = [2];
|
|
849
|
-
onPathChange = onPathChange2;
|
|
850
803
|
});
|
|
851
|
-
(0, _globals.expect)(
|
|
852
|
-
(0, _globals.expect)(
|
|
804
|
+
(0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(1);
|
|
805
|
+
(0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
|
|
806
|
+
(0, _globals.expect)(onPathChange).toHaveBeenLastCalledWith({
|
|
853
807
|
fieldPaths: ['path'],
|
|
854
808
|
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
855
809
|
path: PATH_1,
|
|
@@ -859,42 +813,24 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
859
813
|
newValue: PATH_1,
|
|
860
814
|
oldValue: ''
|
|
861
815
|
});
|
|
862
|
-
(0, _react.act)(function () {
|
|
863
|
-
setPath('');
|
|
864
|
-
});
|
|
865
|
-
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(1);
|
|
866
|
-
(0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(1);
|
|
867
|
-
(0, _globals.expect)(onPathChange2).toHaveBeenLastCalledWith({
|
|
868
|
-
fieldPaths: ['path'],
|
|
869
|
-
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
870
|
-
size: 5000
|
|
871
|
-
}),
|
|
872
|
-
oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
873
|
-
path: PATH_1,
|
|
874
|
-
ext: EXT_1,
|
|
875
|
-
size: 5000
|
|
876
|
-
}),
|
|
877
|
-
newValue: '',
|
|
878
|
-
oldValue: PATH_1
|
|
879
|
-
});
|
|
880
816
|
});
|
|
881
|
-
(0, _globals.test)('`options.watch` should
|
|
817
|
+
(0, _globals.test)('`options.watch` should trigger the latest one', function () {
|
|
882
818
|
var onPathChange1 = _globals.jest.fn();
|
|
883
819
|
var onPathChange2 = _globals.jest.fn();
|
|
884
820
|
var onPathChange = onPathChange1;
|
|
885
|
-
var
|
|
821
|
+
var _renderHook20 = (0, _react.renderHook)(function () {
|
|
886
822
|
return (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
887
823
|
watch: {
|
|
888
824
|
path: onPathChange
|
|
889
825
|
}
|
|
890
|
-
}
|
|
826
|
+
});
|
|
891
827
|
}),
|
|
892
|
-
result =
|
|
828
|
+
result = _renderHook20.result;
|
|
893
829
|
var cores = result.current;
|
|
894
|
-
var
|
|
895
|
-
|
|
896
|
-
setPath =
|
|
897
|
-
setEntity =
|
|
830
|
+
var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
|
|
831
|
+
_cores14$ = _cores14[1],
|
|
832
|
+
setPath = _cores14$.setPath,
|
|
833
|
+
setEntity = _cores14$.setEntity;
|
|
898
834
|
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(0);
|
|
899
835
|
(0, _react.act)(function () {
|
|
900
836
|
setPath(PATH_1);
|
|
@@ -917,9 +853,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
917
853
|
(0, _react.act)(function () {
|
|
918
854
|
setPath('');
|
|
919
855
|
});
|
|
920
|
-
(0, _globals.expect)(
|
|
921
|
-
(0, _globals.expect)(
|
|
922
|
-
(0, _globals.expect)(
|
|
856
|
+
(0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(1);
|
|
857
|
+
(0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(1);
|
|
858
|
+
(0, _globals.expect)(onPathChange2).toHaveBeenLastCalledWith({
|
|
923
859
|
fieldPaths: ['path'],
|
|
924
860
|
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
925
861
|
size: 5000
|
|
@@ -936,7 +872,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
936
872
|
(0, _globals.test)('`options.watch` should work with array field path of array', function () {
|
|
937
873
|
var onExtChange = _globals.jest.fn();
|
|
938
874
|
var onSizeChange = _globals.jest.fn();
|
|
939
|
-
var
|
|
875
|
+
var _renderHook21 = (0, _react.renderHook)(function () {
|
|
940
876
|
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
941
877
|
watch: {
|
|
942
878
|
'list.ext': onExtChange,
|
|
@@ -944,10 +880,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
944
880
|
}
|
|
945
881
|
});
|
|
946
882
|
}),
|
|
947
|
-
result =
|
|
883
|
+
result = _renderHook21.result;
|
|
948
884
|
var cores = result.current;
|
|
949
|
-
var
|
|
950
|
-
setEntity =
|
|
885
|
+
var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
|
|
886
|
+
setEntity = _cores15[1].setEntity;
|
|
951
887
|
(0, _react.act)(function () {
|
|
952
888
|
setEntity({
|
|
953
889
|
list: [defaultFile]
|
|
@@ -1232,7 +1168,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1232
1168
|
var lengthUseCase = function lengthUseCase() {
|
|
1233
1169
|
return (0, _usecases.entityUseCase)();
|
|
1234
1170
|
};
|
|
1235
|
-
var
|
|
1171
|
+
var _renderHook22 = (0, _react.renderHook)(function () {
|
|
1236
1172
|
return (0, _.useUseCase)([], lengthUseCase, {
|
|
1237
1173
|
watch: {
|
|
1238
1174
|
length: onEntityLengthChange,
|
|
@@ -1240,10 +1176,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1240
1176
|
}
|
|
1241
1177
|
});
|
|
1242
1178
|
}),
|
|
1243
|
-
result =
|
|
1179
|
+
result = _renderHook22.result;
|
|
1244
1180
|
var cores = result.current;
|
|
1245
|
-
var
|
|
1246
|
-
setEntity =
|
|
1181
|
+
var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1182
|
+
setEntity = _cores16[1].setEntity;
|
|
1247
1183
|
(0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledTimes(0);
|
|
1248
1184
|
(0, _globals.expect)(onListLengthChange).toHaveBeenCalledTimes(0);
|
|
1249
1185
|
(0, _react.act)(function () {
|
|
@@ -1274,17 +1210,17 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1274
1210
|
});
|
|
1275
1211
|
(0, _globals.test)('`options.watch` should work with field path of nested array', function () {
|
|
1276
1212
|
var onChange = _globals.jest.fn();
|
|
1277
|
-
var
|
|
1213
|
+
var _renderHook23 = (0, _react.renderHook)(function () {
|
|
1278
1214
|
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
1279
1215
|
watch: {
|
|
1280
1216
|
'nestedList.size': onChange
|
|
1281
1217
|
}
|
|
1282
1218
|
});
|
|
1283
1219
|
}),
|
|
1284
|
-
result =
|
|
1220
|
+
result = _renderHook23.result;
|
|
1285
1221
|
var cores = result.current;
|
|
1286
|
-
var
|
|
1287
|
-
setEntity =
|
|
1222
|
+
var _cores17 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1223
|
+
setEntity = _cores17[1].setEntity;
|
|
1288
1224
|
(0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
|
|
1289
1225
|
(0, _react.act)(function () {
|
|
1290
1226
|
setEntity({
|
|
@@ -1368,7 +1304,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1368
1304
|
(0, _globals.test)('`options.watch` should work with field path of object', function () {
|
|
1369
1305
|
var onExtChange = _globals.jest.fn();
|
|
1370
1306
|
var onSizeChange = _globals.jest.fn();
|
|
1371
|
-
var
|
|
1307
|
+
var _renderHook24 = (0, _react.renderHook)(function () {
|
|
1372
1308
|
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
1373
1309
|
watch: {
|
|
1374
1310
|
'obj.file.ext': onExtChange,
|
|
@@ -1376,10 +1312,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1376
1312
|
}
|
|
1377
1313
|
});
|
|
1378
1314
|
}),
|
|
1379
|
-
result =
|
|
1315
|
+
result = _renderHook24.result;
|
|
1380
1316
|
var cores = result.current;
|
|
1381
|
-
var
|
|
1382
|
-
setEntity =
|
|
1317
|
+
var _cores18 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1318
|
+
setEntity = _cores18[1].setEntity;
|
|
1383
1319
|
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(0);
|
|
1384
1320
|
(0, _react.act)(function () {
|
|
1385
1321
|
setEntity({
|
|
@@ -1479,28 +1415,28 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1479
1415
|
});
|
|
1480
1416
|
(0, _globals.describe)('`useUseCase` should work the same as `ModeCoreCollectionHook`', function () {
|
|
1481
1417
|
_globals.test.each([_UseCaseModes.UseCaseModes.Normal, _UseCaseModes.UseCaseModes.Stateless])('[mode=%s]: check context type', function (mode) {
|
|
1482
|
-
var
|
|
1418
|
+
var _renderHook25 = (0, _react.renderHook)(function () {
|
|
1483
1419
|
return (0, _.useUseCase)(defaultFile, fileUseCase, mode);
|
|
1484
1420
|
}),
|
|
1485
|
-
result =
|
|
1421
|
+
result = _renderHook25.result;
|
|
1486
1422
|
var cores = result.current;
|
|
1487
1423
|
(0, _globals.expect)(Array.isArray(cores)).toBe(true);
|
|
1488
1424
|
(0, _globals.expect)(cores).toHaveLength(3);
|
|
1489
1425
|
});
|
|
1490
1426
|
(0, _globals.test)('stateless mode should not generate new reducers when `yeild entity`', function () {
|
|
1491
1427
|
var onUpdate = _globals.jest.fn();
|
|
1492
|
-
var
|
|
1428
|
+
var _renderHook26 = (0, _react.renderHook)(function () {
|
|
1493
1429
|
var file = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
|
|
1494
1430
|
(0, _ahooks.useUpdateEffect)(function () {
|
|
1495
1431
|
onUpdate();
|
|
1496
1432
|
});
|
|
1497
1433
|
return (0, _.useUseCase)(file, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
|
|
1498
1434
|
}),
|
|
1499
|
-
result =
|
|
1500
|
-
rerender =
|
|
1435
|
+
result = _renderHook26.result,
|
|
1436
|
+
rerender = _renderHook26.rerender;
|
|
1501
1437
|
var cores = result.current;
|
|
1502
|
-
var
|
|
1503
|
-
setPath =
|
|
1438
|
+
var _cores19 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1439
|
+
setPath = _cores19[1].setPath;
|
|
1504
1440
|
setPath(PATH_1);
|
|
1505
1441
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1506
1442
|
(0, _globals.expect)(result.current[0].path).toBe('');
|
|
@@ -1513,16 +1449,16 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1513
1449
|
});
|
|
1514
1450
|
(0, _globals.test)('stateless mode should not trigger update when after `yield entity`', function () {
|
|
1515
1451
|
var onUpdate = _globals.jest.fn();
|
|
1516
|
-
var
|
|
1452
|
+
var _renderHook27 = (0, _react.renderHook)(function () {
|
|
1517
1453
|
(0, _ahooks.useUpdateEffect)(function () {
|
|
1518
1454
|
onUpdate();
|
|
1519
1455
|
});
|
|
1520
1456
|
return (0, _.useUseCase)(defaultFile, fileUseCase, _UseCaseModes.UseCaseModes.Stateless);
|
|
1521
1457
|
}),
|
|
1522
|
-
result =
|
|
1458
|
+
result = _renderHook27.result;
|
|
1523
1459
|
var cores = result.current;
|
|
1524
|
-
var
|
|
1525
|
-
reducers =
|
|
1460
|
+
var _cores20 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1461
|
+
reducers = _cores20[1];
|
|
1526
1462
|
var setPath = reducers.setPath;
|
|
1527
1463
|
(0, _react.act)(function () {
|
|
1528
1464
|
setPath(PATH_1);
|
|
@@ -1751,130 +1687,6 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1751
1687
|
_react.fireEvent.click(_react.screen.getByText(updateButtonText));
|
|
1752
1688
|
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
|
|
1753
1689
|
});
|
|
1754
|
-
_globals.test.each([_UseCaseModes.UseCaseModes.Normal, _UseCaseModes.UseCaseModes.Stateless])('[mode=%s]: `options.watch` should be updated in child element after `deps` changed', function (mode) {
|
|
1755
|
-
var onFirstExtChange = _globals.jest.fn();
|
|
1756
|
-
var onSecondExtChange = _globals.jest.fn();
|
|
1757
|
-
var onExtChange = onFirstExtChange;
|
|
1758
|
-
var deps = [1];
|
|
1759
|
-
var firstButtonText = 'first button';
|
|
1760
|
-
var secondButtonText = 'second button';
|
|
1761
|
-
var A = function A() {
|
|
1762
|
-
(0, _.useUseCase)(fileUseCase, {
|
|
1763
|
-
watch: {
|
|
1764
|
-
ext: onExtChange
|
|
1765
|
-
}
|
|
1766
|
-
}, deps);
|
|
1767
|
-
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1768
|
-
};
|
|
1769
|
-
var B = function B() {
|
|
1770
|
-
var _useState7 = (0, _react2.useState)(defaultFile),
|
|
1771
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
1772
|
-
file = _useState8[0],
|
|
1773
|
-
setFile = _useState8[1];
|
|
1774
|
-
var _useUseCase38 = (0, _.useUseCase)(file, fileUseCase, mode, {
|
|
1775
|
-
onChange: function onChange(newFile) {
|
|
1776
|
-
if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
|
|
1777
|
-
return;
|
|
1778
|
-
}
|
|
1779
|
-
// `stateless` 不会保存状态,所以需要手动保存
|
|
1780
|
-
setFile(newFile);
|
|
1781
|
-
}
|
|
1782
|
-
}),
|
|
1783
|
-
_useUseCase39 = (0, _slicedToArray2["default"])(_useUseCase38, 3),
|
|
1784
|
-
setPath = _useUseCase39[1].setPath,
|
|
1785
|
-
Provider = _useUseCase39[2];
|
|
1786
|
-
var onFirstClick = function onFirstClick() {
|
|
1787
|
-
setPath(PATH_1);
|
|
1788
|
-
deps = [2];
|
|
1789
|
-
onExtChange = onSecondExtChange;
|
|
1790
|
-
};
|
|
1791
|
-
var onSecondClick = function onSecondClick() {
|
|
1792
|
-
setPath('');
|
|
1793
|
-
};
|
|
1794
|
-
return (0, _jsxRuntime.jsxs)(Provider, {
|
|
1795
|
-
children: [(0, _jsxRuntime.jsx)(A, {}), (0, _jsxRuntime.jsx)("button", {
|
|
1796
|
-
onClick: onFirstClick,
|
|
1797
|
-
children: firstButtonText
|
|
1798
|
-
}), (0, _jsxRuntime.jsx)("button", {
|
|
1799
|
-
onClick: onSecondClick,
|
|
1800
|
-
children: secondButtonText
|
|
1801
|
-
})]
|
|
1802
|
-
});
|
|
1803
|
-
};
|
|
1804
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1805
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(0);
|
|
1806
|
-
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
1807
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
1808
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(0);
|
|
1809
|
-
_react.fireEvent.click(_react.screen.getByText(secondButtonText));
|
|
1810
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
1811
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(1);
|
|
1812
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenLastCalledWith({
|
|
1813
|
-
fieldPaths: ['ext'],
|
|
1814
|
-
newEntity: defaultFile,
|
|
1815
|
-
oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1816
|
-
ext: EXT_1,
|
|
1817
|
-
path: PATH_1
|
|
1818
|
-
}),
|
|
1819
|
-
newValue: '',
|
|
1820
|
-
oldValue: EXT_1
|
|
1821
|
-
});
|
|
1822
|
-
});
|
|
1823
|
-
_globals.test.each([_UseCaseModes.UseCaseModes.Normal, _UseCaseModes.UseCaseModes.Stateless])('`options.watch` should not be updated in child element if `deps` has not changed', function (mode) {
|
|
1824
|
-
var onFirstExtChange = _globals.jest.fn();
|
|
1825
|
-
var onSecondExtChange = _globals.jest.fn();
|
|
1826
|
-
var onExtChange = onFirstExtChange;
|
|
1827
|
-
var firstButtonText = 'first button';
|
|
1828
|
-
var secondButtonText = 'second button';
|
|
1829
|
-
var A = function A() {
|
|
1830
|
-
(0, _.useUseCase)(fileUseCase, {
|
|
1831
|
-
watch: {
|
|
1832
|
-
ext: onExtChange
|
|
1833
|
-
}
|
|
1834
|
-
}, []);
|
|
1835
|
-
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1836
|
-
};
|
|
1837
|
-
var B = function B() {
|
|
1838
|
-
var _useUseCase40 = (0, _.useUseCase)(defaultFile, fileUseCase, mode),
|
|
1839
|
-
_useUseCase41 = (0, _slicedToArray2["default"])(_useUseCase40, 3),
|
|
1840
|
-
setPath = _useUseCase41[1].setPath,
|
|
1841
|
-
Provider = _useUseCase41[2];
|
|
1842
|
-
var onFirstClick = function onFirstClick() {
|
|
1843
|
-
setPath(PATH_1);
|
|
1844
|
-
onExtChange = onSecondExtChange;
|
|
1845
|
-
};
|
|
1846
|
-
var onSecondClick = function onSecondClick() {
|
|
1847
|
-
setPath('');
|
|
1848
|
-
};
|
|
1849
|
-
return (0, _jsxRuntime.jsxs)(Provider, {
|
|
1850
|
-
children: [(0, _jsxRuntime.jsx)(A, {}), (0, _jsxRuntime.jsx)("button", {
|
|
1851
|
-
onClick: onFirstClick,
|
|
1852
|
-
children: firstButtonText
|
|
1853
|
-
}), (0, _jsxRuntime.jsx)("button", {
|
|
1854
|
-
onClick: onSecondClick,
|
|
1855
|
-
children: secondButtonText
|
|
1856
|
-
})]
|
|
1857
|
-
});
|
|
1858
|
-
};
|
|
1859
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1860
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(0);
|
|
1861
|
-
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
1862
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
1863
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(0);
|
|
1864
|
-
_react.fireEvent.click(_react.screen.getByText(secondButtonText));
|
|
1865
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(2);
|
|
1866
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(0);
|
|
1867
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenLastCalledWith({
|
|
1868
|
-
fieldPaths: ['ext'],
|
|
1869
|
-
newEntity: defaultFile,
|
|
1870
|
-
oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1871
|
-
ext: EXT_1,
|
|
1872
|
-
path: PATH_1
|
|
1873
|
-
}),
|
|
1874
|
-
newValue: '',
|
|
1875
|
-
oldValue: EXT_1
|
|
1876
|
-
});
|
|
1877
|
-
});
|
|
1878
1690
|
(0, _globals.test)('`options.onChange` event should be trigger in orders', function () {
|
|
1879
1691
|
var changeTimes = 0;
|
|
1880
1692
|
var updateChangeTimes = function updateChangeTimes() {
|
|
@@ -1900,12 +1712,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1900
1712
|
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1901
1713
|
};
|
|
1902
1714
|
var C = function C() {
|
|
1903
|
-
var
|
|
1715
|
+
var _useUseCase38 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
1904
1716
|
onChange: onChangeC
|
|
1905
1717
|
}),
|
|
1906
|
-
|
|
1907
|
-
setPath =
|
|
1908
|
-
Provider =
|
|
1718
|
+
_useUseCase39 = (0, _slicedToArray2["default"])(_useUseCase38, 3),
|
|
1719
|
+
setPath = _useUseCase39[1].setPath,
|
|
1720
|
+
Provider = _useUseCase39[2];
|
|
1909
1721
|
var onFirstClick = function onFirstClick() {
|
|
1910
1722
|
setPath(PATH_1);
|
|
1911
1723
|
};
|
|
@@ -1925,32 +1737,95 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1925
1737
|
(0, _globals.expect)(onChangeB).toHaveReturnedWith(1);
|
|
1926
1738
|
(0, _globals.expect)(onChangeC).toHaveReturnedWith(3);
|
|
1927
1739
|
});
|
|
1928
|
-
(
|
|
1929
|
-
var
|
|
1740
|
+
_globals.test.each([_UseCaseModes.UseCaseModes.Normal, _UseCaseModes.UseCaseModes.Stateless])('[mode=%s]: `options.onChange` should always trigger the latest one in child components', function (mode) {
|
|
1741
|
+
var onFirstChange = _globals.jest.fn();
|
|
1742
|
+
var onSecondChange = _globals.jest.fn();
|
|
1743
|
+
var onChange = onFirstChange;
|
|
1930
1744
|
var firstButtonText = 'first button';
|
|
1745
|
+
var secondButtonText = 'second button';
|
|
1931
1746
|
var A = function A() {
|
|
1932
|
-
(0, _.useUseCase)(fileUseCase, {
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1938
|
-
};
|
|
1939
|
-
var B = function B() {
|
|
1940
|
-
var _useUseCase44 = (0, _.useUseCase)(defaultFile, fileUseCase, {}),
|
|
1941
|
-
_useUseCase45 = (0, _slicedToArray2["default"])(_useUseCase44, 3),
|
|
1942
|
-
setPath = _useUseCase45[1].setPath,
|
|
1943
|
-
Provider = _useUseCase45[2];
|
|
1747
|
+
var _useUseCase40 = (0, _.useUseCase)(fileUseCase, {
|
|
1748
|
+
onChange: onChange
|
|
1749
|
+
}),
|
|
1750
|
+
_useUseCase41 = (0, _slicedToArray2["default"])(_useUseCase40, 2),
|
|
1751
|
+
setPath = _useUseCase41[1].setPath;
|
|
1944
1752
|
var onFirstClick = function onFirstClick() {
|
|
1945
1753
|
setPath(PATH_1);
|
|
1754
|
+
onChange = onSecondChange;
|
|
1946
1755
|
};
|
|
1947
|
-
|
|
1948
|
-
|
|
1756
|
+
var onSecondClick = function onSecondClick() {
|
|
1757
|
+
setPath('');
|
|
1758
|
+
};
|
|
1759
|
+
return (0, _jsxRuntime.jsxs)(_react2.Fragment, {
|
|
1760
|
+
children: [(0, _jsxRuntime.jsx)("button", {
|
|
1949
1761
|
onClick: onFirstClick,
|
|
1950
1762
|
children: firstButtonText
|
|
1763
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
1764
|
+
onClick: onSecondClick,
|
|
1765
|
+
children: secondButtonText
|
|
1951
1766
|
})]
|
|
1952
1767
|
});
|
|
1953
1768
|
};
|
|
1769
|
+
var B = function B() {
|
|
1770
|
+
var _useState7 = (0, _react2.useState)(defaultFile),
|
|
1771
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
1772
|
+
file = _useState8[0],
|
|
1773
|
+
setFile = _useState8[1];
|
|
1774
|
+
var _useUseCase42 = (0, _.useUseCase)(file, fileUseCase, mode, {
|
|
1775
|
+
onChange: function onChange(newFile) {
|
|
1776
|
+
if ((mode & _UseCaseModes.UseCaseModes.Stateless) !== _UseCaseModes.UseCaseModes.Stateless) {
|
|
1777
|
+
return;
|
|
1778
|
+
}
|
|
1779
|
+
// `stateless` 不会保存状态,所以需要手动保存
|
|
1780
|
+
setFile(newFile);
|
|
1781
|
+
}
|
|
1782
|
+
}),
|
|
1783
|
+
_useUseCase43 = (0, _slicedToArray2["default"])(_useUseCase42, 3),
|
|
1784
|
+
Provider = _useUseCase43[2];
|
|
1785
|
+
return (0, _jsxRuntime.jsx)(Provider, {
|
|
1786
|
+
children: (0, _jsxRuntime.jsx)(A, {})
|
|
1787
|
+
});
|
|
1788
|
+
};
|
|
1789
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1790
|
+
(0, _globals.expect)(onFirstChange).toHaveBeenCalledTimes(0);
|
|
1791
|
+
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
1792
|
+
(0, _globals.expect)(onFirstChange).toHaveBeenCalledTimes(1);
|
|
1793
|
+
(0, _globals.expect)(onSecondChange).toHaveBeenCalledTimes(0);
|
|
1794
|
+
_react.fireEvent.click(_react.screen.getByText(secondButtonText));
|
|
1795
|
+
(0, _globals.expect)(onFirstChange).toHaveBeenCalledTimes(1);
|
|
1796
|
+
(0, _globals.expect)(onSecondChange).toHaveBeenCalledTimes(1);
|
|
1797
|
+
(0, _globals.expect)(onSecondChange).toHaveBeenLastCalledWith(defaultFile, _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1798
|
+
ext: EXT_1,
|
|
1799
|
+
path: PATH_1
|
|
1800
|
+
}));
|
|
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
|
+
};
|
|
1954
1829
|
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1955
1830
|
(0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(0);
|
|
1956
1831
|
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
@@ -1996,14 +1871,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1996
1871
|
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1997
1872
|
};
|
|
1998
1873
|
var C = function C() {
|
|
1999
|
-
var
|
|
1874
|
+
var _useUseCase48 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
2000
1875
|
watch: {
|
|
2001
1876
|
ext: onChangeC
|
|
2002
1877
|
}
|
|
2003
1878
|
}),
|
|
2004
|
-
|
|
2005
|
-
setPath =
|
|
2006
|
-
Provider =
|
|
1879
|
+
_useUseCase49 = (0, _slicedToArray2["default"])(_useUseCase48, 3),
|
|
1880
|
+
setPath = _useUseCase49[1].setPath,
|
|
1881
|
+
Provider = _useUseCase49[2];
|
|
2007
1882
|
var onFirstClick = function onFirstClick() {
|
|
2008
1883
|
setPath(PATH_1);
|
|
2009
1884
|
};
|
|
@@ -2023,41 +1898,111 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2023
1898
|
(0, _globals.expect)(onChangeB).toHaveReturnedWith(1);
|
|
2024
1899
|
(0, _globals.expect)(onChangeC).toHaveReturnedWith(3);
|
|
2025
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
|
+
});
|
|
2026
1971
|
});
|
|
2027
1972
|
(0, _globals.describe)('`useUseCase` should work the same as `useReducers`', function () {
|
|
2028
1973
|
(0, _globals.test)('`entity` should equal `defaultFile`', function () {
|
|
2029
|
-
var
|
|
1974
|
+
var _renderHook28 = (0, _react.renderHook)(function () {
|
|
2030
1975
|
return (0, _.useUseCase)(mathUseCase);
|
|
2031
1976
|
}),
|
|
2032
|
-
result =
|
|
1977
|
+
result = _renderHook28.result;
|
|
2033
1978
|
var reducers = result.current;
|
|
2034
1979
|
(0, _globals.expect)(Array.isArray(reducers)).toBe(false);
|
|
2035
1980
|
});
|
|
2036
1981
|
(0, _globals.test)('returned reducer should work', function () {
|
|
2037
|
-
var
|
|
1982
|
+
var _renderHook29 = (0, _react.renderHook)(function () {
|
|
2038
1983
|
return (0, _.useUseCase)(mathUseCase);
|
|
2039
1984
|
}),
|
|
2040
|
-
result =
|
|
1985
|
+
result = _renderHook29.result;
|
|
2041
1986
|
var reducers = result.current;
|
|
2042
1987
|
var add = reducers.add;
|
|
2043
1988
|
(0, _globals.expect)(add(1, 2)).toBe(3);
|
|
2044
1989
|
});
|
|
2045
1990
|
(0, _globals.test)('`usecase` should be called only once if deps has not provided', function () {
|
|
2046
1991
|
var mockUseCase = _globals.jest.fn(mathUseCase);
|
|
2047
|
-
var
|
|
1992
|
+
var _renderHook30 = (0, _react.renderHook)(function () {
|
|
2048
1993
|
return (0, _.useUseCase)(mockUseCase);
|
|
2049
1994
|
}),
|
|
2050
|
-
rerender =
|
|
1995
|
+
rerender = _renderHook30.rerender;
|
|
2051
1996
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2052
1997
|
rerender();
|
|
2053
1998
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2054
1999
|
});
|
|
2055
2000
|
(0, _globals.test)('`usecase` should be called only once if deps has not changed', function () {
|
|
2056
2001
|
var mockUseCase = _globals.jest.fn(mathUseCase);
|
|
2057
|
-
var
|
|
2002
|
+
var _renderHook31 = (0, _react.renderHook)(function () {
|
|
2058
2003
|
return (0, _.useUseCase)(mockUseCase, {}, [1, 'x']);
|
|
2059
2004
|
}),
|
|
2060
|
-
rerender =
|
|
2005
|
+
rerender = _renderHook31.rerender;
|
|
2061
2006
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2062
2007
|
rerender();
|
|
2063
2008
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
@@ -2065,10 +2010,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2065
2010
|
(0, _globals.test)('`usecase` should be called if deps has changed', function () {
|
|
2066
2011
|
var i = 0;
|
|
2067
2012
|
var mockUseCase = _globals.jest.fn(mathUseCase);
|
|
2068
|
-
var
|
|
2013
|
+
var _renderHook32 = (0, _react.renderHook)(function () {
|
|
2069
2014
|
return (0, _.useUseCase)(mockUseCase, {}, [i++, 'x']);
|
|
2070
2015
|
}),
|
|
2071
|
-
rerender =
|
|
2016
|
+
rerender = _renderHook32.rerender;
|
|
2072
2017
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2073
2018
|
rerender();
|
|
2074
2019
|
(0, _globals.expect)(mockUseCase).toHaveBeenCalledTimes(2);
|
|
@@ -2076,8 +2021,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2076
2021
|
(0, _globals.test)('reducer call should not be cached if component is at rendering phase', function () {
|
|
2077
2022
|
var buttonText = 'button';
|
|
2078
2023
|
var CacheTestComponent = function CacheTestComponent() {
|
|
2079
|
-
var
|
|
2080
|
-
subtraction =
|
|
2024
|
+
var _useUseCase54 = (0, _.useUseCase)(mathUseCase),
|
|
2025
|
+
subtraction = _useUseCase54.subtraction;
|
|
2081
2026
|
var update = (0, _ahooks.useUpdate)();
|
|
2082
2027
|
var onClick = function onClick() {
|
|
2083
2028
|
update();
|
|
@@ -2100,8 +2045,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2100
2045
|
(0, _globals.test)('reducer call should not be cached if component is not at rendering phase', function () {
|
|
2101
2046
|
var buttonText = 'button';
|
|
2102
2047
|
var CacheTestComponent = function CacheTestComponent() {
|
|
2103
|
-
var
|
|
2104
|
-
subtraction =
|
|
2048
|
+
var _useUseCase55 = (0, _.useUseCase)(mathUseCase),
|
|
2049
|
+
subtraction = _useUseCase55.subtraction;
|
|
2105
2050
|
var onClick = function onClick() {
|
|
2106
2051
|
subtraction(5, 3);
|
|
2107
2052
|
};
|
|
@@ -2129,8 +2074,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2129
2074
|
var count = 0;
|
|
2130
2075
|
var buttonText = 'button';
|
|
2131
2076
|
var StringUseCaseTestComponent = function StringUseCaseTestComponent() {
|
|
2132
|
-
var
|
|
2133
|
-
subtraction =
|
|
2077
|
+
var _useUseCase56 = (0, _.useUseCase)(mathUseCase),
|
|
2078
|
+
subtraction = _useUseCase56.subtraction;
|
|
2134
2079
|
var update = (0, _ahooks.useUpdate)();
|
|
2135
2080
|
subtraction(5, count++);
|
|
2136
2081
|
var onUpdate = function onUpdate() {
|
|
@@ -2152,12 +2097,12 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2152
2097
|
(0, _globals.expect)(subtractionReducer).toHaveReturnedWith(4);
|
|
2153
2098
|
});
|
|
2154
2099
|
(0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
|
|
2155
|
-
var
|
|
2100
|
+
var _renderHook33 = (0, _react.renderHook)(function () {
|
|
2156
2101
|
return (0, _.useUseCase)(mathUseCase, {
|
|
2157
2102
|
extraValue: 5
|
|
2158
2103
|
});
|
|
2159
2104
|
}),
|
|
2160
|
-
result =
|
|
2105
|
+
result = _renderHook33.result;
|
|
2161
2106
|
var reducers = result.current;
|
|
2162
2107
|
var add = reducers.add;
|
|
2163
2108
|
(0, _globals.expect)(add(1, 2)).toBe(8);
|
|
@@ -2165,11 +2110,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2165
2110
|
(0, _globals.test)('when `options` has changed, it should not trigger update', function () {
|
|
2166
2111
|
var onUpdate = _globals.jest.fn();
|
|
2167
2112
|
var onDeepUpdate = _globals.jest.fn();
|
|
2168
|
-
var
|
|
2169
|
-
var
|
|
2170
|
-
|
|
2171
|
-
extraValue =
|
|
2172
|
-
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];
|
|
2173
2118
|
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
2174
2119
|
extraValue: extraValue
|
|
2175
2120
|
});
|
|
@@ -2181,7 +2126,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2181
2126
|
}, [reducers]);
|
|
2182
2127
|
return setExtraValue;
|
|
2183
2128
|
}),
|
|
2184
|
-
result =
|
|
2129
|
+
result = _renderHook34.result;
|
|
2185
2130
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
2186
2131
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2187
2132
|
(0, _react.act)(function () {
|
|
@@ -2193,11 +2138,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2193
2138
|
(0, _globals.test)('when `deps` change, it should update reducers', function () {
|
|
2194
2139
|
var onUpdate = _globals.jest.fn();
|
|
2195
2140
|
var onDeepUpdate = _globals.jest.fn();
|
|
2196
|
-
var
|
|
2197
|
-
var
|
|
2198
|
-
|
|
2199
|
-
extraValue =
|
|
2200
|
-
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];
|
|
2201
2146
|
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
2202
2147
|
extraValue: extraValue
|
|
2203
2148
|
}, [extraValue]);
|
|
@@ -2209,7 +2154,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2209
2154
|
}, [reducers]);
|
|
2210
2155
|
return setExtraValue;
|
|
2211
2156
|
}),
|
|
2212
|
-
result =
|
|
2157
|
+
result = _renderHook35.result;
|
|
2213
2158
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
2214
2159
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2215
2160
|
(0, _react.act)(function () {
|
|
@@ -2221,11 +2166,11 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2221
2166
|
(0, _globals.test)('empty `deps` should not update reducers', function () {
|
|
2222
2167
|
var onUpdate = _globals.jest.fn();
|
|
2223
2168
|
var onDeepUpdate = _globals.jest.fn();
|
|
2224
|
-
var
|
|
2225
|
-
var
|
|
2226
|
-
|
|
2227
|
-
extraValue =
|
|
2228
|
-
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];
|
|
2229
2174
|
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
2230
2175
|
extraValue: extraValue
|
|
2231
2176
|
}, []);
|
|
@@ -2237,7 +2182,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
2237
2182
|
}, [reducers]);
|
|
2238
2183
|
return setExtraValue;
|
|
2239
2184
|
}),
|
|
2240
|
-
result =
|
|
2185
|
+
result = _renderHook36.result;
|
|
2241
2186
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
2242
2187
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2243
2188
|
(0, _react.act)(function () {
|