@mic-rexjs/usecases-react 1.3.36 → 1.4.1

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.
Files changed (97) hide show
  1. package/README.md +2 -2
  2. package/dist/index.min.js +1 -1
  3. package/es/components/UpdateFragment/index.d.ts +2 -0
  4. package/es/components/UpdateFragment/index.js +8 -0
  5. package/es/components/UpdateFragment/types.d.ts +3 -0
  6. package/es/components/UseCaseFragment/index.d.ts +1 -1
  7. package/es/components/UseCaseFragment/types.d.ts +3 -3
  8. package/es/configs/defaultUseCaseContext/index.d.ts +3 -1
  9. package/es/configs/defaultUseCaseContext/index.js +1 -1
  10. package/es/configs/defaultUseCaseContext/types.d.ts +11 -0
  11. package/es/configs/defaultUseCaseContext/types.js +1 -0
  12. package/es/configs/usecaseContextMap/index.d.ts +1 -3
  13. package/es/configs/usecaseContextMap/types.d.ts +4 -17
  14. package/es/hooks/useCompareDeps/index.d.ts +1 -0
  15. package/es/hooks/useCompareDeps/index.js +24 -0
  16. package/es/hooks/useConstant/index.d.ts +2 -0
  17. package/es/hooks/useConstant/index.js +5 -0
  18. package/es/hooks/useConstant/types.d.ts +3 -0
  19. package/es/hooks/useConstant/types.js +1 -0
  20. package/es/hooks/useConstantFn/index.d.ts +1 -0
  21. package/es/hooks/useConstantFn/index.js +7 -0
  22. package/es/hooks/useOptionsRefCollection/index.d.ts +3 -0
  23. package/es/hooks/useOptionsRefCollection/index.js +22 -0
  24. package/es/hooks/useOptionsRefCollection/types.d.ts +2 -0
  25. package/es/hooks/useOptionsRefCollection/types.js +1 -0
  26. package/es/hooks/useProvider/index.d.ts +7 -0
  27. package/es/hooks/useProvider/index.js +17 -0
  28. package/es/hooks/useProvider/types.d.ts +3 -0
  29. package/es/hooks/useProvider/types.js +1 -0
  30. package/es/hooks/useScope/index.d.ts +2 -0
  31. package/es/hooks/useScope/index.js +3 -0
  32. package/es/hooks/useScope/types.d.ts +3 -0
  33. package/es/hooks/useScope/types.js +1 -0
  34. package/es/hooks/useUseCase/index.js +68 -89
  35. package/es/hooks/useUseCase/index.test.js +638 -156
  36. package/es/hooks/useUseCase/types.d.ts +27 -13
  37. package/es/hooks/useUseCaseContext/index.d.ts +3 -0
  38. package/es/hooks/useUseCaseContext/index.js +17 -0
  39. package/es/index.d.ts +3 -2
  40. package/es/methods/compareProperty/index.d.ts +2 -0
  41. package/es/methods/compareProperty/index.js +34 -0
  42. package/es/methods/compareProperty/types.d.ts +3 -0
  43. package/es/methods/compareProperty/types.js +1 -0
  44. package/es/methods/getRootEntity/index.d.ts +2 -0
  45. package/es/methods/getRootEntity/index.js +9 -0
  46. package/es/methods/hasField/index.d.ts +1 -0
  47. package/es/methods/hasField/index.js +6 -0
  48. package/es/methods/initEntityReducers/index.d.ts +5 -0
  49. package/es/methods/initEntityReducers/index.js +13 -0
  50. package/es/methods/initEntityReducers/types.d.ts +3 -0
  51. package/es/methods/initEntityReducers/types.js +1 -0
  52. package/es/methods/removeItem/index.d.ts +1 -0
  53. package/es/methods/removeItem/index.js +7 -0
  54. package/es/methods/triggerCallbacks/index.d.ts +3 -0
  55. package/es/methods/triggerCallbacks/index.js +14 -0
  56. package/es/methods/triggerWatchers/index.d.ts +2 -0
  57. package/es/methods/triggerWatchers/index.js +14 -0
  58. package/lib/components/UpdateFragment/index.js +16 -0
  59. package/lib/configs/defaultUseCaseContext/index.js +1 -1
  60. package/lib/configs/defaultUseCaseContext/types.js +5 -0
  61. package/lib/hooks/useCompareDeps/index.js +31 -0
  62. package/lib/hooks/useConstant/index.js +16 -0
  63. package/lib/hooks/useConstant/types.js +5 -0
  64. package/lib/hooks/useConstantFn/index.js +18 -0
  65. package/lib/hooks/useOptionsRefCollection/index.js +29 -0
  66. package/lib/hooks/useOptionsRefCollection/types.js +5 -0
  67. package/lib/hooks/useProvider/index.js +30 -0
  68. package/lib/hooks/useProvider/types.js +5 -0
  69. package/lib/hooks/useScope/index.js +10 -0
  70. package/lib/hooks/useScope/types.js +5 -0
  71. package/lib/hooks/useUseCase/index.js +73 -115
  72. package/lib/hooks/useUseCase/index.test.js +841 -240
  73. package/lib/hooks/useUseCaseContext/index.js +24 -0
  74. package/lib/methods/compareProperty/index.js +50 -0
  75. package/lib/methods/compareProperty/types.js +5 -0
  76. package/lib/methods/getRootEntity/index.js +16 -0
  77. package/lib/methods/hasField/index.js +15 -0
  78. package/lib/methods/initEntityReducers/index.js +29 -0
  79. package/lib/methods/initEntityReducers/types.js +5 -0
  80. package/lib/methods/removeItem/index.js +14 -0
  81. package/lib/methods/triggerCallbacks/index.js +22 -0
  82. package/lib/{hooks/useUseCase/methods → methods}/triggerWatchers/index.js +16 -9
  83. package/package.json +2 -2
  84. package/es/core/usecases/optionsGetterCellectionUseCase/index.d.ts +0 -2
  85. package/es/core/usecases/optionsGetterCellectionUseCase/index.js +0 -13
  86. package/es/core/usecases/optionsGetterCellectionUseCase/types.d.ts +0 -8
  87. package/es/hooks/useOptionsTransfer/index.d.ts +0 -3
  88. package/es/hooks/useOptionsTransfer/index.js +0 -15
  89. package/es/hooks/useUseCase/methods/triggerCallbacks/index.d.ts +0 -3
  90. package/es/hooks/useUseCase/methods/triggerCallbacks/index.js +0 -11
  91. package/es/hooks/useUseCase/methods/triggerWatchers/index.d.ts +0 -2
  92. package/es/hooks/useUseCase/methods/triggerWatchers/index.js +0 -10
  93. package/lib/core/usecases/optionsGetterCellectionUseCase/index.js +0 -23
  94. package/lib/hooks/useOptionsTransfer/index.js +0 -23
  95. package/lib/hooks/useUseCase/methods/triggerCallbacks/index.js +0 -32
  96. /package/es/{core/usecases/optionsGetterCellectionUseCase → components/UpdateFragment}/types.js +0 -0
  97. /package/lib/{core/usecases/optionsGetterCellectionUseCase → components/UpdateFragment}/types.js +0 -0
