@mic-rexjs/usecases-react 1.5.1 → 1.6.0
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/useIsRenderingRef/index.d.ts +1 -0
- package/es/hooks/useIsRenderingRef/index.js +9 -0
- package/es/hooks/useUseCase/index.js +12 -4
- package/es/hooks/useUseCase/index.test.js +477 -198
- package/es/index.d.ts +0 -1
- package/es/index.js +0 -1
- package/es/methods/cacheReducerCalls/index.d.ts +3 -0
- package/es/methods/cacheReducerCalls/index.js +26 -0
- package/es/methods/cacheReducerCalls/types.d.ts +11 -0
- package/es/methods/cacheReducerCalls/types.js +1 -0
- package/lib/hooks/useIsRenderingRef/index.js +16 -0
- package/lib/hooks/useUseCase/index.js +12 -4
- package/lib/hooks/useUseCase/index.test.js +664 -321
- package/lib/index.js +0 -13
- package/lib/methods/cacheReducerCalls/index.js +45 -0
- package/lib/methods/cacheReducerCalls/types.js +5 -0
- package/package.json +1 -1
- package/es/hooks/useReducer/index.d.ts +0 -2
- package/es/hooks/useReducer/index.js +0 -20
- package/lib/hooks/useReducer/index.js +0 -30
|
@@ -109,6 +109,9 @@ var fileUseCase = function fileUseCase() {
|
|
|
109
109
|
isImage: isImage
|
|
110
110
|
});
|
|
111
111
|
};
|
|
112
|
+
var subtractionReducer = _globals.jest.fn(function (value1, value2) {
|
|
113
|
+
return value1 - value2;
|
|
114
|
+
});
|
|
112
115
|
var mathUseCase = function mathUseCase() {
|
|
113
116
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
114
117
|
var _options$extraValue = options.extraValue,
|
|
@@ -116,12 +119,9 @@ var mathUseCase = function mathUseCase() {
|
|
|
116
119
|
var add = function add(value1, value2) {
|
|
117
120
|
return value1 + value2 + extraValue;
|
|
118
121
|
};
|
|
119
|
-
var subtraction = function subtraction(value1, value2) {
|
|
120
|
-
return value1 - value2;
|
|
121
|
-
};
|
|
122
122
|
return {
|
|
123
123
|
add: add,
|
|
124
|
-
subtraction:
|
|
124
|
+
subtraction: subtractionReducer
|
|
125
125
|
};
|
|
126
126
|
};
|
|
127
127
|
var fieldPathUseCase = function fieldPathUseCase() {
|
|
@@ -239,6 +239,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
239
239
|
callback();
|
|
240
240
|
}, deps);
|
|
241
241
|
};
|
|
242
|
+
(0, _globals.beforeEach)(function () {
|
|
243
|
+
subtractionReducer.mockClear();
|
|
244
|
+
});
|
|
242
245
|
(0, _globals.describe)('useUseCase', function () {
|
|
243
246
|
(0, _globals.describe)('`useUseCase` should work with 2+ arguments on provider mode', function () {
|
|
244
247
|
(0, _globals.test)('check `context.length`', function () {
|
|
@@ -406,6 +409,126 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
406
409
|
(0, _globals.expect)(result.current[1].init).not.toBe(init);
|
|
407
410
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
|
|
408
411
|
});
|
|
412
|
+
(0, _globals.test)('reducer call should be cached if component is at rendering phase', function () {
|
|
413
|
+
var buttonText = 'button';
|
|
414
|
+
var addReducer = _globals.jest.fn(function (entity, substring) {
|
|
415
|
+
return entity + substring;
|
|
416
|
+
});
|
|
417
|
+
var stringUseCase = function stringUseCase() {
|
|
418
|
+
var entityReducers = (0, _usecases.entityUseCase)();
|
|
419
|
+
return _objectSpread(_objectSpread({}, entityReducers), {}, {
|
|
420
|
+
add: addReducer
|
|
421
|
+
});
|
|
422
|
+
};
|
|
423
|
+
var CacheTestComponent = function CacheTestComponent() {
|
|
424
|
+
var _useUseCase6 = (0, _.useUseCase)('', stringUseCase),
|
|
425
|
+
_useUseCase7 = (0, _slicedToArray2["default"])(_useUseCase6, 2),
|
|
426
|
+
add = _useUseCase7[1].add;
|
|
427
|
+
var update = (0, _ahooks.useUpdate)();
|
|
428
|
+
var onClick = function onClick() {
|
|
429
|
+
update();
|
|
430
|
+
};
|
|
431
|
+
add('x');
|
|
432
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
433
|
+
onClick: onClick,
|
|
434
|
+
children: buttonText
|
|
435
|
+
});
|
|
436
|
+
};
|
|
437
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(CacheTestComponent, {}));
|
|
438
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(1);
|
|
439
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('', 'x');
|
|
440
|
+
(0, _globals.expect)(addReducer).toHaveReturnedWith('x');
|
|
441
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
442
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(1);
|
|
443
|
+
});
|
|
444
|
+
(0, _globals.test)('reducer call should not be cached if component is not at rendering phase', function () {
|
|
445
|
+
var buttonText = 'button';
|
|
446
|
+
var addReducer = _globals.jest.fn(function (entity, substring) {
|
|
447
|
+
return entity + substring;
|
|
448
|
+
});
|
|
449
|
+
var stringUseCase = function stringUseCase() {
|
|
450
|
+
var entityReducers = (0, _usecases.entityUseCase)();
|
|
451
|
+
return _objectSpread(_objectSpread({}, entityReducers), {}, {
|
|
452
|
+
add: addReducer
|
|
453
|
+
});
|
|
454
|
+
};
|
|
455
|
+
var CacheTestComponent = function CacheTestComponent() {
|
|
456
|
+
var _useUseCase8 = (0, _.useUseCase)('', stringUseCase),
|
|
457
|
+
_useUseCase9 = (0, _slicedToArray2["default"])(_useUseCase8, 2),
|
|
458
|
+
add = _useUseCase9[1].add;
|
|
459
|
+
var onClick = function onClick() {
|
|
460
|
+
add('x');
|
|
461
|
+
};
|
|
462
|
+
(0, _ahooks.useMount)(function () {
|
|
463
|
+
add('x');
|
|
464
|
+
add('x');
|
|
465
|
+
});
|
|
466
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
467
|
+
onClick: onClick,
|
|
468
|
+
children: buttonText
|
|
469
|
+
});
|
|
470
|
+
};
|
|
471
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(CacheTestComponent, {}));
|
|
472
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(2);
|
|
473
|
+
(0, _globals.expect)(addReducer).toHaveBeenNthCalledWith(1, '', 'x');
|
|
474
|
+
(0, _globals.expect)(addReducer).toHaveBeenNthCalledWith(2, '', 'x');
|
|
475
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
476
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
|
|
477
|
+
(0, _globals.expect)(addReducer).toHaveBeenNthCalledWith(3, '', 'x');
|
|
478
|
+
});
|
|
479
|
+
(0, _globals.test)('reducer call should not be cached if entity or parameters have changed', function () {
|
|
480
|
+
var count = 0;
|
|
481
|
+
var addedText = 'x';
|
|
482
|
+
var setButtonText = 'button';
|
|
483
|
+
var updateButtonText = 'update';
|
|
484
|
+
var addReducer = _globals.jest.fn(function (entity, substring) {
|
|
485
|
+
return entity + substring;
|
|
486
|
+
});
|
|
487
|
+
var stringUseCase = function stringUseCase() {
|
|
488
|
+
var entityReducers = (0, _usecases.entityUseCase)();
|
|
489
|
+
return _objectSpread(_objectSpread({}, entityReducers), {}, {
|
|
490
|
+
add: addReducer
|
|
491
|
+
});
|
|
492
|
+
};
|
|
493
|
+
var CacheTestComponent = function CacheTestComponent() {
|
|
494
|
+
var _useUseCase10 = (0, _.useUseCase)('', stringUseCase),
|
|
495
|
+
_useUseCase11 = (0, _slicedToArray2["default"])(_useUseCase10, 2),
|
|
496
|
+
_useUseCase11$ = _useUseCase11[1],
|
|
497
|
+
add = _useUseCase11$.add,
|
|
498
|
+
setEntity = _useUseCase11$.setEntity;
|
|
499
|
+
var update = (0, _ahooks.useUpdate)();
|
|
500
|
+
add(addedText);
|
|
501
|
+
var onSet = function onSet() {
|
|
502
|
+
setEntity("".concat(count++));
|
|
503
|
+
};
|
|
504
|
+
var onUpdate = function onUpdate() {
|
|
505
|
+
update();
|
|
506
|
+
};
|
|
507
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
508
|
+
children: [(0, _jsxRuntime.jsx)("button", {
|
|
509
|
+
onClick: onSet,
|
|
510
|
+
children: setButtonText
|
|
511
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
512
|
+
onClick: onUpdate,
|
|
513
|
+
children: updateButtonText
|
|
514
|
+
})]
|
|
515
|
+
});
|
|
516
|
+
};
|
|
517
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(CacheTestComponent, {}));
|
|
518
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(1);
|
|
519
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('', 'x');
|
|
520
|
+
_react.fireEvent.click(_react.screen.getByText(setButtonText));
|
|
521
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(2);
|
|
522
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('0', 'x');
|
|
523
|
+
(0, _globals.expect)(addReducer).toHaveReturnedWith('0x');
|
|
524
|
+
addedText = 'y';
|
|
525
|
+
_react.fireEvent.click(_react.screen.getByText(updateButtonText));
|
|
526
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
|
|
527
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('0', 'y');
|
|
528
|
+
(0, _globals.expect)(addReducer).toHaveReturnedWith('0y');
|
|
529
|
+
_react.fireEvent.click(_react.screen.getByText(updateButtonText));
|
|
530
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
|
|
531
|
+
});
|
|
409
532
|
(0, _globals.test)('`options.stateless` should not generate new reducers when `yeild entity`', function () {
|
|
410
533
|
var onUpdate = _globals.jest.fn();
|
|
411
534
|
var _renderHook9 = (0, _react.renderHook)(function () {
|
|
@@ -667,182 +790,33 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
667
790
|
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
668
791
|
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
669
792
|
});
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
var
|
|
674
|
-
|
|
675
|
-
}),
|
|
676
|
-
result = _renderHook18.result;
|
|
677
|
-
var reducers = result.current;
|
|
678
|
-
(0, _globals.expect)(Array.isArray(reducers)).toBe(false);
|
|
679
|
-
});
|
|
680
|
-
(0, _globals.test)('returned reducer should work', function () {
|
|
681
|
-
var _renderHook19 = (0, _react.renderHook)(function () {
|
|
682
|
-
return (0, _.useUseCase)(mathUseCase);
|
|
683
|
-
}),
|
|
684
|
-
result = _renderHook19.result;
|
|
685
|
-
var reducers = result.current;
|
|
686
|
-
var add = reducers.add;
|
|
687
|
-
(0, _globals.expect)(add(1, 2)).toBe(3);
|
|
688
|
-
});
|
|
689
|
-
(0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
|
|
690
|
-
var _renderHook20 = (0, _react.renderHook)(function () {
|
|
691
|
-
return (0, _.useUseCase)(mathUseCase, {
|
|
692
|
-
extraValue: 5
|
|
693
|
-
});
|
|
694
|
-
}),
|
|
695
|
-
result = _renderHook20.result;
|
|
696
|
-
var reducers = result.current;
|
|
697
|
-
var add = reducers.add;
|
|
698
|
-
(0, _globals.expect)(add(1, 2)).toBe(8);
|
|
699
|
-
});
|
|
700
|
-
(0, _globals.test)('when `options` has changed, it should not trigger update', function () {
|
|
701
|
-
var onUpdate = _globals.jest.fn();
|
|
702
|
-
var onDeepUpdate = _globals.jest.fn();
|
|
703
|
-
var _renderHook21 = (0, _react.renderHook)(function () {
|
|
704
|
-
var _useState7 = (0, _react2.useState)(0),
|
|
705
|
-
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
706
|
-
extraValue = _useState8[0],
|
|
707
|
-
setExtraValue = _useState8[1];
|
|
708
|
-
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
709
|
-
extraValue: extraValue
|
|
710
|
-
});
|
|
711
|
-
(0, _ahooks.useUpdateEffect)(function () {
|
|
712
|
-
onUpdate();
|
|
713
|
-
}, [reducers]);
|
|
714
|
-
useDeepCompareUpdate(function () {
|
|
715
|
-
onDeepUpdate();
|
|
716
|
-
}, [reducers]);
|
|
717
|
-
return setExtraValue;
|
|
718
|
-
}),
|
|
719
|
-
result = _renderHook21.result;
|
|
720
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
721
|
-
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
722
|
-
(0, _react.act)(function () {
|
|
723
|
-
result.current(3);
|
|
724
|
-
});
|
|
725
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
726
|
-
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
727
|
-
});
|
|
728
|
-
(0, _globals.test)('when `deps` change, it should update reducers', function () {
|
|
729
|
-
var onUpdate = _globals.jest.fn();
|
|
730
|
-
var onDeepUpdate = _globals.jest.fn();
|
|
731
|
-
var _renderHook22 = (0, _react.renderHook)(function () {
|
|
732
|
-
var _useState9 = (0, _react2.useState)(0),
|
|
733
|
-
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
734
|
-
extraValue = _useState10[0],
|
|
735
|
-
setExtraValue = _useState10[1];
|
|
736
|
-
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
737
|
-
extraValue: extraValue
|
|
738
|
-
}, [extraValue]);
|
|
739
|
-
(0, _ahooks.useUpdateEffect)(function () {
|
|
740
|
-
onUpdate();
|
|
741
|
-
}, [reducers]);
|
|
742
|
-
useDeepCompareUpdate(function () {
|
|
743
|
-
onDeepUpdate();
|
|
744
|
-
}, [reducers]);
|
|
745
|
-
return setExtraValue;
|
|
746
|
-
}),
|
|
747
|
-
result = _renderHook22.result;
|
|
748
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
749
|
-
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
750
|
-
(0, _react.act)(function () {
|
|
751
|
-
result.current(3);
|
|
752
|
-
});
|
|
753
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
|
|
754
|
-
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(1);
|
|
755
|
-
});
|
|
756
|
-
(0, _globals.test)('empty `deps` should not update reducers', function () {
|
|
757
|
-
var onUpdate = _globals.jest.fn();
|
|
758
|
-
var onDeepUpdate = _globals.jest.fn();
|
|
759
|
-
var _renderHook23 = (0, _react.renderHook)(function () {
|
|
760
|
-
var _useState11 = (0, _react2.useState)(0),
|
|
761
|
-
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
762
|
-
extraValue = _useState12[0],
|
|
763
|
-
setExtraValue = _useState12[1];
|
|
764
|
-
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
765
|
-
extraValue: extraValue
|
|
766
|
-
}, []);
|
|
767
|
-
(0, _ahooks.useUpdateEffect)(function () {
|
|
768
|
-
onUpdate();
|
|
769
|
-
}, [reducers]);
|
|
770
|
-
useDeepCompareUpdate(function () {
|
|
771
|
-
onDeepUpdate();
|
|
772
|
-
}, [reducers]);
|
|
773
|
-
return setExtraValue;
|
|
774
|
-
}),
|
|
775
|
-
result = _renderHook23.result;
|
|
776
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
777
|
-
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
778
|
-
(0, _react.act)(function () {
|
|
779
|
-
result.current(3);
|
|
780
|
-
});
|
|
781
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
782
|
-
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
783
|
-
});
|
|
784
|
-
(0, _globals.test)('should not trigger update', function () {
|
|
785
|
-
var onUpdate = _globals.jest.fn();
|
|
786
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(MathParent, {
|
|
787
|
-
onUpdate: onUpdate
|
|
788
|
-
}));
|
|
789
|
-
_react.fireEvent.click(_react.screen.getByText(PARENT_BUTTON_TEXT));
|
|
790
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
791
|
-
});
|
|
792
|
-
});
|
|
793
|
-
(0, _globals.describe)('`useUseCase` should work with 1+ arguments on context mode', function () {
|
|
794
|
-
(0, _globals.test)('should work within <Child /> which it is under <Parent />', function () {
|
|
795
|
-
var textPrefix = '>>';
|
|
796
|
-
var onUpdate = _globals.jest.fn();
|
|
797
|
-
var onPathChange = _globals.jest.fn();
|
|
798
|
-
var onUndefinedEntity = _globals.jest.fn();
|
|
799
|
-
var onSetPath = _globals.jest.fn(function () {
|
|
800
|
-
return PATH_1;
|
|
801
|
-
});
|
|
802
|
-
(0, _react.render)((0, _jsxRuntime.jsx)("div", {
|
|
803
|
-
children: (0, _jsxRuntime.jsx)(Parent, {
|
|
804
|
-
onSetPath: onSetPath,
|
|
805
|
-
children: (0, _jsxRuntime.jsx)(Child, {
|
|
806
|
-
textPrefix: textPrefix,
|
|
807
|
-
onUpdate: onUpdate,
|
|
808
|
-
onPathChange: onPathChange,
|
|
809
|
-
onUndefinedEntity: onUndefinedEntity
|
|
810
|
-
})
|
|
811
|
-
})
|
|
812
|
-
}));
|
|
813
|
-
_react.fireEvent.click(_react.screen.getByText(PARENT_BUTTON_TEXT));
|
|
814
|
-
(0, _globals.expect)(onSetPath).toHaveBeenCalledTimes(1);
|
|
815
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
|
|
816
|
-
(0, _globals.expect)(onPathChange).toHaveBeenCalledWith(PATH_1);
|
|
817
|
-
_react.fireEvent.click(_react.screen.getByText(textPrefix + CHILD_BUTTON_TEXT));
|
|
818
|
-
(0, _globals.expect)(onSetPath).toHaveBeenCalledTimes(1);
|
|
819
|
-
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(2);
|
|
820
|
-
(0, _globals.expect)(onPathChange).toHaveBeenCalledWith('');
|
|
821
|
-
(0, _globals.expect)(onUndefinedEntity).toHaveBeenCalledTimes(0);
|
|
822
|
-
});
|
|
823
|
-
(0, _globals.test)('`options.onChange` event should be trigger at child elements', function () {
|
|
824
|
-
var onFirstChange = _globals.jest.fn();
|
|
825
|
-
var onSecondChange = _globals.jest.fn();
|
|
826
|
-
var onParentPathChange = _globals.jest.fn();
|
|
793
|
+
(0, _globals.test)('`options.watch` should be trigger at child elements', function () {
|
|
794
|
+
var onFirstExtChange = _globals.jest.fn();
|
|
795
|
+
var onSecondExtChange = _globals.jest.fn();
|
|
796
|
+
var onParentExtChange = _globals.jest.fn();
|
|
797
|
+
var onExtChange = onFirstExtChange;
|
|
827
798
|
var firstButtonText = 'first button';
|
|
828
799
|
var secondButtonText = 'second button';
|
|
829
|
-
var onChange = onFirstChange;
|
|
830
800
|
var A = function A() {
|
|
831
801
|
(0, _.useUseCase)(fileUseCase, {
|
|
832
|
-
|
|
802
|
+
watch: {
|
|
803
|
+
ext: onExtChange
|
|
804
|
+
}
|
|
833
805
|
});
|
|
834
806
|
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
835
807
|
};
|
|
836
808
|
var B = function B() {
|
|
837
|
-
var
|
|
838
|
-
|
|
809
|
+
var _useUseCase12 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
810
|
+
watch: {
|
|
811
|
+
ext: onParentExtChange
|
|
812
|
+
}
|
|
839
813
|
}),
|
|
840
|
-
|
|
841
|
-
setPath =
|
|
842
|
-
Provider =
|
|
814
|
+
_useUseCase13 = (0, _slicedToArray2["default"])(_useUseCase12, 3),
|
|
815
|
+
setPath = _useUseCase13[1].setPath,
|
|
816
|
+
Provider = _useUseCase13[2];
|
|
843
817
|
var onFirstClick = function onFirstClick() {
|
|
844
818
|
setPath(PATH_1);
|
|
845
|
-
|
|
819
|
+
onExtChange = onSecondExtChange;
|
|
846
820
|
};
|
|
847
821
|
var onSecondClick = function onSecondClick() {
|
|
848
822
|
setPath('');
|
|
@@ -858,27 +832,40 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
858
832
|
});
|
|
859
833
|
};
|
|
860
834
|
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
861
|
-
(0, _globals.expect)(
|
|
835
|
+
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(0);
|
|
862
836
|
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
863
|
-
(0, _globals.expect)(
|
|
864
|
-
(0, _globals.expect)(
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
837
|
+
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
838
|
+
(0, _globals.expect)(onFirstExtChange).toHaveBeenLastCalledWith({
|
|
839
|
+
fieldPaths: ['ext'],
|
|
840
|
+
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
841
|
+
ext: EXT_1,
|
|
842
|
+
path: PATH_1
|
|
843
|
+
}),
|
|
844
|
+
oldEntity: defaultFile,
|
|
845
|
+
newValue: EXT_1,
|
|
846
|
+
oldValue: ''
|
|
847
|
+
});
|
|
848
|
+
(0, _globals.expect)(onParentExtChange).toHaveBeenCalledTimes(1);
|
|
849
|
+
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(0);
|
|
870
850
|
_react.fireEvent.click(_react.screen.getByText(secondButtonText));
|
|
871
|
-
(0, _globals.expect)(
|
|
872
|
-
(0, _globals.expect)(
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
851
|
+
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(1);
|
|
852
|
+
(0, _globals.expect)(onSecondExtChange).toHaveBeenLastCalledWith({
|
|
853
|
+
fieldPaths: ['ext'],
|
|
854
|
+
newEntity: defaultFile,
|
|
855
|
+
oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
856
|
+
ext: EXT_1,
|
|
857
|
+
path: PATH_1
|
|
858
|
+
}),
|
|
859
|
+
newValue: '',
|
|
860
|
+
oldValue: EXT_1
|
|
861
|
+
});
|
|
862
|
+
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
863
|
+
(0, _globals.expect)(onParentExtChange).toHaveBeenCalledTimes(2);
|
|
878
864
|
});
|
|
879
|
-
(0, _globals.test)('`options.
|
|
865
|
+
(0, _globals.test)('`options.watch` should be trigger in orders', function () {
|
|
880
866
|
var changeTimes = 0;
|
|
881
|
-
var updateChangeTimes = function updateChangeTimes() {
|
|
867
|
+
var updateChangeTimes = function updateChangeTimes(e) {
|
|
868
|
+
void e;
|
|
882
869
|
return ++changeTimes;
|
|
883
870
|
};
|
|
884
871
|
var onChangeA = _globals.jest.fn(updateChangeTimes);
|
|
@@ -887,129 +874,6 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
887
874
|
var buttonText = 'my button';
|
|
888
875
|
var A = function A(_ref7) {
|
|
889
876
|
var children = _ref7.children;
|
|
890
|
-
(0, _.useUseCase)(fileUseCase, {
|
|
891
|
-
onChange: onChangeA
|
|
892
|
-
});
|
|
893
|
-
return (0, _jsxRuntime.jsx)(_react2.Fragment, {
|
|
894
|
-
children: children
|
|
895
|
-
});
|
|
896
|
-
};
|
|
897
|
-
var B = function B() {
|
|
898
|
-
(0, _.useUseCase)(fileUseCase, {
|
|
899
|
-
onChange: onChangeB
|
|
900
|
-
});
|
|
901
|
-
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
902
|
-
};
|
|
903
|
-
var C = function C() {
|
|
904
|
-
var _useUseCase8 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
905
|
-
onChange: onChangeC
|
|
906
|
-
}),
|
|
907
|
-
_useUseCase9 = (0, _slicedToArray2["default"])(_useUseCase8, 3),
|
|
908
|
-
setPath = _useUseCase9[1].setPath,
|
|
909
|
-
Provider = _useUseCase9[2];
|
|
910
|
-
var onFirstClick = function onFirstClick() {
|
|
911
|
-
setPath(PATH_1);
|
|
912
|
-
};
|
|
913
|
-
return (0, _jsxRuntime.jsxs)(Provider, {
|
|
914
|
-
children: [(0, _jsxRuntime.jsx)(A, {
|
|
915
|
-
children: (0, _jsxRuntime.jsx)(B, {})
|
|
916
|
-
}), (0, _jsxRuntime.jsx)("button", {
|
|
917
|
-
onClick: onFirstClick,
|
|
918
|
-
children: buttonText
|
|
919
|
-
})]
|
|
920
|
-
});
|
|
921
|
-
};
|
|
922
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(C, {}));
|
|
923
|
-
(0, _globals.expect)(changeTimes).toBe(0);
|
|
924
|
-
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
925
|
-
(0, _globals.expect)(onChangeA).toHaveReturnedWith(2);
|
|
926
|
-
(0, _globals.expect)(onChangeB).toHaveReturnedWith(1);
|
|
927
|
-
(0, _globals.expect)(onChangeC).toHaveReturnedWith(3);
|
|
928
|
-
});
|
|
929
|
-
(0, _globals.test)('`options.watch` should be trigger at child elements', function () {
|
|
930
|
-
var onFirstExtChange = _globals.jest.fn();
|
|
931
|
-
var onSecondExtChange = _globals.jest.fn();
|
|
932
|
-
var onParentExtChange = _globals.jest.fn();
|
|
933
|
-
var onExtChange = onFirstExtChange;
|
|
934
|
-
var firstButtonText = 'first button';
|
|
935
|
-
var secondButtonText = 'second button';
|
|
936
|
-
var A = function A() {
|
|
937
|
-
(0, _.useUseCase)(fileUseCase, {
|
|
938
|
-
watch: {
|
|
939
|
-
ext: onExtChange
|
|
940
|
-
}
|
|
941
|
-
});
|
|
942
|
-
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
943
|
-
};
|
|
944
|
-
var B = function B() {
|
|
945
|
-
var _useUseCase10 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
946
|
-
watch: {
|
|
947
|
-
ext: onParentExtChange
|
|
948
|
-
}
|
|
949
|
-
}),
|
|
950
|
-
_useUseCase11 = (0, _slicedToArray2["default"])(_useUseCase10, 3),
|
|
951
|
-
setPath = _useUseCase11[1].setPath,
|
|
952
|
-
Provider = _useUseCase11[2];
|
|
953
|
-
var onFirstClick = function onFirstClick() {
|
|
954
|
-
setPath(PATH_1);
|
|
955
|
-
onExtChange = onSecondExtChange;
|
|
956
|
-
};
|
|
957
|
-
var onSecondClick = function onSecondClick() {
|
|
958
|
-
setPath('');
|
|
959
|
-
};
|
|
960
|
-
return (0, _jsxRuntime.jsxs)(Provider, {
|
|
961
|
-
children: [(0, _jsxRuntime.jsx)(A, {}), (0, _jsxRuntime.jsx)("button", {
|
|
962
|
-
onClick: onFirstClick,
|
|
963
|
-
children: firstButtonText
|
|
964
|
-
}), (0, _jsxRuntime.jsx)("button", {
|
|
965
|
-
onClick: onSecondClick,
|
|
966
|
-
children: secondButtonText
|
|
967
|
-
})]
|
|
968
|
-
});
|
|
969
|
-
};
|
|
970
|
-
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
971
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(0);
|
|
972
|
-
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
973
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
974
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenLastCalledWith({
|
|
975
|
-
fieldPaths: ['ext'],
|
|
976
|
-
newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
977
|
-
ext: EXT_1,
|
|
978
|
-
path: PATH_1
|
|
979
|
-
}),
|
|
980
|
-
oldEntity: defaultFile,
|
|
981
|
-
newValue: EXT_1,
|
|
982
|
-
oldValue: ''
|
|
983
|
-
});
|
|
984
|
-
(0, _globals.expect)(onParentExtChange).toHaveBeenCalledTimes(1);
|
|
985
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(0);
|
|
986
|
-
_react.fireEvent.click(_react.screen.getByText(secondButtonText));
|
|
987
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(1);
|
|
988
|
-
(0, _globals.expect)(onSecondExtChange).toHaveBeenLastCalledWith({
|
|
989
|
-
fieldPaths: ['ext'],
|
|
990
|
-
newEntity: defaultFile,
|
|
991
|
-
oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
992
|
-
ext: EXT_1,
|
|
993
|
-
path: PATH_1
|
|
994
|
-
}),
|
|
995
|
-
newValue: '',
|
|
996
|
-
oldValue: EXT_1
|
|
997
|
-
});
|
|
998
|
-
(0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
|
|
999
|
-
(0, _globals.expect)(onParentExtChange).toHaveBeenCalledTimes(2);
|
|
1000
|
-
});
|
|
1001
|
-
(0, _globals.test)('`options.watch` should be trigger in orders', function () {
|
|
1002
|
-
var changeTimes = 0;
|
|
1003
|
-
var updateChangeTimes = function updateChangeTimes(e) {
|
|
1004
|
-
void e;
|
|
1005
|
-
return ++changeTimes;
|
|
1006
|
-
};
|
|
1007
|
-
var onChangeA = _globals.jest.fn(updateChangeTimes);
|
|
1008
|
-
var onChangeB = _globals.jest.fn(updateChangeTimes);
|
|
1009
|
-
var onChangeC = _globals.jest.fn(updateChangeTimes);
|
|
1010
|
-
var buttonText = 'my button';
|
|
1011
|
-
var A = function A(_ref8) {
|
|
1012
|
-
var children = _ref8.children;
|
|
1013
877
|
(0, _.useUseCase)(fileUseCase, {
|
|
1014
878
|
watch: {
|
|
1015
879
|
ext: onChangeA
|
|
@@ -1028,14 +892,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1028
892
|
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1029
893
|
};
|
|
1030
894
|
var C = function C() {
|
|
1031
|
-
var
|
|
895
|
+
var _useUseCase14 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
1032
896
|
watch: {
|
|
1033
897
|
ext: onChangeC
|
|
1034
898
|
}
|
|
1035
899
|
}),
|
|
1036
|
-
|
|
1037
|
-
setPath =
|
|
1038
|
-
Provider =
|
|
900
|
+
_useUseCase15 = (0, _slicedToArray2["default"])(_useUseCase14, 3),
|
|
901
|
+
setPath = _useUseCase15[1].setPath,
|
|
902
|
+
Provider = _useUseCase15[2];
|
|
1039
903
|
var onFirstClick = function onFirstClick() {
|
|
1040
904
|
setPath(PATH_1);
|
|
1041
905
|
};
|
|
@@ -1058,7 +922,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1058
922
|
(0, _globals.test)('`options.watch` should work with array field path of array', function () {
|
|
1059
923
|
var onExtChange = _globals.jest.fn();
|
|
1060
924
|
var onSizeChange = _globals.jest.fn();
|
|
1061
|
-
var
|
|
925
|
+
var _renderHook18 = (0, _react.renderHook)(function () {
|
|
1062
926
|
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
1063
927
|
watch: {
|
|
1064
928
|
'list.ext': onExtChange,
|
|
@@ -1066,7 +930,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1066
930
|
}
|
|
1067
931
|
});
|
|
1068
932
|
}),
|
|
1069
|
-
result =
|
|
933
|
+
result = _renderHook18.result;
|
|
1070
934
|
var cores = result.current;
|
|
1071
935
|
var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1072
936
|
setEntity = _cores13[1].setEntity;
|
|
@@ -1354,7 +1218,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1354
1218
|
var lengthUseCase = function lengthUseCase() {
|
|
1355
1219
|
return (0, _usecases.entityUseCase)();
|
|
1356
1220
|
};
|
|
1357
|
-
var
|
|
1221
|
+
var _renderHook19 = (0, _react.renderHook)(function () {
|
|
1358
1222
|
return (0, _.useUseCase)([], lengthUseCase, {
|
|
1359
1223
|
watch: {
|
|
1360
1224
|
length: onEntityLengthChange,
|
|
@@ -1362,7 +1226,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1362
1226
|
}
|
|
1363
1227
|
});
|
|
1364
1228
|
}),
|
|
1365
|
-
result =
|
|
1229
|
+
result = _renderHook19.result;
|
|
1366
1230
|
var cores = result.current;
|
|
1367
1231
|
var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1368
1232
|
setEntity = _cores14[1].setEntity;
|
|
@@ -1396,14 +1260,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1396
1260
|
});
|
|
1397
1261
|
(0, _globals.test)('`options.watch` should work with field path of nested array', function () {
|
|
1398
1262
|
var onChange = _globals.jest.fn();
|
|
1399
|
-
var
|
|
1263
|
+
var _renderHook20 = (0, _react.renderHook)(function () {
|
|
1400
1264
|
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
1401
1265
|
watch: {
|
|
1402
1266
|
'nestedList.size': onChange
|
|
1403
1267
|
}
|
|
1404
1268
|
});
|
|
1405
1269
|
}),
|
|
1406
|
-
result =
|
|
1270
|
+
result = _renderHook20.result;
|
|
1407
1271
|
var cores = result.current;
|
|
1408
1272
|
var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1409
1273
|
setEntity = _cores15[1].setEntity;
|
|
@@ -1490,7 +1354,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1490
1354
|
(0, _globals.test)('`options.watch` should work with field path of object', function () {
|
|
1491
1355
|
var onExtChange = _globals.jest.fn();
|
|
1492
1356
|
var onSizeChange = _globals.jest.fn();
|
|
1493
|
-
var
|
|
1357
|
+
var _renderHook21 = (0, _react.renderHook)(function () {
|
|
1494
1358
|
return (0, _.useUseCase)({}, fieldPathUseCase, {
|
|
1495
1359
|
watch: {
|
|
1496
1360
|
'obj.file.ext': onExtChange,
|
|
@@ -1498,7 +1362,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1498
1362
|
}
|
|
1499
1363
|
});
|
|
1500
1364
|
}),
|
|
1501
|
-
result =
|
|
1365
|
+
result = _renderHook21.result;
|
|
1502
1366
|
var cores = result.current;
|
|
1503
1367
|
var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
|
|
1504
1368
|
setEntity = _cores16[1].setEntity;
|
|
@@ -1549,4 +1413,483 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
|
|
|
1549
1413
|
});
|
|
1550
1414
|
});
|
|
1551
1415
|
});
|
|
1416
|
+
(0, _globals.describe)('`useUseCase` should work with 1+ arguments on non-entity mode', function () {
|
|
1417
|
+
(0, _globals.test)('`entity` should equal `defaultFile`', function () {
|
|
1418
|
+
var _renderHook22 = (0, _react.renderHook)(function () {
|
|
1419
|
+
return (0, _.useUseCase)(mathUseCase);
|
|
1420
|
+
}),
|
|
1421
|
+
result = _renderHook22.result;
|
|
1422
|
+
var reducers = result.current;
|
|
1423
|
+
(0, _globals.expect)(Array.isArray(reducers)).toBe(false);
|
|
1424
|
+
});
|
|
1425
|
+
(0, _globals.test)('returned reducer should work', function () {
|
|
1426
|
+
var _renderHook23 = (0, _react.renderHook)(function () {
|
|
1427
|
+
return (0, _.useUseCase)(mathUseCase);
|
|
1428
|
+
}),
|
|
1429
|
+
result = _renderHook23.result;
|
|
1430
|
+
var reducers = result.current;
|
|
1431
|
+
var add = reducers.add;
|
|
1432
|
+
(0, _globals.expect)(add(1, 2)).toBe(3);
|
|
1433
|
+
});
|
|
1434
|
+
(0, _globals.test)('reducer call should be cached if component is at rendering phase', function () {
|
|
1435
|
+
var buttonText = 'button';
|
|
1436
|
+
var CacheTestComponent = function CacheTestComponent() {
|
|
1437
|
+
var _useUseCase16 = (0, _.useUseCase)(mathUseCase),
|
|
1438
|
+
subtraction = _useUseCase16.subtraction;
|
|
1439
|
+
var update = (0, _ahooks.useUpdate)();
|
|
1440
|
+
var onClick = function onClick() {
|
|
1441
|
+
update();
|
|
1442
|
+
};
|
|
1443
|
+
subtraction(5, 3);
|
|
1444
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
1445
|
+
onClick: onClick,
|
|
1446
|
+
children: buttonText
|
|
1447
|
+
});
|
|
1448
|
+
};
|
|
1449
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(CacheTestComponent, {}));
|
|
1450
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(1);
|
|
1451
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledWith(5, 3);
|
|
1452
|
+
(0, _globals.expect)(subtractionReducer).toHaveReturnedWith(2);
|
|
1453
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1454
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(1);
|
|
1455
|
+
});
|
|
1456
|
+
(0, _globals.test)('reducer call should not be cached if component is not at rendering phase', function () {
|
|
1457
|
+
var buttonText = 'button';
|
|
1458
|
+
var CacheTestComponent = function CacheTestComponent() {
|
|
1459
|
+
var _useUseCase17 = (0, _.useUseCase)(mathUseCase),
|
|
1460
|
+
subtraction = _useUseCase17.subtraction;
|
|
1461
|
+
var onClick = function onClick() {
|
|
1462
|
+
subtraction(5, 3);
|
|
1463
|
+
};
|
|
1464
|
+
(0, _ahooks.useMount)(function () {
|
|
1465
|
+
subtraction(5, 3);
|
|
1466
|
+
subtraction(5, 3);
|
|
1467
|
+
});
|
|
1468
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
1469
|
+
onClick: onClick,
|
|
1470
|
+
children: buttonText
|
|
1471
|
+
});
|
|
1472
|
+
};
|
|
1473
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(CacheTestComponent, {}));
|
|
1474
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(2);
|
|
1475
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenNthCalledWith(1, 5, 3);
|
|
1476
|
+
(0, _globals.expect)(subtractionReducer).toHaveNthReturnedWith(1, 2);
|
|
1477
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenNthCalledWith(2, 5, 3);
|
|
1478
|
+
(0, _globals.expect)(subtractionReducer).toHaveNthReturnedWith(2, 2);
|
|
1479
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1480
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(3);
|
|
1481
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenNthCalledWith(3, 5, 3);
|
|
1482
|
+
(0, _globals.expect)(subtractionReducer).toHaveNthReturnedWith(3, 2);
|
|
1483
|
+
});
|
|
1484
|
+
(0, _globals.test)('reducer call should not be cached if parameters have changed', function () {
|
|
1485
|
+
var count = 0;
|
|
1486
|
+
var buttonText = 'button';
|
|
1487
|
+
var StringUseCaseTestComponent = function StringUseCaseTestComponent() {
|
|
1488
|
+
var _useUseCase18 = (0, _.useUseCase)(mathUseCase),
|
|
1489
|
+
subtraction = _useUseCase18.subtraction;
|
|
1490
|
+
var update = (0, _ahooks.useUpdate)();
|
|
1491
|
+
subtraction(5, count++);
|
|
1492
|
+
var onUpdate = function onUpdate() {
|
|
1493
|
+
update();
|
|
1494
|
+
};
|
|
1495
|
+
return (0, _jsxRuntime.jsx)("div", {
|
|
1496
|
+
children: (0, _jsxRuntime.jsx)("button", {
|
|
1497
|
+
onClick: onUpdate,
|
|
1498
|
+
children: buttonText
|
|
1499
|
+
})
|
|
1500
|
+
});
|
|
1501
|
+
};
|
|
1502
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(StringUseCaseTestComponent, {}));
|
|
1503
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(1);
|
|
1504
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledWith(5, 0);
|
|
1505
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1506
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledTimes(2);
|
|
1507
|
+
(0, _globals.expect)(subtractionReducer).toHaveBeenCalledWith(5, 1);
|
|
1508
|
+
(0, _globals.expect)(subtractionReducer).toHaveReturnedWith(4);
|
|
1509
|
+
});
|
|
1510
|
+
(0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
|
|
1511
|
+
var _renderHook24 = (0, _react.renderHook)(function () {
|
|
1512
|
+
return (0, _.useUseCase)(mathUseCase, {
|
|
1513
|
+
extraValue: 5
|
|
1514
|
+
});
|
|
1515
|
+
}),
|
|
1516
|
+
result = _renderHook24.result;
|
|
1517
|
+
var reducers = result.current;
|
|
1518
|
+
var add = reducers.add;
|
|
1519
|
+
(0, _globals.expect)(add(1, 2)).toBe(8);
|
|
1520
|
+
});
|
|
1521
|
+
(0, _globals.test)('when `options` has changed, it should not trigger update', function () {
|
|
1522
|
+
var onUpdate = _globals.jest.fn();
|
|
1523
|
+
var onDeepUpdate = _globals.jest.fn();
|
|
1524
|
+
var _renderHook25 = (0, _react.renderHook)(function () {
|
|
1525
|
+
var _useState7 = (0, _react2.useState)(0),
|
|
1526
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
1527
|
+
extraValue = _useState8[0],
|
|
1528
|
+
setExtraValue = _useState8[1];
|
|
1529
|
+
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
1530
|
+
extraValue: extraValue
|
|
1531
|
+
});
|
|
1532
|
+
(0, _ahooks.useUpdateEffect)(function () {
|
|
1533
|
+
onUpdate();
|
|
1534
|
+
}, [reducers]);
|
|
1535
|
+
useDeepCompareUpdate(function () {
|
|
1536
|
+
onDeepUpdate();
|
|
1537
|
+
}, [reducers]);
|
|
1538
|
+
return setExtraValue;
|
|
1539
|
+
}),
|
|
1540
|
+
result = _renderHook25.result;
|
|
1541
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1542
|
+
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1543
|
+
(0, _react.act)(function () {
|
|
1544
|
+
result.current(3);
|
|
1545
|
+
});
|
|
1546
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1547
|
+
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1548
|
+
});
|
|
1549
|
+
(0, _globals.test)('when `deps` change, it should update reducers', function () {
|
|
1550
|
+
var onUpdate = _globals.jest.fn();
|
|
1551
|
+
var onDeepUpdate = _globals.jest.fn();
|
|
1552
|
+
var _renderHook26 = (0, _react.renderHook)(function () {
|
|
1553
|
+
var _useState9 = (0, _react2.useState)(0),
|
|
1554
|
+
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
1555
|
+
extraValue = _useState10[0],
|
|
1556
|
+
setExtraValue = _useState10[1];
|
|
1557
|
+
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
1558
|
+
extraValue: extraValue
|
|
1559
|
+
}, [extraValue]);
|
|
1560
|
+
(0, _ahooks.useUpdateEffect)(function () {
|
|
1561
|
+
onUpdate();
|
|
1562
|
+
}, [reducers]);
|
|
1563
|
+
useDeepCompareUpdate(function () {
|
|
1564
|
+
onDeepUpdate();
|
|
1565
|
+
}, [reducers]);
|
|
1566
|
+
return setExtraValue;
|
|
1567
|
+
}),
|
|
1568
|
+
result = _renderHook26.result;
|
|
1569
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1570
|
+
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1571
|
+
(0, _react.act)(function () {
|
|
1572
|
+
result.current(3);
|
|
1573
|
+
});
|
|
1574
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
|
|
1575
|
+
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(1);
|
|
1576
|
+
});
|
|
1577
|
+
(0, _globals.test)('empty `deps` should not update reducers', function () {
|
|
1578
|
+
var onUpdate = _globals.jest.fn();
|
|
1579
|
+
var onDeepUpdate = _globals.jest.fn();
|
|
1580
|
+
var _renderHook27 = (0, _react.renderHook)(function () {
|
|
1581
|
+
var _useState11 = (0, _react2.useState)(0),
|
|
1582
|
+
_useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
|
|
1583
|
+
extraValue = _useState12[0],
|
|
1584
|
+
setExtraValue = _useState12[1];
|
|
1585
|
+
var reducers = (0, _.useUseCase)(mathUseCase, {
|
|
1586
|
+
extraValue: extraValue
|
|
1587
|
+
}, []);
|
|
1588
|
+
(0, _ahooks.useUpdateEffect)(function () {
|
|
1589
|
+
onUpdate();
|
|
1590
|
+
}, [reducers]);
|
|
1591
|
+
useDeepCompareUpdate(function () {
|
|
1592
|
+
onDeepUpdate();
|
|
1593
|
+
}, [reducers]);
|
|
1594
|
+
return setExtraValue;
|
|
1595
|
+
}),
|
|
1596
|
+
result = _renderHook27.result;
|
|
1597
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1598
|
+
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1599
|
+
(0, _react.act)(function () {
|
|
1600
|
+
result.current(3);
|
|
1601
|
+
});
|
|
1602
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1603
|
+
(0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1604
|
+
});
|
|
1605
|
+
(0, _globals.test)('should not trigger update', function () {
|
|
1606
|
+
var onUpdate = _globals.jest.fn();
|
|
1607
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(MathParent, {
|
|
1608
|
+
onUpdate: onUpdate
|
|
1609
|
+
}));
|
|
1610
|
+
_react.fireEvent.click(_react.screen.getByText(PARENT_BUTTON_TEXT));
|
|
1611
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
|
|
1612
|
+
});
|
|
1613
|
+
});
|
|
1614
|
+
(0, _globals.describe)('`useUseCase` should work with 1+ arguments on context mode', function () {
|
|
1615
|
+
(0, _globals.test)('should work within <Child /> which it is under <Parent />', function () {
|
|
1616
|
+
var textPrefix = '>>';
|
|
1617
|
+
var onUpdate = _globals.jest.fn();
|
|
1618
|
+
var onPathChange = _globals.jest.fn();
|
|
1619
|
+
var onUndefinedEntity = _globals.jest.fn();
|
|
1620
|
+
var onSetPath = _globals.jest.fn(function () {
|
|
1621
|
+
return PATH_1;
|
|
1622
|
+
});
|
|
1623
|
+
(0, _react.render)((0, _jsxRuntime.jsx)("div", {
|
|
1624
|
+
children: (0, _jsxRuntime.jsx)(Parent, {
|
|
1625
|
+
onSetPath: onSetPath,
|
|
1626
|
+
children: (0, _jsxRuntime.jsx)(Child, {
|
|
1627
|
+
textPrefix: textPrefix,
|
|
1628
|
+
onUpdate: onUpdate,
|
|
1629
|
+
onPathChange: onPathChange,
|
|
1630
|
+
onUndefinedEntity: onUndefinedEntity
|
|
1631
|
+
})
|
|
1632
|
+
})
|
|
1633
|
+
}));
|
|
1634
|
+
_react.fireEvent.click(_react.screen.getByText(PARENT_BUTTON_TEXT));
|
|
1635
|
+
(0, _globals.expect)(onSetPath).toHaveBeenCalledTimes(1);
|
|
1636
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
|
|
1637
|
+
(0, _globals.expect)(onPathChange).toHaveBeenCalledWith(PATH_1);
|
|
1638
|
+
_react.fireEvent.click(_react.screen.getByText(textPrefix + CHILD_BUTTON_TEXT));
|
|
1639
|
+
(0, _globals.expect)(onSetPath).toHaveBeenCalledTimes(1);
|
|
1640
|
+
(0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(2);
|
|
1641
|
+
(0, _globals.expect)(onPathChange).toHaveBeenCalledWith('');
|
|
1642
|
+
(0, _globals.expect)(onUndefinedEntity).toHaveBeenCalledTimes(0);
|
|
1643
|
+
});
|
|
1644
|
+
(0, _globals.test)('reducer call should be cached if component is at rendering phase in child components', function () {
|
|
1645
|
+
var buttonText = 'button';
|
|
1646
|
+
var addReducer = _globals.jest.fn(function (entity, substring) {
|
|
1647
|
+
return entity + substring;
|
|
1648
|
+
});
|
|
1649
|
+
var stringUseCase = function stringUseCase() {
|
|
1650
|
+
var entityReducers = (0, _usecases.entityUseCase)();
|
|
1651
|
+
return _objectSpread(_objectSpread({}, entityReducers), {}, {
|
|
1652
|
+
add: addReducer
|
|
1653
|
+
});
|
|
1654
|
+
};
|
|
1655
|
+
var A = function A() {
|
|
1656
|
+
var _useUseCase19 = (0, _.useUseCase)(stringUseCase),
|
|
1657
|
+
_useUseCase20 = (0, _slicedToArray2["default"])(_useUseCase19, 2),
|
|
1658
|
+
add = _useUseCase20[1].add;
|
|
1659
|
+
var update = (0, _ahooks.useUpdate)();
|
|
1660
|
+
var onClick = function onClick() {
|
|
1661
|
+
update();
|
|
1662
|
+
};
|
|
1663
|
+
add('x');
|
|
1664
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
1665
|
+
onClick: onClick,
|
|
1666
|
+
children: buttonText
|
|
1667
|
+
});
|
|
1668
|
+
};
|
|
1669
|
+
var B = function B() {
|
|
1670
|
+
var _useUseCase21 = (0, _.useUseCase)('', stringUseCase),
|
|
1671
|
+
_useUseCase22 = (0, _slicedToArray2["default"])(_useUseCase21, 3),
|
|
1672
|
+
Provider = _useUseCase22[2];
|
|
1673
|
+
return (0, _jsxRuntime.jsx)(Provider, {
|
|
1674
|
+
children: (0, _jsxRuntime.jsx)(A, {})
|
|
1675
|
+
});
|
|
1676
|
+
};
|
|
1677
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1678
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(1);
|
|
1679
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('', 'x');
|
|
1680
|
+
(0, _globals.expect)(addReducer).toHaveReturnedWith('x');
|
|
1681
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1682
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(1);
|
|
1683
|
+
});
|
|
1684
|
+
(0, _globals.test)('reducer call should not be cached if component is not at rendering phase in child components', function () {
|
|
1685
|
+
var buttonText = 'button';
|
|
1686
|
+
var addReducer = _globals.jest.fn(function (entity, substring) {
|
|
1687
|
+
return entity + substring;
|
|
1688
|
+
});
|
|
1689
|
+
var stringUseCase = function stringUseCase() {
|
|
1690
|
+
var entityReducers = (0, _usecases.entityUseCase)();
|
|
1691
|
+
return _objectSpread(_objectSpread({}, entityReducers), {}, {
|
|
1692
|
+
add: addReducer
|
|
1693
|
+
});
|
|
1694
|
+
};
|
|
1695
|
+
var A = function A() {
|
|
1696
|
+
var _useUseCase23 = (0, _.useUseCase)(stringUseCase),
|
|
1697
|
+
_useUseCase24 = (0, _slicedToArray2["default"])(_useUseCase23, 2),
|
|
1698
|
+
add = _useUseCase24[1].add;
|
|
1699
|
+
var onClick = function onClick() {
|
|
1700
|
+
add('x');
|
|
1701
|
+
};
|
|
1702
|
+
(0, _ahooks.useMount)(function () {
|
|
1703
|
+
add('x');
|
|
1704
|
+
add('x');
|
|
1705
|
+
});
|
|
1706
|
+
return (0, _jsxRuntime.jsx)("button", {
|
|
1707
|
+
onClick: onClick,
|
|
1708
|
+
children: buttonText
|
|
1709
|
+
});
|
|
1710
|
+
};
|
|
1711
|
+
var B = function B() {
|
|
1712
|
+
var _useUseCase25 = (0, _.useUseCase)('', stringUseCase),
|
|
1713
|
+
_useUseCase26 = (0, _slicedToArray2["default"])(_useUseCase25, 3),
|
|
1714
|
+
Provider = _useUseCase26[2];
|
|
1715
|
+
return (0, _jsxRuntime.jsx)(Provider, {
|
|
1716
|
+
children: (0, _jsxRuntime.jsx)(A, {})
|
|
1717
|
+
});
|
|
1718
|
+
};
|
|
1719
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1720
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(2);
|
|
1721
|
+
(0, _globals.expect)(addReducer).toHaveBeenNthCalledWith(1, '', 'x');
|
|
1722
|
+
(0, _globals.expect)(addReducer).toHaveBeenNthCalledWith(2, '', 'x');
|
|
1723
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1724
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
|
|
1725
|
+
(0, _globals.expect)(addReducer).toHaveBeenNthCalledWith(3, '', 'x');
|
|
1726
|
+
});
|
|
1727
|
+
(0, _globals.test)('reducer call should not be cached if entity or parameters have changed in child components', function () {
|
|
1728
|
+
var count = 0;
|
|
1729
|
+
var addedText = 'x';
|
|
1730
|
+
var setButtonText = 'button';
|
|
1731
|
+
var updateButtonText = 'update';
|
|
1732
|
+
var addReducer = _globals.jest.fn(function (entity, substring) {
|
|
1733
|
+
return entity + substring;
|
|
1734
|
+
});
|
|
1735
|
+
var stringUseCase = function stringUseCase() {
|
|
1736
|
+
var entityReducers = (0, _usecases.entityUseCase)();
|
|
1737
|
+
return _objectSpread(_objectSpread({}, entityReducers), {}, {
|
|
1738
|
+
add: addReducer
|
|
1739
|
+
});
|
|
1740
|
+
};
|
|
1741
|
+
var A = function A() {
|
|
1742
|
+
var _useUseCase27 = (0, _.useUseCase)(stringUseCase),
|
|
1743
|
+
_useUseCase28 = (0, _slicedToArray2["default"])(_useUseCase27, 2),
|
|
1744
|
+
_useUseCase28$ = _useUseCase28[1],
|
|
1745
|
+
add = _useUseCase28$.add,
|
|
1746
|
+
setEntity = _useUseCase28$.setEntity;
|
|
1747
|
+
var update = (0, _ahooks.useUpdate)();
|
|
1748
|
+
add(addedText);
|
|
1749
|
+
var onSet = function onSet() {
|
|
1750
|
+
setEntity("".concat(count++));
|
|
1751
|
+
};
|
|
1752
|
+
var onUpdate = function onUpdate() {
|
|
1753
|
+
update();
|
|
1754
|
+
};
|
|
1755
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
1756
|
+
children: [(0, _jsxRuntime.jsx)("button", {
|
|
1757
|
+
onClick: onSet,
|
|
1758
|
+
children: setButtonText
|
|
1759
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
1760
|
+
onClick: onUpdate,
|
|
1761
|
+
children: updateButtonText
|
|
1762
|
+
})]
|
|
1763
|
+
});
|
|
1764
|
+
};
|
|
1765
|
+
var B = function B() {
|
|
1766
|
+
var _useUseCase29 = (0, _.useUseCase)('', stringUseCase),
|
|
1767
|
+
_useUseCase30 = (0, _slicedToArray2["default"])(_useUseCase29, 3),
|
|
1768
|
+
Provider = _useUseCase30[2];
|
|
1769
|
+
return (0, _jsxRuntime.jsx)(Provider, {
|
|
1770
|
+
children: (0, _jsxRuntime.jsx)(A, {})
|
|
1771
|
+
});
|
|
1772
|
+
};
|
|
1773
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1774
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(1);
|
|
1775
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('', 'x');
|
|
1776
|
+
_react.fireEvent.click(_react.screen.getByText(setButtonText));
|
|
1777
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(2);
|
|
1778
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('0', 'x');
|
|
1779
|
+
(0, _globals.expect)(addReducer).toHaveReturnedWith('0x');
|
|
1780
|
+
addedText = 'y';
|
|
1781
|
+
_react.fireEvent.click(_react.screen.getByText(updateButtonText));
|
|
1782
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
|
|
1783
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledWith('0', 'y');
|
|
1784
|
+
(0, _globals.expect)(addReducer).toHaveReturnedWith('0y');
|
|
1785
|
+
_react.fireEvent.click(_react.screen.getByText(updateButtonText));
|
|
1786
|
+
(0, _globals.expect)(addReducer).toHaveBeenCalledTimes(3);
|
|
1787
|
+
});
|
|
1788
|
+
(0, _globals.test)('`options.onChange` event should be trigger at child elements', function () {
|
|
1789
|
+
var onFirstChange = _globals.jest.fn();
|
|
1790
|
+
var onSecondChange = _globals.jest.fn();
|
|
1791
|
+
var onParentPathChange = _globals.jest.fn();
|
|
1792
|
+
var firstButtonText = 'first button';
|
|
1793
|
+
var secondButtonText = 'second button';
|
|
1794
|
+
var onChange = onFirstChange;
|
|
1795
|
+
var A = function A() {
|
|
1796
|
+
(0, _.useUseCase)(fileUseCase, {
|
|
1797
|
+
onChange: onChange
|
|
1798
|
+
});
|
|
1799
|
+
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1800
|
+
};
|
|
1801
|
+
var B = function B() {
|
|
1802
|
+
var _useUseCase31 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
1803
|
+
onChange: onParentPathChange
|
|
1804
|
+
}),
|
|
1805
|
+
_useUseCase32 = (0, _slicedToArray2["default"])(_useUseCase31, 3),
|
|
1806
|
+
setPath = _useUseCase32[1].setPath,
|
|
1807
|
+
Provider = _useUseCase32[2];
|
|
1808
|
+
var onFirstClick = function onFirstClick() {
|
|
1809
|
+
setPath(PATH_1);
|
|
1810
|
+
onChange = onSecondChange;
|
|
1811
|
+
};
|
|
1812
|
+
var onSecondClick = function onSecondClick() {
|
|
1813
|
+
setPath('');
|
|
1814
|
+
};
|
|
1815
|
+
return (0, _jsxRuntime.jsxs)(Provider, {
|
|
1816
|
+
children: [(0, _jsxRuntime.jsx)(A, {}), (0, _jsxRuntime.jsx)("button", {
|
|
1817
|
+
onClick: onFirstClick,
|
|
1818
|
+
children: firstButtonText
|
|
1819
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
1820
|
+
onClick: onSecondClick,
|
|
1821
|
+
children: secondButtonText
|
|
1822
|
+
})]
|
|
1823
|
+
});
|
|
1824
|
+
};
|
|
1825
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(B, {}));
|
|
1826
|
+
(0, _globals.expect)(onFirstChange).toHaveBeenCalledTimes(0);
|
|
1827
|
+
_react.fireEvent.click(_react.screen.getByText(firstButtonText));
|
|
1828
|
+
(0, _globals.expect)(onFirstChange).toHaveBeenCalledTimes(1);
|
|
1829
|
+
(0, _globals.expect)(onFirstChange).toHaveBeenLastCalledWith(_objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1830
|
+
ext: EXT_1,
|
|
1831
|
+
path: PATH_1
|
|
1832
|
+
}), defaultFile);
|
|
1833
|
+
(0, _globals.expect)(onParentPathChange).toHaveBeenCalledTimes(1);
|
|
1834
|
+
(0, _globals.expect)(onSecondChange).toHaveBeenCalledTimes(0);
|
|
1835
|
+
_react.fireEvent.click(_react.screen.getByText(secondButtonText));
|
|
1836
|
+
(0, _globals.expect)(onSecondChange).toHaveBeenCalledTimes(1);
|
|
1837
|
+
(0, _globals.expect)(onSecondChange).toHaveBeenLastCalledWith(defaultFile, _objectSpread(_objectSpread({}, defaultFile), {}, {
|
|
1838
|
+
ext: EXT_1,
|
|
1839
|
+
path: PATH_1
|
|
1840
|
+
}));
|
|
1841
|
+
(0, _globals.expect)(onFirstChange).toHaveBeenCalledTimes(1);
|
|
1842
|
+
(0, _globals.expect)(onParentPathChange).toHaveBeenCalledTimes(2);
|
|
1843
|
+
});
|
|
1844
|
+
(0, _globals.test)('`options.onChange` event should be trigger in orders', function () {
|
|
1845
|
+
var changeTimes = 0;
|
|
1846
|
+
var updateChangeTimes = function updateChangeTimes() {
|
|
1847
|
+
return ++changeTimes;
|
|
1848
|
+
};
|
|
1849
|
+
var onChangeA = _globals.jest.fn(updateChangeTimes);
|
|
1850
|
+
var onChangeB = _globals.jest.fn(updateChangeTimes);
|
|
1851
|
+
var onChangeC = _globals.jest.fn(updateChangeTimes);
|
|
1852
|
+
var buttonText = 'my button';
|
|
1853
|
+
var A = function A(_ref8) {
|
|
1854
|
+
var children = _ref8.children;
|
|
1855
|
+
(0, _.useUseCase)(fileUseCase, {
|
|
1856
|
+
onChange: onChangeA
|
|
1857
|
+
});
|
|
1858
|
+
return (0, _jsxRuntime.jsx)(_react2.Fragment, {
|
|
1859
|
+
children: children
|
|
1860
|
+
});
|
|
1861
|
+
};
|
|
1862
|
+
var B = function B() {
|
|
1863
|
+
(0, _.useUseCase)(fileUseCase, {
|
|
1864
|
+
onChange: onChangeB
|
|
1865
|
+
});
|
|
1866
|
+
return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
|
|
1867
|
+
};
|
|
1868
|
+
var C = function C() {
|
|
1869
|
+
var _useUseCase33 = (0, _.useUseCase)(defaultFile, fileUseCase, {
|
|
1870
|
+
onChange: onChangeC
|
|
1871
|
+
}),
|
|
1872
|
+
_useUseCase34 = (0, _slicedToArray2["default"])(_useUseCase33, 3),
|
|
1873
|
+
setPath = _useUseCase34[1].setPath,
|
|
1874
|
+
Provider = _useUseCase34[2];
|
|
1875
|
+
var onFirstClick = function onFirstClick() {
|
|
1876
|
+
setPath(PATH_1);
|
|
1877
|
+
};
|
|
1878
|
+
return (0, _jsxRuntime.jsxs)(Provider, {
|
|
1879
|
+
children: [(0, _jsxRuntime.jsx)(A, {
|
|
1880
|
+
children: (0, _jsxRuntime.jsx)(B, {})
|
|
1881
|
+
}), (0, _jsxRuntime.jsx)("button", {
|
|
1882
|
+
onClick: onFirstClick,
|
|
1883
|
+
children: buttonText
|
|
1884
|
+
})]
|
|
1885
|
+
});
|
|
1886
|
+
};
|
|
1887
|
+
(0, _react.render)((0, _jsxRuntime.jsx)(C, {}));
|
|
1888
|
+
(0, _globals.expect)(changeTimes).toBe(0);
|
|
1889
|
+
_react.fireEvent.click(_react.screen.getByText(buttonText));
|
|
1890
|
+
(0, _globals.expect)(onChangeA).toHaveReturnedWith(2);
|
|
1891
|
+
(0, _globals.expect)(onChangeB).toHaveReturnedWith(1);
|
|
1892
|
+
(0, _globals.expect)(onChangeC).toHaveReturnedWith(3);
|
|
1893
|
+
});
|
|
1894
|
+
});
|
|
1552
1895
|
});
|