@mic-rexjs/usecases-react 2.13.6 → 3.0.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/useEntity/index.d.ts +5 -2
- package/es/hooks/useEntity/index.js +88 -17
- package/es/hooks/useExec/index.d.ts +2 -0
- package/es/hooks/useExec/index.js +13 -0
- package/es/hooks/useFullArguments/types.d.ts +3 -3
- package/es/hooks/useReducers/index.js +2 -1
- package/es/hooks/useStore/index.d.ts +1 -1
- package/es/hooks/useStore/index.js +51 -73
- package/es/hooks/useUseCase/index.js +2 -2
- package/es/hooks/useUseCase/index.test.js +250 -183
- package/es/hooks/useUseCase/types.d.ts +2 -2
- package/es/index.d.ts +1 -0
- package/es/types.d.ts +7 -3
- package/es/usecases/methodUseCase/index.js +2 -2
- package/es/usecases/valueUseCase/index.js +32 -23
- package/es/usecases/valueUseCase/types.d.ts +3 -2
- package/lib/hooks/useEntity/index.js +88 -17
- package/lib/hooks/useExec/index.js +19 -0
- package/lib/hooks/useReducers/index.js +2 -1
- package/lib/hooks/useStore/index.js +50 -73
- package/lib/hooks/useUseCase/index.js +2 -2
- package/lib/hooks/useUseCase/index.test.js +272 -191
- package/lib/usecases/methodUseCase/index.js +2 -2
- package/lib/usecases/valueUseCase/index.js +34 -25
- package/package.json +3 -3
- package/es/methods/initStore/index.d.ts +0 -3
- package/es/methods/initStore/index.js +0 -23
- package/lib/methods/initStore/index.js +0 -29
|
@@ -422,50 +422,69 @@ describe('useUseCase', () => {
|
|
|
422
422
|
path: PATH_2
|
|
423
423
|
});
|
|
424
424
|
});
|
|
425
|
-
test('
|
|
425
|
+
test('Do not update entity when the initializer has yielded some constant entity properties', () => {
|
|
426
426
|
let updateIndex = 0;
|
|
427
|
-
const file = defaultFile;
|
|
428
|
-
const symbol = Symbol('changedDep');
|
|
429
|
-
const onChangedDeps = jest.fn();
|
|
430
427
|
const _renderHook0 = renderHook(() => {
|
|
431
|
-
return useUseCase(function () {
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
num1 = _changedDeps[1],
|
|
438
|
-
index2 = _changedDeps[2],
|
|
439
|
-
string1 = _changedDeps[3],
|
|
440
|
-
index3 = _changedDeps[4],
|
|
441
|
-
boolean1 = _changedDeps[5];
|
|
442
|
-
const a = index1;
|
|
443
|
-
const b = num1;
|
|
444
|
-
const c = index2;
|
|
445
|
-
const d = string1;
|
|
446
|
-
const e = index3;
|
|
447
|
-
const f = boolean1;
|
|
448
|
-
void a;
|
|
449
|
-
void b;
|
|
450
|
-
void c;
|
|
451
|
-
void d;
|
|
452
|
-
void e;
|
|
453
|
-
void f;
|
|
454
|
-
// 先 `fill` 填充,再合并,以 `symbol` 代替虚无项去匹配
|
|
455
|
-
onChangedDeps(Object.assign([...changedDeps].fill(symbol), changedDeps));
|
|
456
|
-
return currentFile;
|
|
457
|
-
}, fileUseCase, {}, [updateIndex++, 0, updateIndex++, 'xyz', updateIndex++, false]);
|
|
428
|
+
return useUseCase(function* () {
|
|
429
|
+
yield defaultFile;
|
|
430
|
+
yield {
|
|
431
|
+
path: PATH_1
|
|
432
|
+
};
|
|
433
|
+
}, fileUseCase, {}, [updateIndex++]);
|
|
458
434
|
}),
|
|
459
435
|
result = _renderHook0.result;
|
|
460
|
-
const
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
436
|
+
const current1 = result.current;
|
|
437
|
+
const _current = _slicedToArray(current1, 2),
|
|
438
|
+
entity1 = _current[0],
|
|
439
|
+
setEntity = _current[1].setEntity;
|
|
440
|
+
expect(entity1).toEqual({
|
|
441
|
+
...defaultFile,
|
|
442
|
+
path: PATH_1
|
|
443
|
+
});
|
|
464
444
|
act(() => {
|
|
465
|
-
|
|
445
|
+
setEntity({
|
|
446
|
+
path: PATH_2
|
|
447
|
+
});
|
|
448
|
+
});
|
|
449
|
+
const current2 = result.current;
|
|
450
|
+
const _current2 = _slicedToArray(current2, 1),
|
|
451
|
+
entity2 = _current2[0];
|
|
452
|
+
expect(entity2).toEqual({
|
|
453
|
+
...defaultFile,
|
|
454
|
+
path: PATH_2
|
|
455
|
+
});
|
|
456
|
+
});
|
|
457
|
+
test('Should update entity when the initializer has returned some cconstant entity properties after `setEntity`', () => {
|
|
458
|
+
let updateIndex = 0;
|
|
459
|
+
const _renderHook1 = renderHook(() => {
|
|
460
|
+
return useUseCase(function* () {
|
|
461
|
+
yield defaultFile;
|
|
462
|
+
return {
|
|
463
|
+
path: PATH_1
|
|
464
|
+
};
|
|
465
|
+
}, fileUseCase, {}, [updateIndex++]);
|
|
466
|
+
}),
|
|
467
|
+
result = _renderHook1.result;
|
|
468
|
+
const current1 = result.current;
|
|
469
|
+
const _current3 = _slicedToArray(current1, 2),
|
|
470
|
+
entity1 = _current3[0],
|
|
471
|
+
setEntity = _current3[1].setEntity;
|
|
472
|
+
expect(entity1).toEqual({
|
|
473
|
+
...defaultFile,
|
|
474
|
+
path: PATH_1
|
|
475
|
+
});
|
|
476
|
+
act(() => {
|
|
477
|
+
setEntity({
|
|
478
|
+
path: PATH_2
|
|
479
|
+
});
|
|
480
|
+
});
|
|
481
|
+
const current2 = result.current;
|
|
482
|
+
const _current4 = _slicedToArray(current2, 1),
|
|
483
|
+
entity2 = _current4[0];
|
|
484
|
+
expect(entity2).toEqual({
|
|
485
|
+
...defaultFile,
|
|
486
|
+
path: PATH_1
|
|
466
487
|
});
|
|
467
|
-
expect(onChangedDeps).toHaveBeenCalledTimes(2);
|
|
468
|
-
expect(onChangedDeps).toHaveBeenCalledWith([3, symbol, 4, symbol, 5, symbol]);
|
|
469
488
|
});
|
|
470
489
|
test('Entity property getter should always return the same object if nothing changed after component update', () => {
|
|
471
490
|
let updateTimes = 0;
|
|
@@ -475,7 +494,7 @@ describe('useUseCase', () => {
|
|
|
475
494
|
return {};
|
|
476
495
|
}
|
|
477
496
|
};
|
|
478
|
-
const
|
|
497
|
+
const _renderHook10 = renderHook(() => {
|
|
479
498
|
const collection = useUseCase(data, entityUseCase);
|
|
480
499
|
const _collection3 = _slicedToArray(collection, 1),
|
|
481
500
|
obj = _collection3[0].obj;
|
|
@@ -485,7 +504,7 @@ describe('useUseCase', () => {
|
|
|
485
504
|
}, [obj]);
|
|
486
505
|
return collection;
|
|
487
506
|
}),
|
|
488
|
-
rerender =
|
|
507
|
+
rerender = _renderHook10.rerender;
|
|
489
508
|
expect(updateTimes).toEqual(1);
|
|
490
509
|
act(() => {
|
|
491
510
|
rerender();
|
|
@@ -500,7 +519,7 @@ describe('useUseCase', () => {
|
|
|
500
519
|
return {};
|
|
501
520
|
}
|
|
502
521
|
};
|
|
503
|
-
const
|
|
522
|
+
const _renderHook11 = renderHook(() => {
|
|
504
523
|
const collection = useUseCase(data, entityUseCase);
|
|
505
524
|
const _collection4 = _slicedToArray(collection, 1),
|
|
506
525
|
obj = _collection4[0].obj;
|
|
@@ -510,10 +529,10 @@ describe('useUseCase', () => {
|
|
|
510
529
|
}, [obj]);
|
|
511
530
|
return collection;
|
|
512
531
|
}),
|
|
513
|
-
result =
|
|
532
|
+
result = _renderHook11.result;
|
|
514
533
|
const current = result.current;
|
|
515
|
-
const
|
|
516
|
-
setEntity =
|
|
534
|
+
const _current5 = _slicedToArray(current, 2),
|
|
535
|
+
setEntity = _current5[1].setEntity;
|
|
517
536
|
expect(updateTimes).toEqual(1);
|
|
518
537
|
act(() => {
|
|
519
538
|
setEntity({
|
|
@@ -526,7 +545,7 @@ describe('useUseCase', () => {
|
|
|
526
545
|
let entityArg;
|
|
527
546
|
let times = 0;
|
|
528
547
|
const file = defaultFile;
|
|
529
|
-
const
|
|
548
|
+
const _renderHook12 = renderHook(() => {
|
|
530
549
|
return useUseCase(function () {
|
|
531
550
|
let entity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : file;
|
|
532
551
|
const path = entity.path;
|
|
@@ -537,7 +556,7 @@ describe('useUseCase', () => {
|
|
|
537
556
|
};
|
|
538
557
|
}, fileUseCase, {}, [times++]);
|
|
539
558
|
}),
|
|
540
|
-
result =
|
|
559
|
+
result = _renderHook12.result;
|
|
541
560
|
const collection1 = result.current;
|
|
542
561
|
const _collection5 = _slicedToArray(collection1, 2),
|
|
543
562
|
currentFile1 = _collection5[0],
|
|
@@ -563,20 +582,20 @@ describe('useUseCase', () => {
|
|
|
563
582
|
});
|
|
564
583
|
});
|
|
565
584
|
test('`reducers` should be returned as an object', () => {
|
|
566
|
-
const
|
|
585
|
+
const _renderHook13 = renderHook(() => {
|
|
567
586
|
return useUseCase(defaultFile, fileUseCase);
|
|
568
587
|
}),
|
|
569
|
-
result =
|
|
588
|
+
result = _renderHook13.result;
|
|
570
589
|
const cores = result.current;
|
|
571
590
|
const _cores2 = _slicedToArray(cores, 2),
|
|
572
591
|
reducers = _cores2[1];
|
|
573
592
|
expect(typeof reducers).toBe('object');
|
|
574
593
|
});
|
|
575
594
|
test('`Provider` should be returned as a function', () => {
|
|
576
|
-
const
|
|
595
|
+
const _renderHook14 = renderHook(() => {
|
|
577
596
|
return useUseCase(defaultFile, fileUseCase);
|
|
578
597
|
}),
|
|
579
|
-
result =
|
|
598
|
+
result = _renderHook14.result;
|
|
580
599
|
const cores = result.current;
|
|
581
600
|
const _cores3 = _slicedToArray(cores, 3),
|
|
582
601
|
Provider = _cores3[2];
|
|
@@ -584,11 +603,11 @@ describe('useUseCase', () => {
|
|
|
584
603
|
});
|
|
585
604
|
test('`usecase` should be called only once if deps has not provided', () => {
|
|
586
605
|
const mockUseCase = jest.fn(fileUseCase);
|
|
587
|
-
const
|
|
606
|
+
const _renderHook15 = renderHook(() => {
|
|
588
607
|
return useUseCase(defaultFile, mockUseCase);
|
|
589
608
|
}),
|
|
590
|
-
result =
|
|
591
|
-
rerender =
|
|
609
|
+
result = _renderHook15.result,
|
|
610
|
+
rerender = _renderHook15.rerender;
|
|
592
611
|
const cores = result.current;
|
|
593
612
|
const _cores4 = _slicedToArray(cores, 2),
|
|
594
613
|
setEntity = _cores4[1].setEntity;
|
|
@@ -603,11 +622,11 @@ describe('useUseCase', () => {
|
|
|
603
622
|
});
|
|
604
623
|
test('`usecase` should be called only once if deps has not changed', () => {
|
|
605
624
|
const mockUseCase = jest.fn(fileUseCase);
|
|
606
|
-
const
|
|
625
|
+
const _renderHook16 = renderHook(() => {
|
|
607
626
|
return useUseCase(defaultFile, mockUseCase, {}, [1, 'x']);
|
|
608
627
|
}),
|
|
609
|
-
result =
|
|
610
|
-
rerender =
|
|
628
|
+
result = _renderHook16.result,
|
|
629
|
+
rerender = _renderHook16.rerender;
|
|
611
630
|
const cores = result.current;
|
|
612
631
|
const _cores5 = _slicedToArray(cores, 2),
|
|
613
632
|
setEntity = _cores5[1].setEntity;
|
|
@@ -623,11 +642,11 @@ describe('useUseCase', () => {
|
|
|
623
642
|
test('`usecase` should be called if deps has changed', () => {
|
|
624
643
|
let i = 0;
|
|
625
644
|
const mockUseCase = jest.fn(fileUseCase);
|
|
626
|
-
const
|
|
645
|
+
const _renderHook17 = renderHook(() => {
|
|
627
646
|
return useUseCase(defaultFile, mockUseCase, {}, [i++, 'x']);
|
|
628
647
|
}),
|
|
629
|
-
result =
|
|
630
|
-
rerender =
|
|
648
|
+
result = _renderHook17.result,
|
|
649
|
+
rerender = _renderHook17.rerender;
|
|
631
650
|
const cores = result.current;
|
|
632
651
|
const _cores6 = _slicedToArray(cores, 2),
|
|
633
652
|
setEntity = _cores6[1].setEntity;
|
|
@@ -644,7 +663,7 @@ describe('useUseCase', () => {
|
|
|
644
663
|
test('after call non-generator reducer, it should not trigger update', () => {
|
|
645
664
|
const onUpdate = jest.fn();
|
|
646
665
|
const onDeepUpdate = jest.fn();
|
|
647
|
-
const
|
|
666
|
+
const _renderHook18 = renderHook(() => {
|
|
648
667
|
const context = useUseCase(defaultFile, fileUseCase);
|
|
649
668
|
const _context = _slicedToArray(context, 2),
|
|
650
669
|
reducers = _context[1];
|
|
@@ -664,7 +683,7 @@ describe('useUseCase', () => {
|
|
|
664
683
|
update();
|
|
665
684
|
};
|
|
666
685
|
}),
|
|
667
|
-
result =
|
|
686
|
+
result = _renderHook18.result;
|
|
668
687
|
act(() => {
|
|
669
688
|
result.current();
|
|
670
689
|
});
|
|
@@ -678,13 +697,13 @@ describe('useUseCase', () => {
|
|
|
678
697
|
});
|
|
679
698
|
test('after `yield entity`, it should trigger update', () => {
|
|
680
699
|
const onUpdate = jest.fn();
|
|
681
|
-
const
|
|
700
|
+
const _renderHook19 = renderHook(() => {
|
|
682
701
|
useUpdateEffect(() => {
|
|
683
702
|
onUpdate();
|
|
684
703
|
});
|
|
685
704
|
return useUseCase(defaultFile, fileUseCase);
|
|
686
705
|
}),
|
|
687
|
-
result =
|
|
706
|
+
result = _renderHook19.result;
|
|
688
707
|
const cores = result.current;
|
|
689
708
|
const _cores7 = _slicedToArray(cores, 2),
|
|
690
709
|
entity = _cores7[0],
|
|
@@ -711,13 +730,13 @@ describe('useUseCase', () => {
|
|
|
711
730
|
});
|
|
712
731
|
test('after `yield entity` on async mode, it should trigger update', async () => {
|
|
713
732
|
const onUpdate = jest.fn();
|
|
714
|
-
const
|
|
733
|
+
const _renderHook20 = renderHook(() => {
|
|
715
734
|
useUpdateEffect(() => {
|
|
716
735
|
onUpdate();
|
|
717
736
|
});
|
|
718
737
|
return useUseCase(defaultFile, fileUseCase);
|
|
719
738
|
}),
|
|
720
|
-
result =
|
|
739
|
+
result = _renderHook20.result;
|
|
721
740
|
const cores = result.current;
|
|
722
741
|
const _cores8 = _slicedToArray(cores, 2),
|
|
723
742
|
entity = _cores8[0],
|
|
@@ -740,13 +759,13 @@ describe('useUseCase', () => {
|
|
|
740
759
|
});
|
|
741
760
|
test('after `yield entity` callbacks, it should trigger update', () => {
|
|
742
761
|
const onUpdate = jest.fn();
|
|
743
|
-
const
|
|
762
|
+
const _renderHook21 = renderHook(() => {
|
|
744
763
|
useUpdateEffect(() => {
|
|
745
764
|
onUpdate();
|
|
746
765
|
});
|
|
747
766
|
return useUseCase(defaultFile, fileUseCase);
|
|
748
767
|
}),
|
|
749
|
-
result =
|
|
768
|
+
result = _renderHook21.result;
|
|
750
769
|
const cores = result.current;
|
|
751
770
|
const _cores9 = _slicedToArray(cores, 2),
|
|
752
771
|
reducers = _cores9[1];
|
|
@@ -887,12 +906,12 @@ describe('useUseCase', () => {
|
|
|
887
906
|
});
|
|
888
907
|
test('`options.onChange` should be trigger when entity has changed', () => {
|
|
889
908
|
const onChange = jest.fn();
|
|
890
|
-
const
|
|
909
|
+
const _renderHook22 = renderHook(() => {
|
|
891
910
|
return useUseCase(defaultFile, fileUseCase, {
|
|
892
911
|
onChange
|
|
893
912
|
});
|
|
894
913
|
}),
|
|
895
|
-
result =
|
|
914
|
+
result = _renderHook22.result;
|
|
896
915
|
const cores = result.current;
|
|
897
916
|
const _cores0 = _slicedToArray(cores, 2),
|
|
898
917
|
reducers = _cores0[1];
|
|
@@ -912,12 +931,12 @@ describe('useUseCase', () => {
|
|
|
912
931
|
const onChange1 = jest.fn();
|
|
913
932
|
const onChange2 = jest.fn();
|
|
914
933
|
let onChange = onChange1;
|
|
915
|
-
const
|
|
934
|
+
const _renderHook23 = renderHook(() => {
|
|
916
935
|
return useUseCase(defaultFile, fileUseCase, {
|
|
917
936
|
onChange
|
|
918
937
|
}, []);
|
|
919
938
|
}),
|
|
920
|
-
result =
|
|
939
|
+
result = _renderHook23.result;
|
|
921
940
|
const cores = result.current;
|
|
922
941
|
const _cores1 = _slicedToArray(cores, 2),
|
|
923
942
|
reducers = _cores1[1];
|
|
@@ -950,7 +969,7 @@ describe('useUseCase', () => {
|
|
|
950
969
|
});
|
|
951
970
|
});
|
|
952
971
|
test('`options.options` should override rest options', () => {
|
|
953
|
-
const
|
|
972
|
+
const _renderHook24 = renderHook(() => {
|
|
954
973
|
return useUseCase(defaultFile, fileUseCase, {
|
|
955
974
|
pathPrefix: 'xyz/',
|
|
956
975
|
options: {
|
|
@@ -958,7 +977,7 @@ describe('useUseCase', () => {
|
|
|
958
977
|
}
|
|
959
978
|
});
|
|
960
979
|
}),
|
|
961
|
-
result =
|
|
980
|
+
result = _renderHook24.result;
|
|
962
981
|
const cores = result.current;
|
|
963
982
|
const _cores10 = _slicedToArray(cores, 2),
|
|
964
983
|
path = _cores10[0].path,
|
|
@@ -993,7 +1012,7 @@ describe('useUseCase', () => {
|
|
|
993
1012
|
test('when `options` has changed, it should not trigger update', () => {
|
|
994
1013
|
const onUpdate = jest.fn();
|
|
995
1014
|
const onDeepUpdate = jest.fn();
|
|
996
|
-
const
|
|
1015
|
+
const _renderHook25 = renderHook(() => {
|
|
997
1016
|
const _useState = useState('user/'),
|
|
998
1017
|
_useState2 = _slicedToArray(_useState, 2),
|
|
999
1018
|
pathPrefix = _useState2[0],
|
|
@@ -1009,7 +1028,7 @@ describe('useUseCase', () => {
|
|
|
1009
1028
|
}, [context]);
|
|
1010
1029
|
return setPathPrefix;
|
|
1011
1030
|
}),
|
|
1012
|
-
result =
|
|
1031
|
+
result = _renderHook25.result;
|
|
1013
1032
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
1014
1033
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1015
1034
|
act(() => {
|
|
@@ -1021,7 +1040,7 @@ describe('useUseCase', () => {
|
|
|
1021
1040
|
test('when `deps` has changed, it should trigger update', () => {
|
|
1022
1041
|
const onUpdate = jest.fn();
|
|
1023
1042
|
const onDeepUpdate = jest.fn();
|
|
1024
|
-
const
|
|
1043
|
+
const _renderHook26 = renderHook(() => {
|
|
1025
1044
|
const _useState3 = useState('user/'),
|
|
1026
1045
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
1027
1046
|
pathPrefix = _useState4[0],
|
|
@@ -1037,7 +1056,7 @@ describe('useUseCase', () => {
|
|
|
1037
1056
|
}, [context]);
|
|
1038
1057
|
return setPathPrefix;
|
|
1039
1058
|
}),
|
|
1040
|
-
result =
|
|
1059
|
+
result = _renderHook26.result;
|
|
1041
1060
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
1042
1061
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1043
1062
|
act(() => {
|
|
@@ -1049,7 +1068,7 @@ describe('useUseCase', () => {
|
|
|
1049
1068
|
test('empty `deps` should not trigger update', () => {
|
|
1050
1069
|
const onUpdate = jest.fn();
|
|
1051
1070
|
const onDeepUpdate = jest.fn();
|
|
1052
|
-
const
|
|
1071
|
+
const _renderHook27 = renderHook(() => {
|
|
1053
1072
|
const _useState5 = useState('user/'),
|
|
1054
1073
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
1055
1074
|
pathPrefix = _useState6[0],
|
|
@@ -1065,7 +1084,7 @@ describe('useUseCase', () => {
|
|
|
1065
1084
|
}, [context]);
|
|
1066
1085
|
return setPathPrefix;
|
|
1067
1086
|
}),
|
|
1068
|
-
result =
|
|
1087
|
+
result = _renderHook27.result;
|
|
1069
1088
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
1070
1089
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1071
1090
|
act(() => {
|
|
@@ -1078,12 +1097,12 @@ describe('useUseCase', () => {
|
|
|
1078
1097
|
const onPathChange1 = jest.fn();
|
|
1079
1098
|
const onPathChange2 = jest.fn();
|
|
1080
1099
|
let onPathChange = onPathChange1;
|
|
1081
|
-
const
|
|
1100
|
+
const _renderHook28 = renderHook(() => {
|
|
1082
1101
|
return useUseCase(defaultFile, fileUseCase, {
|
|
1083
1102
|
onPathChange
|
|
1084
1103
|
});
|
|
1085
1104
|
}),
|
|
1086
|
-
result =
|
|
1105
|
+
result = _renderHook28.result;
|
|
1087
1106
|
const context = result.current;
|
|
1088
1107
|
const _context2 = _slicedToArray(context, 2),
|
|
1089
1108
|
setPath = _context2[1].setPath;
|
|
@@ -1104,7 +1123,7 @@ describe('useUseCase', () => {
|
|
|
1104
1123
|
test('`options.watch` should be trigger after entity changed', () => {
|
|
1105
1124
|
const onPathChange = jest.fn();
|
|
1106
1125
|
const onSizeChange = jest.fn();
|
|
1107
|
-
const
|
|
1126
|
+
const _renderHook29 = renderHook(() => {
|
|
1108
1127
|
return useUseCase(defaultFile, fileUseCase, {
|
|
1109
1128
|
watch: {
|
|
1110
1129
|
path: onPathChange,
|
|
@@ -1112,7 +1131,7 @@ describe('useUseCase', () => {
|
|
|
1112
1131
|
}
|
|
1113
1132
|
});
|
|
1114
1133
|
}),
|
|
1115
|
-
result =
|
|
1134
|
+
result = _renderHook29.result;
|
|
1116
1135
|
const cores = result.current;
|
|
1117
1136
|
const _cores11 = _slicedToArray(cores, 2),
|
|
1118
1137
|
setPath = _cores11[1].setPath;
|
|
@@ -1136,7 +1155,7 @@ describe('useUseCase', () => {
|
|
|
1136
1155
|
});
|
|
1137
1156
|
test('`options.watch` should be trigger after update entity by entity initializer', () => {
|
|
1138
1157
|
const onPathChange = jest.fn();
|
|
1139
|
-
const
|
|
1158
|
+
const _renderHook30 = renderHook(function () {
|
|
1140
1159
|
let path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
1141
1160
|
return useUseCase(function () {
|
|
1142
1161
|
let currentFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
|
|
@@ -1150,7 +1169,7 @@ describe('useUseCase', () => {
|
|
|
1150
1169
|
}
|
|
1151
1170
|
}, [path]);
|
|
1152
1171
|
}),
|
|
1153
|
-
rerender =
|
|
1172
|
+
rerender = _renderHook30.rerender;
|
|
1154
1173
|
expect(onPathChange).toHaveBeenCalledTimes(0);
|
|
1155
1174
|
act(() => {
|
|
1156
1175
|
rerender(PATH_1);
|
|
@@ -1261,14 +1280,14 @@ describe('useUseCase', () => {
|
|
|
1261
1280
|
const onPathChange1 = jest.fn();
|
|
1262
1281
|
const onPathChange2 = jest.fn();
|
|
1263
1282
|
let onPathChange = onPathChange1;
|
|
1264
|
-
const
|
|
1283
|
+
const _renderHook31 = renderHook(() => {
|
|
1265
1284
|
return useUseCase(defaultFile, fileUseCase, {
|
|
1266
1285
|
watch: {
|
|
1267
1286
|
path: onPathChange
|
|
1268
1287
|
}
|
|
1269
1288
|
});
|
|
1270
1289
|
}),
|
|
1271
|
-
result =
|
|
1290
|
+
result = _renderHook31.result;
|
|
1272
1291
|
const cores = result.current;
|
|
1273
1292
|
const _cores12 = _slicedToArray(cores, 2),
|
|
1274
1293
|
_cores12$ = _cores12[1],
|
|
@@ -1319,7 +1338,7 @@ describe('useUseCase', () => {
|
|
|
1319
1338
|
const initialData = {};
|
|
1320
1339
|
const onExtChange = jest.fn();
|
|
1321
1340
|
const onSizeChange = jest.fn();
|
|
1322
|
-
const
|
|
1341
|
+
const _renderHook32 = renderHook(() => {
|
|
1323
1342
|
return useUseCase(initialData, fieldPathUseCase, {
|
|
1324
1343
|
watch: {
|
|
1325
1344
|
'list.ext': onExtChange,
|
|
@@ -1327,7 +1346,7 @@ describe('useUseCase', () => {
|
|
|
1327
1346
|
}
|
|
1328
1347
|
});
|
|
1329
1348
|
}),
|
|
1330
|
-
result =
|
|
1349
|
+
result = _renderHook32.result;
|
|
1331
1350
|
const cores = result.current;
|
|
1332
1351
|
const _cores13 = _slicedToArray(cores, 2),
|
|
1333
1352
|
setEntity = _cores13[1].setEntity;
|
|
@@ -1666,20 +1685,21 @@ describe('useUseCase', () => {
|
|
|
1666
1685
|
});
|
|
1667
1686
|
});
|
|
1668
1687
|
test('`options.watch` should work with field path of array length', () => {
|
|
1688
|
+
const defaultList = [];
|
|
1669
1689
|
const onEntityLengthChange = jest.fn();
|
|
1670
1690
|
const onListLengthChange = jest.fn();
|
|
1671
1691
|
const lengthUseCase = () => {
|
|
1672
1692
|
return entityUseCase();
|
|
1673
1693
|
};
|
|
1674
|
-
const
|
|
1675
|
-
return useUseCase(
|
|
1694
|
+
const _renderHook33 = renderHook(() => {
|
|
1695
|
+
return useUseCase(defaultList, lengthUseCase, {
|
|
1676
1696
|
watch: {
|
|
1677
1697
|
length: onEntityLengthChange,
|
|
1678
1698
|
'list.length': onListLengthChange
|
|
1679
1699
|
}
|
|
1680
1700
|
});
|
|
1681
1701
|
}),
|
|
1682
|
-
result =
|
|
1702
|
+
result = _renderHook33.result;
|
|
1683
1703
|
const cores = result.current;
|
|
1684
1704
|
const _cores14 = _slicedToArray(cores, 2),
|
|
1685
1705
|
setEntity = _cores14[1].setEntity;
|
|
@@ -1714,14 +1734,14 @@ describe('useUseCase', () => {
|
|
|
1714
1734
|
test('`options.watch` should work with field path of nested array', () => {
|
|
1715
1735
|
const initialData = {};
|
|
1716
1736
|
const onChange = jest.fn();
|
|
1717
|
-
const
|
|
1737
|
+
const _renderHook34 = renderHook(() => {
|
|
1718
1738
|
return useUseCase(initialData, fieldPathUseCase, {
|
|
1719
1739
|
watch: {
|
|
1720
1740
|
'nestedList.size': onChange
|
|
1721
1741
|
}
|
|
1722
1742
|
});
|
|
1723
1743
|
}),
|
|
1724
|
-
result =
|
|
1744
|
+
result = _renderHook34.result;
|
|
1725
1745
|
const cores = result.current;
|
|
1726
1746
|
const _cores15 = _slicedToArray(cores, 2),
|
|
1727
1747
|
setEntity = _cores15[1].setEntity;
|
|
@@ -1821,7 +1841,7 @@ describe('useUseCase', () => {
|
|
|
1821
1841
|
const initialData = {};
|
|
1822
1842
|
const onExtChange = jest.fn();
|
|
1823
1843
|
const onSizeChange = jest.fn();
|
|
1824
|
-
const
|
|
1844
|
+
const _renderHook35 = renderHook(() => {
|
|
1825
1845
|
return useUseCase(initialData, fieldPathUseCase, {
|
|
1826
1846
|
watch: {
|
|
1827
1847
|
'obj.file.ext': onExtChange,
|
|
@@ -1829,7 +1849,7 @@ describe('useUseCase', () => {
|
|
|
1829
1849
|
}
|
|
1830
1850
|
});
|
|
1831
1851
|
}),
|
|
1832
|
-
result =
|
|
1852
|
+
result = _renderHook35.result;
|
|
1833
1853
|
const cores = result.current;
|
|
1834
1854
|
const _cores16 = _slicedToArray(cores, 2),
|
|
1835
1855
|
setEntity = _cores16[1].setEntity;
|
|
@@ -1937,6 +1957,53 @@ describe('useUseCase', () => {
|
|
|
1937
1957
|
expect(onStringMount).toHaveBeenCalledWith('hello');
|
|
1938
1958
|
expect(onBooleanMount).toHaveBeenCalledWith(true);
|
|
1939
1959
|
});
|
|
1960
|
+
test('`bindEntity` should be called when component mount', () => {
|
|
1961
|
+
const bindEntity = jest.fn(entity => {
|
|
1962
|
+
void entity;
|
|
1963
|
+
});
|
|
1964
|
+
const testUseCase = () => {
|
|
1965
|
+
const entityReducers = entityUseCase();
|
|
1966
|
+
return {
|
|
1967
|
+
...entityReducers,
|
|
1968
|
+
bindEntity
|
|
1969
|
+
};
|
|
1970
|
+
};
|
|
1971
|
+
renderHook(() => {
|
|
1972
|
+
const _useUseCase24 = useUseCase(5, testUseCase),
|
|
1973
|
+
_useUseCase25 = _slicedToArray(_useUseCase24, 2),
|
|
1974
|
+
setEntity = _useUseCase25[1].setEntity;
|
|
1975
|
+
useMount(() => {
|
|
1976
|
+
setEntity(100);
|
|
1977
|
+
});
|
|
1978
|
+
});
|
|
1979
|
+
expect(bindEntity).toHaveBeenCalledTimes(1);
|
|
1980
|
+
expect(bindEntity).toHaveBeenCalledWith(5);
|
|
1981
|
+
});
|
|
1982
|
+
test('`unbindEntity` should be called when component unmount', () => {
|
|
1983
|
+
const unbindEntity = jest.fn(entity => {
|
|
1984
|
+
void entity;
|
|
1985
|
+
});
|
|
1986
|
+
const testUseCase = () => {
|
|
1987
|
+
const entityReducers = entityUseCase();
|
|
1988
|
+
return {
|
|
1989
|
+
...entityReducers,
|
|
1990
|
+
unbindEntity
|
|
1991
|
+
};
|
|
1992
|
+
};
|
|
1993
|
+
const _renderHook36 = renderHook(() => {
|
|
1994
|
+
const _useUseCase26 = useUseCase(5, testUseCase),
|
|
1995
|
+
_useUseCase27 = _slicedToArray(_useUseCase26, 2),
|
|
1996
|
+
setEntity = _useUseCase27[1].setEntity;
|
|
1997
|
+
useMount(() => {
|
|
1998
|
+
setEntity(100);
|
|
1999
|
+
});
|
|
2000
|
+
}),
|
|
2001
|
+
unmount = _renderHook36.unmount;
|
|
2002
|
+
expect(unbindEntity).toHaveBeenCalledTimes(0);
|
|
2003
|
+
unmount();
|
|
2004
|
+
expect(unbindEntity).toHaveBeenCalledTimes(1);
|
|
2005
|
+
expect(unbindEntity).toHaveBeenCalledWith(100);
|
|
2006
|
+
});
|
|
1940
2007
|
});
|
|
1941
2008
|
describe('`useUseCase` should work the same as `useContextualCoreCollection`', () => {
|
|
1942
2009
|
test('Provider should be returned in child component', () => {
|
|
@@ -1953,14 +2020,14 @@ describe('useUseCase', () => {
|
|
|
1953
2020
|
return _jsx(Fragment, {});
|
|
1954
2021
|
};
|
|
1955
2022
|
const TestParent = () => {
|
|
1956
|
-
const
|
|
2023
|
+
const _useUseCase28 = useUseCase(() => {
|
|
1957
2024
|
return {
|
|
1958
2025
|
...defaultFile,
|
|
1959
2026
|
ext: EXT_1
|
|
1960
2027
|
};
|
|
1961
2028
|
}, fileUseCase),
|
|
1962
|
-
|
|
1963
|
-
Provider =
|
|
2029
|
+
_useUseCase29 = _slicedToArray(_useUseCase28, 3),
|
|
2030
|
+
Provider = _useUseCase29[2];
|
|
1964
2031
|
return _jsx(Provider, {
|
|
1965
2032
|
children: _jsx(TestChild, {})
|
|
1966
2033
|
});
|
|
@@ -1977,10 +2044,10 @@ describe('useUseCase', () => {
|
|
|
1977
2044
|
const onPopupFile = jest.fn();
|
|
1978
2045
|
const buttonText = 'button';
|
|
1979
2046
|
const Popup = () => {
|
|
1980
|
-
const
|
|
1981
|
-
|
|
1982
|
-
file =
|
|
1983
|
-
setEntity =
|
|
2047
|
+
const _useUseCase30 = useUseCase(fileUseCase),
|
|
2048
|
+
_useUseCase31 = _slicedToArray(_useUseCase30, 2),
|
|
2049
|
+
file = _useUseCase31[0],
|
|
2050
|
+
setEntity = _useUseCase31[1].setEntity;
|
|
1984
2051
|
const onClick = () => {
|
|
1985
2052
|
setEntity({
|
|
1986
2053
|
ext: EXT_2
|
|
@@ -1995,15 +2062,15 @@ describe('useUseCase', () => {
|
|
|
1995
2062
|
});
|
|
1996
2063
|
};
|
|
1997
2064
|
const TestChild = () => {
|
|
1998
|
-
const
|
|
1999
|
-
|
|
2000
|
-
Provider =
|
|
2065
|
+
const _useUseCase32 = useUseCase(fileUseCase),
|
|
2066
|
+
_useUseCase33 = _slicedToArray(_useUseCase32, 3),
|
|
2067
|
+
Provider = _useUseCase33[2];
|
|
2001
2068
|
return createPortal(_jsx(Provider, {
|
|
2002
2069
|
children: _jsx(Popup, {})
|
|
2003
2070
|
}), document.body);
|
|
2004
2071
|
};
|
|
2005
2072
|
const TestParent = () => {
|
|
2006
|
-
const
|
|
2073
|
+
const _useUseCase34 = useUseCase(() => {
|
|
2007
2074
|
return {
|
|
2008
2075
|
...defaultFile,
|
|
2009
2076
|
ext: EXT_1
|
|
@@ -2011,9 +2078,9 @@ describe('useUseCase', () => {
|
|
|
2011
2078
|
}, fileUseCase, {
|
|
2012
2079
|
onChange
|
|
2013
2080
|
}),
|
|
2014
|
-
|
|
2015
|
-
file =
|
|
2016
|
-
Provider =
|
|
2081
|
+
_useUseCase35 = _slicedToArray(_useUseCase34, 3),
|
|
2082
|
+
file = _useUseCase35[0],
|
|
2083
|
+
Provider = _useUseCase35[2];
|
|
2017
2084
|
useEffect(() => {
|
|
2018
2085
|
onRootFile(file);
|
|
2019
2086
|
}, [file]);
|
|
@@ -2078,9 +2145,9 @@ describe('useUseCase', () => {
|
|
|
2078
2145
|
return _jsx(Fragment, {});
|
|
2079
2146
|
};
|
|
2080
2147
|
const B = () => {
|
|
2081
|
-
const
|
|
2082
|
-
|
|
2083
|
-
Provider =
|
|
2148
|
+
const _useUseCase36 = useUseCase(defaultFile, mockUseCase),
|
|
2149
|
+
_useUseCase37 = _slicedToArray(_useUseCase36, 3),
|
|
2150
|
+
Provider = _useUseCase37[2];
|
|
2084
2151
|
return _jsx(Provider, {
|
|
2085
2152
|
children: _jsx(A, {})
|
|
2086
2153
|
});
|
|
@@ -2101,9 +2168,9 @@ describe('useUseCase', () => {
|
|
|
2101
2168
|
};
|
|
2102
2169
|
};
|
|
2103
2170
|
const A = () => {
|
|
2104
|
-
const
|
|
2105
|
-
|
|
2106
|
-
add =
|
|
2171
|
+
const _useUseCase38 = useUseCase(stringUseCase),
|
|
2172
|
+
_useUseCase39 = _slicedToArray(_useUseCase38, 2),
|
|
2173
|
+
add = _useUseCase39[1].add;
|
|
2107
2174
|
const update = useUpdate();
|
|
2108
2175
|
const onClick = () => {
|
|
2109
2176
|
update();
|
|
@@ -2115,9 +2182,9 @@ describe('useUseCase', () => {
|
|
|
2115
2182
|
});
|
|
2116
2183
|
};
|
|
2117
2184
|
const B = () => {
|
|
2118
|
-
const
|
|
2119
|
-
|
|
2120
|
-
Provider =
|
|
2185
|
+
const _useUseCase40 = useUseCase('', stringUseCase),
|
|
2186
|
+
_useUseCase41 = _slicedToArray(_useUseCase40, 3),
|
|
2187
|
+
Provider = _useUseCase41[2];
|
|
2121
2188
|
return _jsx(Provider, {
|
|
2122
2189
|
children: _jsx(A, {})
|
|
2123
2190
|
});
|
|
@@ -2142,9 +2209,9 @@ describe('useUseCase', () => {
|
|
|
2142
2209
|
};
|
|
2143
2210
|
};
|
|
2144
2211
|
const A = () => {
|
|
2145
|
-
const
|
|
2146
|
-
|
|
2147
|
-
add =
|
|
2212
|
+
const _useUseCase42 = useUseCase(stringUseCase),
|
|
2213
|
+
_useUseCase43 = _slicedToArray(_useUseCase42, 2),
|
|
2214
|
+
add = _useUseCase43[1].add;
|
|
2148
2215
|
const onClick = () => {
|
|
2149
2216
|
add('x');
|
|
2150
2217
|
};
|
|
@@ -2158,9 +2225,9 @@ describe('useUseCase', () => {
|
|
|
2158
2225
|
});
|
|
2159
2226
|
};
|
|
2160
2227
|
const B = () => {
|
|
2161
|
-
const
|
|
2162
|
-
|
|
2163
|
-
Provider =
|
|
2228
|
+
const _useUseCase44 = useUseCase('', stringUseCase),
|
|
2229
|
+
_useUseCase45 = _slicedToArray(_useUseCase44, 3),
|
|
2230
|
+
Provider = _useUseCase45[2];
|
|
2164
2231
|
return _jsx(Provider, {
|
|
2165
2232
|
children: _jsx(A, {})
|
|
2166
2233
|
});
|
|
@@ -2189,11 +2256,11 @@ describe('useUseCase', () => {
|
|
|
2189
2256
|
};
|
|
2190
2257
|
};
|
|
2191
2258
|
const A = () => {
|
|
2192
|
-
const
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
add =
|
|
2196
|
-
setEntity =
|
|
2259
|
+
const _useUseCase46 = useUseCase(stringUseCase),
|
|
2260
|
+
_useUseCase47 = _slicedToArray(_useUseCase46, 2),
|
|
2261
|
+
_useUseCase47$ = _useUseCase47[1],
|
|
2262
|
+
add = _useUseCase47$.add,
|
|
2263
|
+
setEntity = _useUseCase47$.setEntity;
|
|
2197
2264
|
const update = useUpdate();
|
|
2198
2265
|
add(addedText);
|
|
2199
2266
|
const onSet = () => {
|
|
@@ -2213,9 +2280,9 @@ describe('useUseCase', () => {
|
|
|
2213
2280
|
});
|
|
2214
2281
|
};
|
|
2215
2282
|
const B = () => {
|
|
2216
|
-
const
|
|
2217
|
-
|
|
2218
|
-
Provider =
|
|
2283
|
+
const _useUseCase48 = useUseCase('', stringUseCase),
|
|
2284
|
+
_useUseCase49 = _slicedToArray(_useUseCase48, 3),
|
|
2285
|
+
Provider = _useUseCase49[2];
|
|
2219
2286
|
return _jsx(Provider, {
|
|
2220
2287
|
children: _jsx(A, {})
|
|
2221
2288
|
});
|
|
@@ -2260,12 +2327,12 @@ describe('useUseCase', () => {
|
|
|
2260
2327
|
return _jsx(Fragment, {});
|
|
2261
2328
|
};
|
|
2262
2329
|
const C = () => {
|
|
2263
|
-
const
|
|
2330
|
+
const _useUseCase50 = useUseCase(defaultFile, fileUseCase, {
|
|
2264
2331
|
onChange: onChangeC
|
|
2265
2332
|
}),
|
|
2266
|
-
|
|
2267
|
-
setPath =
|
|
2268
|
-
Provider =
|
|
2333
|
+
_useUseCase51 = _slicedToArray(_useUseCase50, 3),
|
|
2334
|
+
setPath = _useUseCase51[1].setPath,
|
|
2335
|
+
Provider = _useUseCase51[2];
|
|
2269
2336
|
const onFirstClick = () => {
|
|
2270
2337
|
setPath(PATH_1);
|
|
2271
2338
|
};
|
|
@@ -2292,11 +2359,11 @@ describe('useUseCase', () => {
|
|
|
2292
2359
|
const firstButtonText = 'first button';
|
|
2293
2360
|
const secondButtonText = 'second button';
|
|
2294
2361
|
const A = () => {
|
|
2295
|
-
const
|
|
2362
|
+
const _useUseCase52 = useUseCase(fileUseCase, {
|
|
2296
2363
|
onChange
|
|
2297
2364
|
}),
|
|
2298
|
-
|
|
2299
|
-
setPath =
|
|
2365
|
+
_useUseCase53 = _slicedToArray(_useUseCase52, 2),
|
|
2366
|
+
setPath = _useUseCase53[1].setPath;
|
|
2300
2367
|
const onFirstClick = () => {
|
|
2301
2368
|
setPath(PATH_1);
|
|
2302
2369
|
onChange = onSecondChange;
|
|
@@ -2315,9 +2382,9 @@ describe('useUseCase', () => {
|
|
|
2315
2382
|
});
|
|
2316
2383
|
};
|
|
2317
2384
|
const B = () => {
|
|
2318
|
-
const
|
|
2319
|
-
|
|
2320
|
-
Provider =
|
|
2385
|
+
const _useUseCase54 = useUseCase(defaultFile, fileUseCase),
|
|
2386
|
+
_useUseCase55 = _slicedToArray(_useUseCase54, 3),
|
|
2387
|
+
Provider = _useUseCase55[2];
|
|
2321
2388
|
return _jsx(Provider, {
|
|
2322
2389
|
children: _jsx(A, {})
|
|
2323
2390
|
});
|
|
@@ -2340,13 +2407,13 @@ describe('useUseCase', () => {
|
|
|
2340
2407
|
const onExtChange = jest.fn();
|
|
2341
2408
|
const firstButtonText = 'first button';
|
|
2342
2409
|
const A = () => {
|
|
2343
|
-
const
|
|
2410
|
+
const _useUseCase56 = useUseCase(fileUseCase, {
|
|
2344
2411
|
watch: {
|
|
2345
2412
|
ext: onExtChange
|
|
2346
2413
|
}
|
|
2347
2414
|
}),
|
|
2348
|
-
|
|
2349
|
-
setPath =
|
|
2415
|
+
_useUseCase57 = _slicedToArray(_useUseCase56, 2),
|
|
2416
|
+
setPath = _useUseCase57[1].setPath;
|
|
2350
2417
|
const onFirstClick = () => {
|
|
2351
2418
|
setPath(PATH_1);
|
|
2352
2419
|
};
|
|
@@ -2356,9 +2423,9 @@ describe('useUseCase', () => {
|
|
|
2356
2423
|
});
|
|
2357
2424
|
};
|
|
2358
2425
|
const B = () => {
|
|
2359
|
-
const
|
|
2360
|
-
|
|
2361
|
-
Provider =
|
|
2426
|
+
const _useUseCase58 = useUseCase(defaultFile, fileUseCase, {}),
|
|
2427
|
+
_useUseCase59 = _slicedToArray(_useUseCase58, 3),
|
|
2428
|
+
Provider = _useUseCase59[2];
|
|
2362
2429
|
return _jsx(Provider, {
|
|
2363
2430
|
children: _jsx(A, {})
|
|
2364
2431
|
});
|
|
@@ -2409,14 +2476,14 @@ describe('useUseCase', () => {
|
|
|
2409
2476
|
return _jsx(Fragment, {});
|
|
2410
2477
|
};
|
|
2411
2478
|
const C = () => {
|
|
2412
|
-
const
|
|
2479
|
+
const _useUseCase60 = useUseCase(defaultFile, fileUseCase, {
|
|
2413
2480
|
watch: {
|
|
2414
2481
|
ext: onChangeC
|
|
2415
2482
|
}
|
|
2416
2483
|
}),
|
|
2417
|
-
|
|
2418
|
-
setPath =
|
|
2419
|
-
Provider =
|
|
2484
|
+
_useUseCase61 = _slicedToArray(_useUseCase60, 3),
|
|
2485
|
+
setPath = _useUseCase61[1].setPath,
|
|
2486
|
+
Provider = _useUseCase61[2];
|
|
2420
2487
|
const onFirstClick = () => {
|
|
2421
2488
|
setPath(PATH_1);
|
|
2422
2489
|
};
|
|
@@ -2443,13 +2510,13 @@ describe('useUseCase', () => {
|
|
|
2443
2510
|
const firstButtonText = 'first button';
|
|
2444
2511
|
const secondButtonText = 'second button';
|
|
2445
2512
|
const A = () => {
|
|
2446
|
-
const
|
|
2513
|
+
const _useUseCase62 = useUseCase(fileUseCase, {
|
|
2447
2514
|
watch: {
|
|
2448
2515
|
ext: onExtChange
|
|
2449
2516
|
}
|
|
2450
2517
|
}),
|
|
2451
|
-
|
|
2452
|
-
setPath =
|
|
2518
|
+
_useUseCase63 = _slicedToArray(_useUseCase62, 2),
|
|
2519
|
+
setPath = _useUseCase63[1].setPath;
|
|
2453
2520
|
const onFirstClick = () => {
|
|
2454
2521
|
setPath(PATH_1);
|
|
2455
2522
|
onExtChange = onSecondExtChange;
|
|
@@ -2468,9 +2535,9 @@ describe('useUseCase', () => {
|
|
|
2468
2535
|
});
|
|
2469
2536
|
};
|
|
2470
2537
|
const B = () => {
|
|
2471
|
-
const
|
|
2472
|
-
|
|
2473
|
-
Provider =
|
|
2538
|
+
const _useUseCase64 = useUseCase(defaultFile, fileUseCase),
|
|
2539
|
+
_useUseCase65 = _slicedToArray(_useUseCase64, 3),
|
|
2540
|
+
Provider = _useUseCase65[2];
|
|
2474
2541
|
return _jsx(Provider, {
|
|
2475
2542
|
children: _jsx(A, {})
|
|
2476
2543
|
});
|
|
@@ -2498,38 +2565,38 @@ describe('useUseCase', () => {
|
|
|
2498
2565
|
});
|
|
2499
2566
|
describe('`useUseCase` should work the same as `useReducers`', () => {
|
|
2500
2567
|
test('`entity` should equal `defaultFile`', () => {
|
|
2501
|
-
const
|
|
2568
|
+
const _renderHook37 = renderHook(() => {
|
|
2502
2569
|
return useUseCase(mathUseCase);
|
|
2503
2570
|
}),
|
|
2504
|
-
result =
|
|
2571
|
+
result = _renderHook37.result;
|
|
2505
2572
|
const reducers = result.current;
|
|
2506
2573
|
expect(Array.isArray(reducers)).toBe(false);
|
|
2507
2574
|
});
|
|
2508
2575
|
test('returned reducer should work', () => {
|
|
2509
|
-
const
|
|
2576
|
+
const _renderHook38 = renderHook(() => {
|
|
2510
2577
|
return useUseCase(mathUseCase);
|
|
2511
2578
|
}),
|
|
2512
|
-
result =
|
|
2579
|
+
result = _renderHook38.result;
|
|
2513
2580
|
const reducers = result.current;
|
|
2514
2581
|
const add = reducers.add;
|
|
2515
2582
|
expect(add(1, 2)).toBe(3);
|
|
2516
2583
|
});
|
|
2517
2584
|
test('`usecase` should be called only once if deps has not provided', () => {
|
|
2518
2585
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2519
|
-
const
|
|
2586
|
+
const _renderHook39 = renderHook(() => {
|
|
2520
2587
|
return useUseCase(mockUseCase);
|
|
2521
2588
|
}),
|
|
2522
|
-
rerender =
|
|
2589
|
+
rerender = _renderHook39.rerender;
|
|
2523
2590
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2524
2591
|
rerender();
|
|
2525
2592
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2526
2593
|
});
|
|
2527
2594
|
test('`usecase` should be called only once if deps has not changed', () => {
|
|
2528
2595
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2529
|
-
const
|
|
2596
|
+
const _renderHook40 = renderHook(() => {
|
|
2530
2597
|
return useUseCase(mockUseCase, {}, [1, 'x']);
|
|
2531
2598
|
}),
|
|
2532
|
-
rerender =
|
|
2599
|
+
rerender = _renderHook40.rerender;
|
|
2533
2600
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2534
2601
|
rerender();
|
|
2535
2602
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
@@ -2537,10 +2604,10 @@ describe('useUseCase', () => {
|
|
|
2537
2604
|
test('`usecase` should be called if deps has changed', () => {
|
|
2538
2605
|
let i = 0;
|
|
2539
2606
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2540
|
-
const
|
|
2607
|
+
const _renderHook41 = renderHook(() => {
|
|
2541
2608
|
return useUseCase(mockUseCase, {}, [i++, 'x']);
|
|
2542
2609
|
}),
|
|
2543
|
-
rerender =
|
|
2610
|
+
rerender = _renderHook41.rerender;
|
|
2544
2611
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2545
2612
|
rerender();
|
|
2546
2613
|
expect(mockUseCase).toHaveBeenCalledTimes(2);
|
|
@@ -2548,8 +2615,8 @@ describe('useUseCase', () => {
|
|
|
2548
2615
|
test('reducer call should not be cached if component is at rendering phase', () => {
|
|
2549
2616
|
const buttonText = 'button';
|
|
2550
2617
|
const CacheTestComponent = () => {
|
|
2551
|
-
const
|
|
2552
|
-
subtraction =
|
|
2618
|
+
const _useUseCase66 = useUseCase(mathUseCase),
|
|
2619
|
+
subtraction = _useUseCase66.subtraction;
|
|
2553
2620
|
const update = useUpdate();
|
|
2554
2621
|
const onClick = () => {
|
|
2555
2622
|
update();
|
|
@@ -2572,8 +2639,8 @@ describe('useUseCase', () => {
|
|
|
2572
2639
|
test('reducer call should not be cached if component is not at rendering phase', () => {
|
|
2573
2640
|
const buttonText = 'button';
|
|
2574
2641
|
const CacheTestComponent = () => {
|
|
2575
|
-
const
|
|
2576
|
-
subtraction =
|
|
2642
|
+
const _useUseCase67 = useUseCase(mathUseCase),
|
|
2643
|
+
subtraction = _useUseCase67.subtraction;
|
|
2577
2644
|
const onClick = () => {
|
|
2578
2645
|
subtraction(5, 3);
|
|
2579
2646
|
};
|
|
@@ -2601,8 +2668,8 @@ describe('useUseCase', () => {
|
|
|
2601
2668
|
let count = 0;
|
|
2602
2669
|
const buttonText = 'button';
|
|
2603
2670
|
const StringUseCaseTestComponent = () => {
|
|
2604
|
-
const
|
|
2605
|
-
subtraction =
|
|
2671
|
+
const _useUseCase68 = useUseCase(mathUseCase),
|
|
2672
|
+
subtraction = _useUseCase68.subtraction;
|
|
2606
2673
|
const update = useUpdate();
|
|
2607
2674
|
subtraction(5, count++);
|
|
2608
2675
|
const onUpdate = () => {
|
|
@@ -2624,12 +2691,12 @@ describe('useUseCase', () => {
|
|
|
2624
2691
|
expect(subtractionReducer).toHaveReturnedWith(4);
|
|
2625
2692
|
});
|
|
2626
2693
|
test('`options.extraValue` should be added after call `add` method', () => {
|
|
2627
|
-
const
|
|
2694
|
+
const _renderHook42 = renderHook(() => {
|
|
2628
2695
|
return useUseCase(mathUseCase, {
|
|
2629
2696
|
extraValue: 5
|
|
2630
2697
|
});
|
|
2631
2698
|
}),
|
|
2632
|
-
result =
|
|
2699
|
+
result = _renderHook42.result;
|
|
2633
2700
|
const reducers = result.current;
|
|
2634
2701
|
const add = reducers.add;
|
|
2635
2702
|
expect(add(1, 2)).toBe(8);
|
|
@@ -2637,7 +2704,7 @@ describe('useUseCase', () => {
|
|
|
2637
2704
|
test('when `options` has changed, it should not trigger update', () => {
|
|
2638
2705
|
const onUpdate = jest.fn();
|
|
2639
2706
|
const onDeepUpdate = jest.fn();
|
|
2640
|
-
const
|
|
2707
|
+
const _renderHook43 = renderHook(() => {
|
|
2641
2708
|
const _useState7 = useState(0),
|
|
2642
2709
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
2643
2710
|
extraValue = _useState8[0],
|
|
@@ -2653,7 +2720,7 @@ describe('useUseCase', () => {
|
|
|
2653
2720
|
}, [reducers]);
|
|
2654
2721
|
return setExtraValue;
|
|
2655
2722
|
}),
|
|
2656
|
-
result =
|
|
2723
|
+
result = _renderHook43.result;
|
|
2657
2724
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2658
2725
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2659
2726
|
act(() => {
|
|
@@ -2665,7 +2732,7 @@ describe('useUseCase', () => {
|
|
|
2665
2732
|
test('when `deps` change, it should update reducers', () => {
|
|
2666
2733
|
const onUpdate = jest.fn();
|
|
2667
2734
|
const onDeepUpdate = jest.fn();
|
|
2668
|
-
const
|
|
2735
|
+
const _renderHook44 = renderHook(() => {
|
|
2669
2736
|
const _useState9 = useState(0),
|
|
2670
2737
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
2671
2738
|
extraValue = _useState0[0],
|
|
@@ -2681,7 +2748,7 @@ describe('useUseCase', () => {
|
|
|
2681
2748
|
}, [reducers]);
|
|
2682
2749
|
return setExtraValue;
|
|
2683
2750
|
}),
|
|
2684
|
-
result =
|
|
2751
|
+
result = _renderHook44.result;
|
|
2685
2752
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2686
2753
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2687
2754
|
act(() => {
|
|
@@ -2693,7 +2760,7 @@ describe('useUseCase', () => {
|
|
|
2693
2760
|
test('empty `deps` should not update reducers', () => {
|
|
2694
2761
|
const onUpdate = jest.fn();
|
|
2695
2762
|
const onDeepUpdate = jest.fn();
|
|
2696
|
-
const
|
|
2763
|
+
const _renderHook45 = renderHook(() => {
|
|
2697
2764
|
const _useState1 = useState(0),
|
|
2698
2765
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
2699
2766
|
extraValue = _useState10[0],
|
|
@@ -2709,7 +2776,7 @@ describe('useUseCase', () => {
|
|
|
2709
2776
|
}, [reducers]);
|
|
2710
2777
|
return setExtraValue;
|
|
2711
2778
|
}),
|
|
2712
|
-
result =
|
|
2779
|
+
result = _renderHook45.result;
|
|
2713
2780
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2714
2781
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2715
2782
|
act(() => {
|