@@ -81,8 +81,8 @@ var fileUseCase = function fileUseCase() {
81
81
  return (0, _awaitAsyncGenerator2["default"])(Promise.resolve(null));
82
82
  case 4:
83
83
  _context3.next = 6;
84
- return function (prevEntity) {
85
- return _objectSpread(_objectSpread({}, prevEntity), {}, {
84
+ return function (oldEntity) {
85
+ return _objectSpread(_objectSpread({}, oldEntity), {}, {
86
86
  size: size
87
87
  });
88
88
  };
@@ -124,6 +124,9 @@ var mathUseCase = function mathUseCase() {
124
124
  subtraction: subtraction
125
125
  };
126
126
  };
127
+ var fieldPathUseCase = function fieldPathUseCase() {
128
+ return (0, _usecases.objectUseCase)();
129
+ };
127
130
  var Child = function Child(_ref2) {
128
131
  var _ref2$textPrefix = _ref2.textPrefix,
129
132
  textPrefix = _ref2$textPrefix === void 0 ? '' : _ref2$textPrefix,
@@ -243,17 +246,17 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
243
246
  return (0, _.useUseCase)(defaultFile, fileUseCase);
244
247
  }),
245
248
  result = _renderHook.result;
246
- var context = result.current;
247
- (0, _globals.expect)(context).toHaveLength(3);
249
+ var cores = result.current;
250
+ (0, _globals.expect)(cores).toHaveLength(3);
248
251
  });
249
252
  (0, _globals.test)('`entity` should equal `defaultFile`', function () {
250
253
  var _renderHook2 = (0, _react.renderHook)(function () {
251
254
  return (0, _.useUseCase)(defaultFile, fileUseCase);
252
255
  }),
253
256
  result = _renderHook2.result;
254
- var context = result.current;
255
- var _context4 = (0, _slicedToArray2["default"])(context, 1),
256
- entity = _context4[0];
257
+ var cores = result.current;
258
+ var _cores = (0, _slicedToArray2["default"])(cores, 1),
259
+ entity = _cores[0];
257
260
  (0, _globals.expect)(entity).toBe(defaultFile);
258
261
  });
259
262
  (0, _globals.test)('`reducers` should be returned as an object', function () {
@@ -261,9 +264,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
261
264
  return (0, _.useUseCase)(defaultFile, fileUseCase);
262
265
  }),
263
266
  result = _renderHook3.result;
264
- var context = result.current;
265
- var _context5 = (0, _slicedToArray2["default"])(context, 2),
266
- reducers = _context5[1];
267
+ var cores = result.current;
268
+ var _cores2 = (0, _slicedToArray2["default"])(cores, 2),
269
+ reducers = _cores2[1];
267
270
  (0, _globals.expect)((0, _typeof2["default"])(reducers)).toBe('object');
268
271
  });
269
272
  (0, _globals.test)('`Provider` should be returned as a function', function () {
@@ -271,9 +274,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
271
274
  return (0, _.useUseCase)(defaultFile, fileUseCase);
272
275
  }),
273
276
  result = _renderHook4.result;
274
- var context = result.current;
275
- var _context6 = (0, _slicedToArray2["default"])(context, 3),
276
- Provider = _context6[2];
277
+ var cores = result.current;
278
+ var _cores3 = (0, _slicedToArray2["default"])(cores, 3),
279
+ Provider = _cores3[2];
277
280
  (0, _globals.expect)((0, _typeof2["default"])(Provider)).toBe('function');
278
281
  });
279
282
  (0, _globals.test)('after call non-generator reducer, it should not trigger update', function () {
@@ -281,8 +284,8 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
281
284
  var onDeepUpdate = _globals.jest.fn();
282
285
  var _renderHook5 = (0, _react.renderHook)(function () {
283
286
  var context = (0, _.useUseCase)(defaultFile, fileUseCase);
284
- var _context7 = (0, _slicedToArray2["default"])(context, 2),
285
- reducers = _context7[1];
287
+ var _context4 = (0, _slicedToArray2["default"])(context, 2),
288
+ reducers = _context4[1];
286
289
  var isImage = reducers.isImage;
287
290
  var update = (0, _ahooks.useUpdate)();
288
291
  (0, _ahooks.useUpdateEffect)(function () {
@@ -320,10 +323,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
320
323
  return (0, _.useUseCase)(defaultFile, fileUseCase);
321
324
  }),
322
325
  result = _renderHook6.result;
323
- var context = result.current;
324
- var _context8 = (0, _slicedToArray2["default"])(context, 2),
325
- entity = _context8[0],
326
- reducers = _context8[1];
326
+ var cores = result.current;
327
+ var _cores4 = (0, _slicedToArray2["default"])(cores, 2),
328
+ entity = _cores4[0],
329
+ reducers = _cores4[1];
327
330
  var setPath = reducers.setPath,
328
331
  setEntity = reducers.setEntity;
329
332
  (0, _react.act)(function () {
@@ -332,7 +335,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
332
335
  size: 5000
333
336
  });
334
337
  });
335
- (0, _globals.expect)(result.current).not.toBe(context);
338
+ (0, _globals.expect)(result.current).not.toBe(cores);
336
339
  (0, _globals.expect)(result.current[0]).not.toBe(entity);
337
340
  (0, _globals.expect)(result.current[1]).not.toBe(reducers);
338
341
  (0, _globals.expect)(result.current[1].setPath).not.toBe(setPath);
@@ -344,9 +347,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
344
347
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
345
348
  });
346
349
  (0, _globals.test)('after `yield entity` on async mode, it should trigger update', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
347
- var onUpdate, _renderHook7, result, context, _context9, entity, reducers, readFile, promise;
348
- return _regenerator["default"].wrap(function _callee3$(_context10) {
349
- while (1) switch (_context10.prev = _context10.next) {
350
+ var onUpdate, _renderHook7, result, cores, _cores5, entity, reducers, readFile, promise;
351
+ return _regenerator["default"].wrap(function _callee3$(_context5) {
352
+ while (1) switch (_context5.prev = _context5.next) {
350
353
  case 0:
351
354
  onUpdate = _globals.jest.fn();
352
355
  _renderHook7 = (0, _react.renderHook)(function () {
@@ -355,16 +358,16 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
355
358
  });
356
359
  return (0, _.useUseCase)(defaultFile, fileUseCase);
357
360
  }), result = _renderHook7.result;
358
- context = result.current;
359
- _context9 = (0, _slicedToArray2["default"])(context, 2), entity = _context9[0], reducers = _context9[1];
361
+ cores = result.current;
362
+ _cores5 = (0, _slicedToArray2["default"])(cores, 2), entity = _cores5[0], reducers = _cores5[1];
360
363
  readFile = reducers.readFile;
361
364
  promise = (0, _react.act)(function () {
362
365
  return readFile(PATH_1);
363
366
  });
364
- (0, _globals.expect)(result.current).toBe(context);
365
- (0, _globals.expect)(result.current).toEqual(context);
367
+ (0, _globals.expect)(result.current).toBe(cores);
368
+ (0, _globals.expect)(result.current).toEqual(cores);
366
369
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
367
- _context10.next = 11;
370
+ _context5.next = 11;
368
371
  return promise;
369
372
  case 11:
370
373
  (0, _globals.expect)(result.current[0]).not.toBe(entity);
@@ -376,7 +379,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
376
379
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
377
380
  case 18:
378
381
  case "end":
379
- return _context10.stop();
382
+ return _context5.stop();
380
383
  }
381
384
  }, _callee3);
382
385
  })));
