@mic-rexjs/usecases-react 2.14.0 → 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/useFullArguments/types.d.ts +3 -3
- package/es/hooks/useStore/index.js +48 -13
- package/es/hooks/useUseCase/index.test.js +134 -115
- 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/useStore/index.js +48 -14
- package/lib/hooks/useUseCase/index.test.js +158 -123
- 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;
|
|
@@ -1672,7 +1691,7 @@ describe('useUseCase', () => {
|
|
|
1672
1691
|
const lengthUseCase = () => {
|
|
1673
1692
|
return entityUseCase();
|
|
1674
1693
|
};
|
|
1675
|
-
const
|
|
1694
|
+
const _renderHook33 = renderHook(() => {
|
|
1676
1695
|
return useUseCase(defaultList, lengthUseCase, {
|
|
1677
1696
|
watch: {
|
|
1678
1697
|
length: onEntityLengthChange,
|
|
@@ -1680,7 +1699,7 @@ describe('useUseCase', () => {
|
|
|
1680
1699
|
}
|
|
1681
1700
|
});
|
|
1682
1701
|
}),
|
|
1683
|
-
result =
|
|
1702
|
+
result = _renderHook33.result;
|
|
1684
1703
|
const cores = result.current;
|
|
1685
1704
|
const _cores14 = _slicedToArray(cores, 2),
|
|
1686
1705
|
setEntity = _cores14[1].setEntity;
|
|
@@ -1715,14 +1734,14 @@ describe('useUseCase', () => {
|
|
|
1715
1734
|
test('`options.watch` should work with field path of nested array', () => {
|
|
1716
1735
|
const initialData = {};
|
|
1717
1736
|
const onChange = jest.fn();
|
|
1718
|
-
const
|
|
1737
|
+
const _renderHook34 = renderHook(() => {
|
|
1719
1738
|
return useUseCase(initialData, fieldPathUseCase, {
|
|
1720
1739
|
watch: {
|
|
1721
1740
|
'nestedList.size': onChange
|
|
1722
1741
|
}
|
|
1723
1742
|
});
|
|
1724
1743
|
}),
|
|
1725
|
-
result =
|
|
1744
|
+
result = _renderHook34.result;
|
|
1726
1745
|
const cores = result.current;
|
|
1727
1746
|
const _cores15 = _slicedToArray(cores, 2),
|
|
1728
1747
|
setEntity = _cores15[1].setEntity;
|
|
@@ -1822,7 +1841,7 @@ describe('useUseCase', () => {
|
|
|
1822
1841
|
const initialData = {};
|
|
1823
1842
|
const onExtChange = jest.fn();
|
|
1824
1843
|
const onSizeChange = jest.fn();
|
|
1825
|
-
const
|
|
1844
|
+
const _renderHook35 = renderHook(() => {
|
|
1826
1845
|
return useUseCase(initialData, fieldPathUseCase, {
|
|
1827
1846
|
watch: {
|
|
1828
1847
|
'obj.file.ext': onExtChange,
|
|
@@ -1830,7 +1849,7 @@ describe('useUseCase', () => {
|
|
|
1830
1849
|
}
|
|
1831
1850
|
});
|
|
1832
1851
|
}),
|
|
1833
|
-
result =
|
|
1852
|
+
result = _renderHook35.result;
|
|
1834
1853
|
const cores = result.current;
|
|
1835
1854
|
const _cores16 = _slicedToArray(cores, 2),
|
|
1836
1855
|
setEntity = _cores16[1].setEntity;
|
|
@@ -1971,7 +1990,7 @@ describe('useUseCase', () => {
|
|
|
1971
1990
|
unbindEntity
|
|
1972
1991
|
};
|
|
1973
1992
|
};
|
|
1974
|
-
const
|
|
1993
|
+
const _renderHook36 = renderHook(() => {
|
|
1975
1994
|
const _useUseCase26 = useUseCase(5, testUseCase),
|
|
1976
1995
|
_useUseCase27 = _slicedToArray(_useUseCase26, 2),
|
|
1977
1996
|
setEntity = _useUseCase27[1].setEntity;
|
|
@@ -1979,7 +1998,7 @@ describe('useUseCase', () => {
|
|
|
1979
1998
|
setEntity(100);
|
|
1980
1999
|
});
|
|
1981
2000
|
}),
|
|
1982
|
-
unmount =
|
|
2001
|
+
unmount = _renderHook36.unmount;
|
|
1983
2002
|
expect(unbindEntity).toHaveBeenCalledTimes(0);
|
|
1984
2003
|
unmount();
|
|
1985
2004
|
expect(unbindEntity).toHaveBeenCalledTimes(1);
|
|
@@ -2546,38 +2565,38 @@ describe('useUseCase', () => {
|
|
|
2546
2565
|
});
|
|
2547
2566
|
describe('`useUseCase` should work the same as `useReducers`', () => {
|
|
2548
2567
|
test('`entity` should equal `defaultFile`', () => {
|
|
2549
|
-
const
|
|
2568
|
+
const _renderHook37 = renderHook(() => {
|
|
2550
2569
|
return useUseCase(mathUseCase);
|
|
2551
2570
|
}),
|
|
2552
|
-
result =
|
|
2571
|
+
result = _renderHook37.result;
|
|
2553
2572
|
const reducers = result.current;
|
|
2554
2573
|
expect(Array.isArray(reducers)).toBe(false);
|
|
2555
2574
|
});
|
|
2556
2575
|
test('returned reducer should work', () => {
|
|
2557
|
-
const
|
|
2576
|
+
const _renderHook38 = renderHook(() => {
|
|
2558
2577
|
return useUseCase(mathUseCase);
|
|
2559
2578
|
}),
|
|
2560
|
-
result =
|
|
2579
|
+
result = _renderHook38.result;
|
|
2561
2580
|
const reducers = result.current;
|
|
2562
2581
|
const add = reducers.add;
|
|
2563
2582
|
expect(add(1, 2)).toBe(3);
|
|
2564
2583
|
});
|
|
2565
2584
|
test('`usecase` should be called only once if deps has not provided', () => {
|
|
2566
2585
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2567
|
-
const
|
|
2586
|
+
const _renderHook39 = renderHook(() => {
|
|
2568
2587
|
return useUseCase(mockUseCase);
|
|
2569
2588
|
}),
|
|
2570
|
-
rerender =
|
|
2589
|
+
rerender = _renderHook39.rerender;
|
|
2571
2590
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2572
2591
|
rerender();
|
|
2573
2592
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2574
2593
|
});
|
|
2575
2594
|
test('`usecase` should be called only once if deps has not changed', () => {
|
|
2576
2595
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2577
|
-
const
|
|
2596
|
+
const _renderHook40 = renderHook(() => {
|
|
2578
2597
|
return useUseCase(mockUseCase, {}, [1, 'x']);
|
|
2579
2598
|
}),
|
|
2580
|
-
rerender =
|
|
2599
|
+
rerender = _renderHook40.rerender;
|
|
2581
2600
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2582
2601
|
rerender();
|
|
2583
2602
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
@@ -2585,10 +2604,10 @@ describe('useUseCase', () => {
|
|
|
2585
2604
|
test('`usecase` should be called if deps has changed', () => {
|
|
2586
2605
|
let i = 0;
|
|
2587
2606
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2588
|
-
const
|
|
2607
|
+
const _renderHook41 = renderHook(() => {
|
|
2589
2608
|
return useUseCase(mockUseCase, {}, [i++, 'x']);
|
|
2590
2609
|
}),
|
|
2591
|
-
rerender =
|
|
2610
|
+
rerender = _renderHook41.rerender;
|
|
2592
2611
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2593
2612
|
rerender();
|
|
2594
2613
|
expect(mockUseCase).toHaveBeenCalledTimes(2);
|
|
@@ -2672,12 +2691,12 @@ describe('useUseCase', () => {
|
|
|
2672
2691
|
expect(subtractionReducer).toHaveReturnedWith(4);
|
|
2673
2692
|
});
|
|
2674
2693
|
test('`options.extraValue` should be added after call `add` method', () => {
|
|
2675
|
-
const
|
|
2694
|
+
const _renderHook42 = renderHook(() => {
|
|
2676
2695
|
return useUseCase(mathUseCase, {
|
|
2677
2696
|
extraValue: 5
|
|
2678
2697
|
});
|
|
2679
2698
|
}),
|
|
2680
|
-
result =
|
|
2699
|
+
result = _renderHook42.result;
|
|
2681
2700
|
const reducers = result.current;
|
|
2682
2701
|
const add = reducers.add;
|
|
2683
2702
|
expect(add(1, 2)).toBe(8);
|
|
@@ -2685,7 +2704,7 @@ describe('useUseCase', () => {
|
|
|
2685
2704
|
test('when `options` has changed, it should not trigger update', () => {
|
|
2686
2705
|
const onUpdate = jest.fn();
|
|
2687
2706
|
const onDeepUpdate = jest.fn();
|
|
2688
|
-
const
|
|
2707
|
+
const _renderHook43 = renderHook(() => {
|
|
2689
2708
|
const _useState7 = useState(0),
|
|
2690
2709
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
2691
2710
|
extraValue = _useState8[0],
|
|
@@ -2701,7 +2720,7 @@ describe('useUseCase', () => {
|
|
|
2701
2720
|
}, [reducers]);
|
|
2702
2721
|
return setExtraValue;
|
|
2703
2722
|
}),
|
|
2704
|
-
result =
|
|
2723
|
+
result = _renderHook43.result;
|
|
2705
2724
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2706
2725
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2707
2726
|
act(() => {
|
|
@@ -2713,7 +2732,7 @@ describe('useUseCase', () => {
|
|
|
2713
2732
|
test('when `deps` change, it should update reducers', () => {
|
|
2714
2733
|
const onUpdate = jest.fn();
|
|
2715
2734
|
const onDeepUpdate = jest.fn();
|
|
2716
|
-
const
|
|
2735
|
+
const _renderHook44 = renderHook(() => {
|
|
2717
2736
|
const _useState9 = useState(0),
|
|
2718
2737
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
2719
2738
|
extraValue = _useState0[0],
|
|
@@ -2729,7 +2748,7 @@ describe('useUseCase', () => {
|
|
|
2729
2748
|
}, [reducers]);
|
|
2730
2749
|
return setExtraValue;
|
|
2731
2750
|
}),
|
|
2732
|
-
result =
|
|
2751
|
+
result = _renderHook44.result;
|
|
2733
2752
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2734
2753
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2735
2754
|
act(() => {
|
|
@@ -2741,7 +2760,7 @@ describe('useUseCase', () => {
|
|
|
2741
2760
|
test('empty `deps` should not update reducers', () => {
|
|
2742
2761
|
const onUpdate = jest.fn();
|
|
2743
2762
|
const onDeepUpdate = jest.fn();
|
|
2744
|
-
const
|
|
2763
|
+
const _renderHook45 = renderHook(() => {
|
|
2745
2764
|
const _useState1 = useState(0),
|
|
2746
2765
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
2747
2766
|
extraValue = _useState10[0],
|
|
@@ -2757,7 +2776,7 @@ describe('useUseCase', () => {
|
|
|
2757
2776
|
}, [reducers]);
|
|
2758
2777
|
return setExtraValue;
|
|
2759
2778
|
}),
|
|
2760
|
-
result =
|
|
2779
|
+
result = _renderHook45.result;
|
|
2761
2780
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2762
2781
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2763
2782
|
act(() => {
|