@@ -389,9 +392,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
389
392
  return (0, _.useUseCase)(defaultFile, fileUseCase);
390
393
  }),
391
394
  result = _renderHook8.result;
392
- var context = result.current;
393
- var _context11 = (0, _slicedToArray2["default"])(context, 2),
394
- reducers = _context11[1];
395
+ var cores = result.current;
396
+ var _cores6 = (0, _slicedToArray2["default"])(cores, 2),
397
+ reducers = _cores6[1];
395
398
  var init = reducers.init;
396
399
  (0, _react.act)(function () {
397
400
  init(_objectSpread(_objectSpread({}, defaultFile), {}, {
@@ -416,9 +419,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
416
419
  }),
417
420
  result = _renderHook9.result,
418
421
  rerender = _renderHook9.rerender;
419
- var context = result.current;
420
- var _context12 = (0, _slicedToArray2["default"])(context, 2),
421
- setPath = _context12[1].setPath;
422
+ var cores = result.current;
423
+ var _cores7 = (0, _slicedToArray2["default"])(cores, 2),
424
+ setPath = _cores7[1].setPath;
422
425
  setPath(PATH_1);
423
426
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
424
427
  (0, _globals.expect)(result.current[0].path).toBe('');
@@ -440,15 +443,15 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
440
443
  });
441
444
  }),
442
445
  result = _renderHook10.result;
443
- var context = result.current;
444
- var _context13 = (0, _slicedToArray2["default"])(context, 2),
445
- reducers = _context13[1];
446
+ var cores = result.current;
447
+ var _cores8 = (0, _slicedToArray2["default"])(cores, 2),
448
+ reducers = _cores8[1];
446
449
  var setPath = reducers.setPath;
447
450
  (0, _react.act)(function () {
448
451
  setPath(PATH_1);
449
452
  });
450
- (0, _globals.expect)(result.current).toBe(context);
451
- (0, _globals.expect)(result.current).toEqual(context);
453
+ (0, _globals.expect)(result.current).toBe(cores);
454
+ (0, _globals.expect)(result.current).toEqual(cores);
452
455
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
453
456
  });
454
457
  (0, _globals.test)('`options.onChange` should be trigger when entity has changed', function () {
@@ -459,9 +462,9 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
459
462
  });
460
463
  }),
461
464
  result = _renderHook11.result;
462
- var context = result.current;
463
- var _context14 = (0, _slicedToArray2["default"])(context, 2),
464
- reducers = _context14[1];
465
+ var cores = result.current;
466
+ var _cores9 = (0, _slicedToArray2["default"])(cores, 2),
467
+ reducers = _cores9[1];
465
468
  var setPath = reducers.setPath;
466
469
  (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
467
470
  (0, _react.act)(function () {
@@ -483,10 +486,10 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
483
486
  });
484
487
  }),
485
488
  result = _renderHook12.result;
486
- var context = result.current;
487
- var _context15 = (0, _slicedToArray2["default"])(context, 2),
488
- path = _context15[0].path,
489
- reducers = _context15[1];
489
+ var cores = result.current;
490
+ var _cores10 = (0, _slicedToArray2["default"])(cores, 2),
491
+ path = _cores10[0].path,
492
+ reducers = _cores10[1];
490
493
  var setPath = reducers.setPath;
491
494
  (0, _globals.expect)(path).toBe('');
492
495
  (0, _react.act)(function () {
@@ -523,22 +526,54 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
523
526
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
524
527
  });
525
528
  (0, _globals.test)('when `entity` change, it should trigger watchers', function () {
529
+ var onPathChange = _globals.jest.fn();
530
+ var onSizeChange = _globals.jest.fn();
531
+ var _renderHook14 = (0, _react.renderHook)(function () {
532
+ return (0, _.useUseCase)(defaultFile, fileUseCase, {
533
+ watch: {
534
+ path: onPathChange,
535
+ size: onSizeChange
536
+ }
537
+ });
538
+ }),
539
+ result = _renderHook14.result;
540
+ var cores = result.current;
541
+ var _cores11 = (0, _slicedToArray2["default"])(cores, 2),
542
+ setPath = _cores11[1].setPath;
543
+ (0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(0);
544
+ (0, _react.act)(function () {
545
+ setPath(PATH_1);
546
+ });
547
+ (0, _globals.expect)(onPathChange).toHaveBeenCalledTimes(1);
548
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
549
+ (0, _globals.expect)(onPathChange).toHaveBeenLastCalledWith({
550
+ fieldPaths: ['path'],
551
+ newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
552
+ path: PATH_1,
553
+ ext: EXT_1
554
+ }),
555
+ oldEntity: defaultFile,
556
+ newValue: PATH_1,
557
+ oldValue: ''
558
+ });
559
+ });
560
+ (0, _globals.test)('watcher should be updated after `entity` change', function () {
526
561
  var onPathChange1 = _globals.jest.fn();
527
562
  var onPathChange2 = _globals.jest.fn();
528
563
  var onPathChange = onPathChange1;
529
- var _renderHook14 = (0, _react.renderHook)(function () {
564
+ var _renderHook15 = (0, _react.renderHook)(function () {
530
565
  return (0, _.useUseCase)(defaultFile, fileUseCase, {
531
566
  watch: {
532
567
  path: onPathChange
533
568
  }
534
569
  });
535
570
  }),
536
- result = _renderHook14.result;
537
- var context = result.current;
538
- var _context16 = (0, _slicedToArray2["default"])(context, 2),
539
- _context16$ = _context16[1],
540
- setPath = _context16$.setPath,
541
- setEntity = _context16$.setEntity;
571
+ result = _renderHook15.result;
572
+ var cores = result.current;
573
+ var _cores12 = (0, _slicedToArray2["default"])(cores, 2),
574
+ _cores12$ = _cores12[1],
575
+ setPath = _cores12$.setPath,
576
+ setEntity = _cores12$.setEntity;
542
577
  onPathChange = onPathChange2;
543
578
  (0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(0);
544
579
  (0, _react.act)(function () {
@@ -548,26 +583,38 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
548
583
  });
549
584
  });
550
585
  (0, _globals.expect)(onPathChange1).toHaveBeenCalledTimes(1);
551
- (0, _globals.expect)(onPathChange1).toHaveBeenLastCalledWith(_objectSpread(_objectSpread({}, defaultFile), {}, {
552
- path: PATH_1,
553
- ext: EXT_1
554
- }), defaultFile);
586
+ (0, _globals.expect)(onPathChange1).toHaveBeenLastCalledWith({
587
+ fieldPaths: ['path'],
588
+ newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
589
+ path: PATH_1,
590
+ ext: EXT_1
591
+ }),
592
+ oldEntity: defaultFile,
593
+ newValue: PATH_1,
594
+ oldValue: ''
595
+ });
555
596
  (0, _react.act)(function () {
556
597
  setPath('');
557
598
  });
558
599
  (0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(1);
559
- (0, _globals.expect)(onPathChange2).toHaveBeenLastCalledWith(_objectSpread(_objectSpread({}, defaultFile), {}, {
560
- size: 5000
561
- }), _objectSpread(_objectSpread({}, defaultFile), {}, {
562
- path: PATH_1,
563
- size: 5000,
564
- ext: EXT_1
565
- }));
600
+ (0, _globals.expect)(onPathChange2).toHaveBeenLastCalledWith({
601
+ fieldPaths: ['path'],
602
+ newEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
603
+ size: 5000
604
+ }),
605
+ oldEntity: _objectSpread(_objectSpread({}, defaultFile), {}, {
606
+ path: PATH_1,
607
+ size: 5000,
608
+ ext: EXT_1
609
+ }),
610
+ newValue: '',
611
+ oldValue: PATH_1
612
+ });
566
613
  });
567
614
  (0, _globals.test)('when `deps` has changed, it should trigger update', function () {
568
615
  var onUpdate = _globals.jest.fn();
569
616
  var onDeepUpdate = _globals.jest.fn();
570
- var _renderHook15 = (0, _react.renderHook)(function () {
617
+ var _renderHook16 = (0, _react.renderHook)(function () {
571
618
  var _useState3 = (0, _react2.useState)('user/'),
572
619
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
573
620
  pathPrefix = _useState4[0],
@@ -583,7 +630,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
583
630
  }, [context]);
584
631
  return setPathPrefix;
585
632
  }),
586
- result = _renderHook15.result;
633
+ result = _renderHook16.result;
587
634
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
588
635
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
589
636
  (0, _react.act)(function () {
@@ -595,7 +642,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
595
642
  (0, _globals.test)('empty `deps` should not trigger update', function () {
596
643
  var onUpdate = _globals.jest.fn();
597
644
  var onDeepUpdate = _globals.jest.fn();
598
- var _renderHook16 = (0, _react.renderHook)(function () {
645
+ var _renderHook17 = (0, _react.renderHook)(function () {
599
646
  var _useState5 = (0, _react2.useState)('user/'),
600
647
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
601
648
  pathPrefix = _useState6[0],
@@ -611,7 +658,7 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
611
658
  }, [context]);
612
659
  return setPathPrefix;
613
660
  }),
614
- result = _renderHook16.result;
661
+ result = _renderHook17.result;
615
662
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
616
663
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
617
664
  (0, _react.act)(function () {
@@ -621,93 +668,157 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
621
668
  (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
622
669
  });
623
670
  });
624
- (0, _globals.describe)('`useUseCase` should work with 1+ argument on accessor mode', function () {
625
- (0, _globals.test)('check `context.length`', function () {
626
- var _renderHook17 = (0, _react.renderHook)(function () {
627
- return (0, _.useUseCase)(fileUseCase);
628
- }),
629
- result = _renderHook17.result;
630
- var context = result.current;
631
- (0, _globals.expect)(context).toHaveLength(2);
632
- });
633
- (0, _globals.test)('`entity` should be `undefined`', function () {
671
+ (0, _globals.describe)('`useUseCase` should work with 1+ arguments on non-entity mode', function () {
672
+ (0, _globals.test)('`entity` should equal `defaultFile`', function () {
634
673
  var _renderHook18 = (0, _react.renderHook)(function () {
635
- return (0, _.useUseCase)(fileUseCase);
674
+ return (0, _.useUseCase)(mathUseCase);
636
675
  }),
637
676
  result = _renderHook18.result;
638
- var context = result.current;
639
- var _context17 = (0, _slicedToArray2["default"])(context, 1),
640
- entity = _context17[0];
641
- (0, _globals.expect)(entity).toBe(void 0);
677
+ var reducers = result.current;
678
+ (0, _globals.expect)(Array.isArray(reducers)).toBe(false);
642
679
  });
643
- (0, _globals.test)('`reducers` should be returned as an object', function () {
680
+ (0, _globals.test)('returned reducer should work', function () {
644
681
  var _renderHook19 = (0, _react.renderHook)(function () {
645
- return (0, _.useUseCase)(fileUseCase);
682
+ return (0, _.useUseCase)(mathUseCase);
646
683
  }),
647
684
  result = _renderHook19.result;
648
- var context = result.current;
649
- var _context18 = (0, _slicedToArray2["default"])(context, 2),
650
- reducers = _context18[1];
651
- (0, _globals.expect)((0, _typeof2["default"])(reducers)).toBe('object');
685
+ var reducers = result.current;
686
+ var add = reducers.add;
687
+ (0, _globals.expect)(add(1, 2)).toBe(3);
652
688
  });
653
- (0, _globals.test)('`yield entity` should not trigger update', function () {
654
- var onUpdate = _globals.jest.fn();
689
+ (0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
655
690
  var _renderHook20 = (0, _react.renderHook)(function () {
656
- (0, _ahooks.useUpdateEffect)(function () {
657
- onUpdate();
691
+ return (0, _.useUseCase)(mathUseCase, {
692
+ extraValue: 5
658
693
  });
659
- return (0, _.useUseCase)(fileUseCase);
660
694
  }),
661
695
  result = _renderHook20.result;
662
- var context = result.current;
663
- var _context19 = (0, _slicedToArray2["default"])(context, 2),
664
- reducers = _context19[1];
665
- var setPath = reducers.setPath;
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);
666
722
  (0, _react.act)(function () {
667
- setPath(PATH_1);
723
+ result.current(3);
668
724
  });
669
- (0, _globals.expect)(result.current).toBe(context);
670
- (0, _globals.expect)(result.current).toEqual(context);
671
725
  (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
726
+ (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
672
727
  });
673
- (0, _globals.test)('should work within <Child />', function () {
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 () {
674
795
  var textPrefix = '>>';
675
- var onUpdate1 = _globals.jest.fn();
676
- var onPathChange1 = _globals.jest.fn();
677
- var onUndefinedEntity1 = _globals.jest.fn();
678
- var onUpdate2 = _globals.jest.fn();
679
- var onPathChange2 = _globals.jest.fn();
680
- var onUndefinedEntity2 = _globals.jest.fn();
796
+ var onUpdate = _globals.jest.fn();
797
+ var onPathChange = _globals.jest.fn();
798
+ var onUndefinedEntity = _globals.jest.fn();
681
799
  var onSetPath = _globals.jest.fn(function () {
682
800
  return PATH_1;
683
801
  });
684
- (0, _react.render)((0, _jsxRuntime.jsxs)("div", {
685
- children: [(0, _jsxRuntime.jsx)(Parent, {
802
+ (0, _react.render)((0, _jsxRuntime.jsx)("div", {
803
+ children: (0, _jsxRuntime.jsx)(Parent, {
686
804
  onSetPath: onSetPath,
687
805
  children: (0, _jsxRuntime.jsx)(Child, {
688
806
  textPrefix: textPrefix,
689
- onUpdate: onUpdate1,
690
- onPathChange: onPathChange1,
691
- onUndefinedEntity: onUndefinedEntity1
807
+ onUpdate: onUpdate,
808
+ onPathChange: onPathChange,
809
+ onUndefinedEntity: onUndefinedEntity
692
810
  })
693
- }), (0, _jsxRuntime.jsx)(Child, {
694
- onUpdate: onUpdate2,
695
- onPathChange: onPathChange2,
696
- onUndefinedEntity: onUndefinedEntity2
697
- })]
811
+ })
698
812
  }));
699
813
  _react.fireEvent.click(_react.screen.getByText(PARENT_BUTTON_TEXT));
700
814
  (0, _globals.expect)(onSetPath).toHaveBeenCalledTimes(1);
701
- (0, _globals.expect)(onUpdate1).toHaveBeenCalledTimes(1);
702
- (0, _globals.expect)(onPathChange1).toHaveBeenCalledWith(PATH_1);
815
+ (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
816
+ (0, _globals.expect)(onPathChange).toHaveBeenCalledWith(PATH_1);
703
817
  _react.fireEvent.click(_react.screen.getByText(textPrefix + CHILD_BUTTON_TEXT));
704
818
  (0, _globals.expect)(onSetPath).toHaveBeenCalledTimes(1);
705
- (0, _globals.expect)(onUpdate1).toHaveBeenCalledTimes(2);
706
- (0, _globals.expect)(onPathChange1).toHaveBeenCalledWith('');
707
- (0, _globals.expect)(onUpdate2).toHaveBeenCalledTimes(0);
708
- (0, _globals.expect)(onPathChange2).toHaveBeenCalledTimes(0);
709
- (0, _globals.expect)(onUndefinedEntity1).toHaveBeenCalledTimes(0);
710
- (0, _globals.expect)(onUndefinedEntity2).toHaveBeenCalledTimes(1);
819
+ (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(2);
820
+ (0, _globals.expect)(onPathChange).toHaveBeenCalledWith('');
821
+ (0, _globals.expect)(onUndefinedEntity).toHaveBeenCalledTimes(0);
711
822
  });
712
823
  (0, _globals.test)('`options.onChange` event should be trigger at child elements', function () {
713
824
  var onFirstChange = _globals.jest.fn();
@@ -765,6 +876,56 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
765
876
  (0, _globals.expect)(onFirstChange).toHaveBeenCalledTimes(1);
766
877
  (0, _globals.expect)(onParentPathChange).toHaveBeenCalledTimes(2);
767
878
  });
879
+ (0, _globals.test)('`options.onChange` event should be trigger in orders', function () {
880
+ var changeTimes = 0;
881
+ var updateChangeTimes = function updateChangeTimes() {
882
+ return ++changeTimes;
883
+ };
884
+ var onChangeA = _globals.jest.fn(updateChangeTimes);
885
+ var onChangeB = _globals.jest.fn(updateChangeTimes);
886
+ var onChangeC = _globals.jest.fn(updateChangeTimes);
887
+ var buttonText = 'my button';
888
+ var A = function A(_ref7) {
889
+ 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
+ });
768
929
  (0, _globals.test)('`options.watch` should be trigger at child elements', function () {
769
930
  var onFirstExtChange = _globals.jest.fn();
770
931
  var onSecondExtChange = _globals.jest.fn();
@@ -781,14 +942,14 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
781
942
  return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
782
943
  };
783
944
  var B = function B() {
784
- var _useUseCase8 = (0, _.useUseCase)(defaultFile, fileUseCase, {
945
+ var _useUseCase10 = (0, _.useUseCase)(defaultFile, fileUseCase, {
785
946
  watch: {
786
947
  ext: onParentExtChange
787
948
  }
788
949
  }),
789
- _useUseCase9 = (0, _slicedToArray2["default"])(_useUseCase8, 3),
790
- setPath = _useUseCase9[1].setPath,
791
- Provider = _useUseCase9[2];
950
+ _useUseCase11 = (0, _slicedToArray2["default"])(_useUseCase10, 3),
951
+ setPath = _useUseCase11[1].setPath,
952
+ Provider = _useUseCase11[2];
792
953
  var onFirstClick = function onFirstClick() {
793
954
  setPath(PATH_1);
794
955
  onExtChange = onSecondExtChange;
@@ -810,142 +971,582 @@ var useDeepCompareUpdate = function useDeepCompareUpdate(callback, deps) {
810
971
  (0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(0);
811
972
  _react.fireEvent.click(_react.screen.getByText(firstButtonText));
812
973
  (0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
813
- (0, _globals.expect)(onFirstExtChange).toHaveBeenLastCalledWith(_objectSpread(_objectSpread({}, defaultFile), {}, {
814
- ext: EXT_1,
815
- path: PATH_1
816
- }), defaultFile);
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
+ });
817
984
  (0, _globals.expect)(onParentExtChange).toHaveBeenCalledTimes(1);
818
985
  (0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(0);
819
986
  _react.fireEvent.click(_react.screen.getByText(secondButtonText));
820
987
  (0, _globals.expect)(onSecondExtChange).toHaveBeenCalledTimes(1);
821
- (0, _globals.expect)(onSecondExtChange).toHaveBeenLastCalledWith(defaultFile, _objectSpread(_objectSpread({}, defaultFile), {}, {
822
- ext: EXT_1,
823
- path: PATH_1
824
- }));
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
+ });
825
998
  (0, _globals.expect)(onFirstExtChange).toHaveBeenCalledTimes(1);
826
999
  (0, _globals.expect)(onParentExtChange).toHaveBeenCalledTimes(2);
827
1000
  });
828
- });
829
- (0, _globals.describe)('`useUseCase` should work with 1+ arguments on non-entity mode', function () {
830
- (0, _globals.test)('`entity` should equal `defaultFile`', function () {
831
- var _renderHook21 = (0, _react.renderHook)(function () {
832
- return (0, _.useUseCase)(mathUseCase);
833
- }),
834
- result = _renderHook21.result;
835
- var reducers = result.current;
836
- (0, _globals.expect)((0, _typeof2["default"])(reducers)).toBe('object');
837
- });
838
- (0, _globals.test)('returned reducer should work', function () {
839
- var _renderHook22 = (0, _react.renderHook)(function () {
840
- return (0, _.useUseCase)(mathUseCase);
841
- }),
842
- result = _renderHook22.result;
843
- var reducers = result.current;
844
- var add = reducers.add;
845
- (0, _globals.expect)(add(1, 2)).toBe(3);
846
- });
847
- (0, _globals.test)('`options.extraValue` should be added after call `add` method', function () {
848
- var _renderHook23 = (0, _react.renderHook)(function () {
849
- return (0, _.useUseCase)(mathUseCase, {
850
- extraValue: 5
851
- });
852
- }),
853
- result = _renderHook23.result;
854
- var reducers = result.current;
855
- var add = reducers.add;
856
- (0, _globals.expect)(add(1, 2)).toBe(8);
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
+ (0, _.useUseCase)(fileUseCase, {
1014
+ watch: {
1015
+ ext: onChangeA
1016
+ }
1017
+ });
1018
+ return (0, _jsxRuntime.jsx)(_react2.Fragment, {
1019
+ children: children
1020
+ });
1021
+ };
1022
+ var B = function B() {
1023
+ (0, _.useUseCase)(fileUseCase, {
1024
+ watch: {
1025
+ ext: onChangeB
1026
+ }
1027
+ });
1028
+ return (0, _jsxRuntime.jsx)(_react2.Fragment, {});
1029
+ };
1030
+ var C = function C() {
1031
+ var _useUseCase12 = (0, _.useUseCase)(defaultFile, fileUseCase, {
1032
+ watch: {
1033
+ ext: onChangeC
1034
+ }
1035
+ }),
1036
+ _useUseCase13 = (0, _slicedToArray2["default"])(_useUseCase12, 3),
1037
+ setPath = _useUseCase13[1].setPath,
1038
+ Provider = _useUseCase13[2];
1039
+ var onFirstClick = function onFirstClick() {
1040
+ setPath(PATH_1);
1041
+ };
1042
+ return (0, _jsxRuntime.jsxs)(Provider, {
1043
+ children: [(0, _jsxRuntime.jsx)(A, {
1044
+ children: (0, _jsxRuntime.jsx)(B, {})
1045
+ }), (0, _jsxRuntime.jsx)("button", {
1046
+ onClick: onFirstClick,
1047
+ children: buttonText
1048
+ })]
1049
+ });
1050
+ };
1051
+ (0, _react.render)((0, _jsxRuntime.jsx)(C, {}));
1052
+ (0, _globals.expect)(changeTimes).toBe(0);
1053
+ _react.fireEvent.click(_react.screen.getByText(buttonText));
1054
+ (0, _globals.expect)(onChangeA).toHaveReturnedWith(2);
1055
+ (0, _globals.expect)(onChangeB).toHaveReturnedWith(1);
1056
+ (0, _globals.expect)(onChangeC).toHaveReturnedWith(3);
857
1057
  });
858
- (0, _globals.test)('when `options` has changed, it should not trigger update', function () {
859
- var onUpdate = _globals.jest.fn();
860
- var onDeepUpdate = _globals.jest.fn();
1058
+ (0, _globals.test)('`options.watch` should work with array field path of array', function () {
1059
+ var onExtChange = _globals.jest.fn();
1060
+ var onSizeChange = _globals.jest.fn();
861
1061
  var _renderHook24 = (0, _react.renderHook)(function () {
862
- var _useState7 = (0, _react2.useState)(0),
863
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
864
- extraValue = _useState8[0],
865
- setExtraValue = _useState8[1];
866
- var reducers = (0, _.useUseCase)(mathUseCase, {
867
- extraValue: extraValue
1062
+ return (0, _.useUseCase)({}, fieldPathUseCase, {
1063
+ watch: {
1064
+ 'list.ext': onExtChange,
1065
+ 'list.size': onSizeChange
1066
+ }
868
1067
  });
869
- (0, _ahooks.useUpdateEffect)(function () {
870
- onUpdate();
871
- }, [reducers]);
872
- useDeepCompareUpdate(function () {
873
- onDeepUpdate();
874
- }, [reducers]);
875
- return setExtraValue;
876
1068
  }),
877
1069
  result = _renderHook24.result;
878
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
879
- (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
1070
+ var cores = result.current;
1071
+ var _cores13 = (0, _slicedToArray2["default"])(cores, 2),
1072
+ setEntity = _cores13[1].setEntity;
880
1073
  (0, _react.act)(function () {
881
- result.current(3);
1074
+ setEntity({
1075
+ list: [defaultFile]
1076
+ });
1077
+ });
1078
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(1);
1079
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(1);
1080
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
1081
+ fieldPaths: ['list', '0', 'ext'],
1082
+ newEntity: {
1083
+ list: [defaultFile]
1084
+ },
1085
+ oldEntity: {},
1086
+ newValue: '',
1087
+ oldValue: void 0
1088
+ });
1089
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledWith({
1090
+ fieldPaths: ['list', '0', 'size'],
1091
+ newEntity: {
1092
+ list: [defaultFile]
1093
+ },
1094
+ oldEntity: {},
1095
+ newValue: 0,
1096
+ oldValue: void 0
1097
+ });
1098
+ (0, _react.act)(function () {
1099
+ setEntity({
1100
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1101
+ ext: EXT_1
1102
+ })]
1103
+ });
1104
+ });
1105
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(2);
1106
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(1);
1107
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
1108
+ fieldPaths: ['list', '0', 'ext'],
1109
+ newEntity: {
1110
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1111
+ ext: EXT_1
1112
+ })]
1113
+ },
1114
+ oldEntity: {
1115
+ list: [defaultFile]
1116
+ },
1117
+ newValue: EXT_1,
1118
+ oldValue: ''
1119
+ });
1120
+ (0, _react.act)(function () {
1121
+ setEntity({
1122
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1123
+ ext: EXT_1
1124
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1125
+ ext: EXT_2
1126
+ })]
1127
+ });
1128
+ });
1129
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(3);
1130
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(2);
1131
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
1132
+ fieldPaths: ['list', '1', 'ext'],
1133
+ newEntity: {
1134
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1135
+ ext: EXT_1
1136
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1137
+ ext: EXT_2
1138
+ })]
1139
+ },
1140
+ oldEntity: {
1141
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1142
+ ext: EXT_1
1143
+ })]
1144
+ },
1145
+ newValue: EXT_2,
1146
+ oldValue: void 0
1147
+ });
1148
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledWith({
1149
+ fieldPaths: ['list', '1', 'size'],
1150
+ newEntity: {
1151
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1152
+ ext: EXT_1
1153
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1154
+ ext: EXT_2
1155
+ })]
1156
+ },
1157
+ oldEntity: {
1158
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1159
+ ext: EXT_1
1160
+ })]
1161
+ },
1162
+ newValue: 0,
1163
+ oldValue: void 0
1164
+ });
1165
+ (0, _react.act)(function () {
1166
+ setEntity({
1167
+ nestedList: []
1168
+ });
1169
+ });
1170
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(3);
1171
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(2);
1172
+ (0, _react.act)(function () {
1173
+ setEntity(function () {
1174
+ return {
1175
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1176
+ ext: EXT_2
1177
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1178
+ ext: EXT_1
1179
+ }), defaultFile]
1180
+ };
1181
+ });
1182
+ });
1183
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(6);
1184
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(3);
1185
+ (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(4, {
1186
+ fieldPaths: ['list', '0', 'ext'],
1187
+ newEntity: {
1188
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1189
+ ext: EXT_2
1190
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1191
+ ext: EXT_1
1192
+ }), defaultFile]
1193
+ },
1194
+ oldEntity: {
1195
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1196
+ ext: EXT_1
1197
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1198
+ ext: EXT_2
1199
+ })],
1200
+ nestedList: []
1201
+ },
1202
+ newValue: EXT_2,
1203
+ oldValue: EXT_1
1204
+ });
1205
+ (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(5, {
1206
+ fieldPaths: ['list', '1', 'ext'],
1207
+ newEntity: {
1208
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1209
+ ext: EXT_2
1210
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1211
+ ext: EXT_1
1212
+ }), defaultFile]
1213
+ },
1214
+ oldEntity: {
1215
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1216
+ ext: EXT_1
1217
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1218
+ ext: EXT_2
1219
+ })],
1220
+ nestedList: []
1221
+ },
1222
+ newValue: EXT_1,
1223
+ oldValue: EXT_2
1224
+ });
1225
+ (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(6, {
1226
+ fieldPaths: ['list', '2', 'ext'],
1227
+ newEntity: {
1228
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1229
+ ext: EXT_2
1230
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1231
+ ext: EXT_1
1232
+ }), defaultFile]
1233
+ },
1234
+ oldEntity: {
1235
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1236
+ ext: EXT_1
1237
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1238
+ ext: EXT_2
1239
+ })],
1240
+ nestedList: []
1241
+ },
1242
+ newValue: '',
1243
+ oldValue: void 0
1244
+ });
1245
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledWith({
1246
+ fieldPaths: ['list', '2', 'size'],
1247
+ newEntity: {
1248
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1249
+ ext: EXT_2
1250
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1251
+ ext: EXT_1
1252
+ }), defaultFile]
1253
+ },
1254
+ oldEntity: {
1255
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1256
+ ext: EXT_1
1257
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1258
+ ext: EXT_2
1259
+ })],
1260
+ nestedList: []
1261
+ },
1262
+ newValue: 0,
1263
+ oldValue: void 0
1264
+ });
1265
+ (0, _react.act)(function () {
1266
+ setEntity(function () {
1267
+ return {};
1268
+ });
1269
+ });
1270
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(9);
1271
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(6);
1272
+ (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(7, {
1273
+ fieldPaths: ['list', '0', 'ext'],
1274
+ newEntity: {},
1275
+ oldEntity: {
1276
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1277
+ ext: EXT_2
1278
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1279
+ ext: EXT_1
1280
+ }), defaultFile]
1281
+ },
1282
+ newValue: void 0,
1283
+ oldValue: EXT_2
1284
+ });
1285
+ (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(8, {
1286
+ fieldPaths: ['list', '1', 'ext'],
1287
+ newEntity: {},
1288
+ oldEntity: {
1289
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1290
+ ext: EXT_2
1291
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1292
+ ext: EXT_1
1293
+ }), defaultFile]
1294
+ },
1295
+ newValue: void 0,
1296
+ oldValue: EXT_1
1297
+ });
1298
+ (0, _globals.expect)(onExtChange).toHaveBeenNthCalledWith(9, {
1299
+ fieldPaths: ['list', '2', 'ext'],
1300
+ newEntity: {},
1301
+ oldEntity: {
1302
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1303
+ ext: EXT_2
1304
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1305
+ ext: EXT_1
1306
+ }), defaultFile]
1307
+ },
1308
+ newValue: void 0,
1309
+ oldValue: ''
1310
+ });
1311
+ (0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(4, {
1312
+ fieldPaths: ['list', '0', 'size'],
1313
+ newEntity: {},
1314
+ oldEntity: {
1315
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1316
+ ext: EXT_2
1317
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1318
+ ext: EXT_1
1319
+ }), defaultFile]
1320
+ },
1321
+ newValue: void 0,
1322
+ oldValue: 0
1323
+ });
1324
+ (0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(5, {
1325
+ fieldPaths: ['list', '1', 'size'],
1326
+ newEntity: {},
1327
+ oldEntity: {
1328
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1329
+ ext: EXT_2
1330
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1331
+ ext: EXT_1
1332
+ }), defaultFile]
1333
+ },
1334
+ newValue: void 0,
1335
+ oldValue: 0
1336
+ });
1337
+ (0, _globals.expect)(onSizeChange).toHaveBeenNthCalledWith(6, {
1338
+ fieldPaths: ['list', '2', 'size'],
1339
+ newEntity: {},
1340
+ oldEntity: {
1341
+ list: [_objectSpread(_objectSpread({}, defaultFile), {}, {
1342
+ ext: EXT_2
1343
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1344
+ ext: EXT_1
1345
+ }), defaultFile]
1346
+ },
1347
+ newValue: void 0,
1348
+ oldValue: 0
882
1349
  });
883
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
884
- (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
885
1350
  });
886
- (0, _globals.test)('when `deps` change, it should update reducers', function () {
887
- var onUpdate = _globals.jest.fn();
888
- var onDeepUpdate = _globals.jest.fn();
1351
+ (0, _globals.test)('`options.watch` should work with field path of array length', function () {
1352
+ var onEntityLengthChange = _globals.jest.fn();
1353
+ var onListLengthChange = _globals.jest.fn();
1354
+ var lengthUseCase = function lengthUseCase() {
1355
+ return (0, _usecases.entityUseCase)();
1356
+ };
889
1357
  var _renderHook25 = (0, _react.renderHook)(function () {
890
- var _useState9 = (0, _react2.useState)(0),
891
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
892
- extraValue = _useState10[0],
893
- setExtraValue = _useState10[1];
894
- var reducers = (0, _.useUseCase)(mathUseCase, {
895
- extraValue: extraValue
896
- }, [extraValue]);
897
- (0, _ahooks.useUpdateEffect)(function () {
898
- onUpdate();
899
- }, [reducers]);
900
- useDeepCompareUpdate(function () {
901
- onDeepUpdate();
902
- }, [reducers]);
903
- return setExtraValue;
1358
+ return (0, _.useUseCase)([], lengthUseCase, {
1359
+ watch: {
1360
+ length: onEntityLengthChange,
1361
+ 'list.length': onListLengthChange
1362
+ }
1363
+ });
904
1364
  }),
905
1365
  result = _renderHook25.result;
906
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
907
- (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
1366
+ var cores = result.current;
1367
+ var _cores14 = (0, _slicedToArray2["default"])(cores, 2),
1368
+ setEntity = _cores14[1].setEntity;
1369
+ (0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledTimes(0);
1370
+ (0, _globals.expect)(onListLengthChange).toHaveBeenCalledTimes(0);
908
1371
  (0, _react.act)(function () {
909
- result.current(3);
1372
+ setEntity([{
1373
+ list: [defaultFile, defaultFile]
1374
+ }]);
1375
+ });
1376
+ (0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledTimes(1);
1377
+ (0, _globals.expect)(onListLengthChange).toHaveBeenCalledTimes(1);
1378
+ (0, _globals.expect)(onEntityLengthChange).toHaveBeenCalledWith({
1379
+ fieldPaths: ['length'],
1380
+ newEntity: [{
1381
+ list: [defaultFile, defaultFile]
1382
+ }],
1383
+ oldEntity: [],
1384
+ newValue: 1,
1385
+ oldValue: 0
1386
+ });
1387
+ (0, _globals.expect)(onListLengthChange).toHaveBeenCalledWith({
1388
+ fieldPaths: ['0', 'list', 'length'],
1389
+ newEntity: [{
1390
+ list: [defaultFile, defaultFile]
1391
+ }],
1392
+ oldEntity: [],
1393
+ newValue: 2,
1394
+ oldValue: void 0
910
1395
  });
911
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(1);
912
- (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(1);
913
1396
  });
914
- (0, _globals.test)('empty `deps` should not update reducers', function () {
915
- var onUpdate = _globals.jest.fn();
916
- var onDeepUpdate = _globals.jest.fn();
1397
+ (0, _globals.test)('`options.watch` should work with field path of nested array', function () {
1398
+ var onChange = _globals.jest.fn();
917
1399
  var _renderHook26 = (0, _react.renderHook)(function () {
918
- var _useState11 = (0, _react2.useState)(0),
919
- _useState12 = (0, _slicedToArray2["default"])(_useState11, 2),
920
- extraValue = _useState12[0],
921
- setExtraValue = _useState12[1];
922
- var reducers = (0, _.useUseCase)(mathUseCase, {
923
- extraValue: extraValue
924
- }, []);
925
- (0, _ahooks.useUpdateEffect)(function () {
926
- onUpdate();
927
- }, [reducers]);
928
- useDeepCompareUpdate(function () {
929
- onDeepUpdate();
930
- }, [reducers]);
931
- return setExtraValue;
1400
+ return (0, _.useUseCase)({}, fieldPathUseCase, {
1401
+ watch: {
1402
+ 'nestedList.size': onChange
1403
+ }
1404
+ });
932
1405
  }),
933
1406
  result = _renderHook26.result;
934
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
935
- (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
1407
+ var cores = result.current;
1408
+ var _cores15 = (0, _slicedToArray2["default"])(cores, 2),
1409
+ setEntity = _cores15[1].setEntity;
1410
+ (0, _globals.expect)(onChange).toHaveBeenCalledTimes(0);
936
1411
  (0, _react.act)(function () {
937
- result.current(3);
1412
+ setEntity({
1413
+ nestedList: [[[defaultFile]]]
1414
+ });
1415
+ });
1416
+ (0, _globals.expect)(onChange).toHaveBeenCalledTimes(1);
1417
+ (0, _globals.expect)(onChange).toHaveBeenCalledWith({
1418
+ fieldPaths: ['nestedList', '0', '0', '0', 'size'],
1419
+ newEntity: {
1420
+ nestedList: [[[defaultFile]]]
1421
+ },
1422
+ oldEntity: {},
1423
+ newValue: 0,
1424
+ oldValue: void 0
1425
+ });
1426
+ (0, _react.act)(function () {
1427
+ setEntity({
1428
+ nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
1429
+ size: 100
1430
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1431
+ size: 200
1432
+ })]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
1433
+ size: 300
1434
+ })]]]
1435
+ });
1436
+ });
1437
+ (0, _globals.expect)(onChange).toHaveBeenCalledTimes(4);
1438
+ (0, _globals.expect)(onChange).toHaveBeenNthCalledWith(2, {
1439
+ fieldPaths: ['nestedList', '0', '0', '0', 'size'],
1440
+ newEntity: {
1441
+ nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
1442
+ size: 100
1443
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1444
+ size: 200
1445
+ })]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
1446
+ size: 300
1447
+ })]]]
1448
+ },
1449
+ oldEntity: {
1450
+ nestedList: [[[defaultFile]]]
1451
+ },
1452
+ newValue: 100,
1453
+ oldValue: 0
1454
+ });
1455
+ (0, _globals.expect)(onChange).toHaveBeenNthCalledWith(3, {
1456
+ fieldPaths: ['nestedList', '0', '0', '1', 'size'],
1457
+ newEntity: {
1458
+ nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
1459
+ size: 100
1460
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1461
+ size: 200
1462
+ })]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
1463
+ size: 300
1464
+ })]]]
1465
+ },
1466
+ oldEntity: {
1467
+ nestedList: [[[defaultFile]]]
1468
+ },
1469
+ newValue: 200,
1470
+ oldValue: void 0
1471
+ });
1472
+ (0, _globals.expect)(onChange).toHaveBeenNthCalledWith(4, {
1473
+ fieldPaths: ['nestedList', '1', '0', '0', 'size'],
1474
+ newEntity: {
1475
+ nestedList: [[[_objectSpread(_objectSpread({}, defaultFile), {}, {
1476
+ size: 100
1477
+ }), _objectSpread(_objectSpread({}, defaultFile), {}, {
1478
+ size: 200
1479
+ })]], [[_objectSpread(_objectSpread({}, defaultFile), {}, {
1480
+ size: 300
1481
+ })]]]
1482
+ },
1483
+ oldEntity: {
1484
+ nestedList: [[[defaultFile]]]
1485
+ },
1486
+ newValue: 300,
1487
+ oldValue: void 0
938
1488
  });
939
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
940
- (0, _globals.expect)(onDeepUpdate).toHaveBeenCalledTimes(0);
941
1489
  });
942
- (0, _globals.test)('should not trigger update', function () {
943
- var onUpdate = _globals.jest.fn();
944
- (0, _react.render)((0, _jsxRuntime.jsx)(MathParent, {
945
- onUpdate: onUpdate
946
- }));
947
- _react.fireEvent.click(_react.screen.getByText(PARENT_BUTTON_TEXT));
948
- (0, _globals.expect)(onUpdate).toHaveBeenCalledTimes(0);
1490
+ (0, _globals.test)('`options.watch` should work with field path of object', function () {
1491
+ var onExtChange = _globals.jest.fn();
1492
+ var onSizeChange = _globals.jest.fn();
1493
+ var _renderHook27 = (0, _react.renderHook)(function () {
1494
+ return (0, _.useUseCase)({}, fieldPathUseCase, {
1495
+ watch: {
1496
+ 'obj.file.ext': onExtChange,
1497
+ 'obj.file.size': onSizeChange
1498
+ }
1499
+ });
1500
+ }),
1501
+ result = _renderHook27.result;
1502
+ var cores = result.current;
1503
+ var _cores16 = (0, _slicedToArray2["default"])(cores, 2),
1504
+ setEntity = _cores16[1].setEntity;
1505
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(0);
1506
+ (0, _react.act)(function () {
1507
+ setEntity({
1508
+ obj: {
1509
+ file: {
1510
+ ext: EXT_1
1511
+ }
1512
+ }
1513
+ });
1514
+ });
1515
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(1);
1516
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
1517
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
1518
+ fieldPaths: ['obj', 'file', 'ext'],
1519
+ newEntity: {
1520
+ obj: {
1521
+ file: {
1522
+ ext: EXT_1
1523
+ }
1524
+ }
1525
+ },
1526
+ oldEntity: {},
1527
+ newValue: EXT_1,
1528
+ oldValue: void 0
1529
+ });
1530
+ (0, _react.act)(function () {
1531
+ setEntity(function () {
1532
+ return {};
1533
+ });
1534
+ });
1535
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledTimes(2);
1536
+ (0, _globals.expect)(onSizeChange).toHaveBeenCalledTimes(0);
1537
+ (0, _globals.expect)(onExtChange).toHaveBeenCalledWith({
1538
+ fieldPaths: ['obj', 'file', 'ext'],
1539
+ newEntity: {},
1540
+ oldEntity: {
1541
+ obj: {
1542
+ file: {
1543
+ ext: EXT_1
1544
+ }
1545
+ }
1546
+ },
1547
+ newValue: void 0,
1548
+ oldValue: EXT_1
1549
+ });
949
1550
  });
950
1551
  });
951
1552
  });