@mic-rexjs/usecases-react 3.7.0 → 4.0.0-beta.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/classes/OptionsSet/index.d.ts +6 -0
- package/es/classes/OptionsSet/index.js +44 -0
- package/es/classes/OptionsSet/types.d.ts +8 -0
- package/es/hooks/useContextValue/index.d.ts +6 -0
- package/es/hooks/useContextValue/index.js +20 -0
- package/es/hooks/useContextualItem/index.d.ts +2 -2
- package/es/hooks/useContextualItem/index.js +8 -28
- package/es/hooks/useEntity/index.d.ts +1 -1
- package/es/hooks/useEntity/index.js +10 -12
- package/es/hooks/useExec/index.d.ts +2 -2
- package/es/hooks/useExec/index.js +19 -6
- package/es/hooks/useExec/types.d.ts +3 -0
- package/es/hooks/useFullArguments/types.d.ts +2 -2
- package/es/hooks/useOptions/index.d.ts +5 -0
- package/es/hooks/useOptions/index.js +54 -0
- package/es/hooks/useOptions/types.d.ts +5 -0
- package/es/hooks/useOptionsSet/index.d.ts +5 -0
- package/es/hooks/useOptionsSet/index.js +16 -0
- package/es/hooks/useProvider/index.d.ts +1 -3
- package/es/hooks/useProvider/index.js +2 -10
- package/es/hooks/useReducers/index.d.ts +1 -1
- package/es/hooks/useReducers/index.js +6 -25
- package/es/hooks/useRootCreation/index.d.ts +4 -0
- package/es/hooks/useRootCreation/index.js +20 -0
- package/es/hooks/useRootCreation/types.d.ts +3 -0
- package/es/hooks/useRootCreation/types.js +1 -0
- package/es/hooks/useStore/index.js +7 -12
- package/es/hooks/useUseCase/index.js +12 -6
- package/es/hooks/useUseCase/index.test.js +263 -161
- package/es/hooks/useUseCase/types.d.ts +4 -5
- package/es/methods/cacheCall/index.d.ts +2 -0
- package/es/methods/cacheCall/index.js +38 -0
- package/es/methods/cacheCall/types.d.ts +12 -0
- package/es/methods/cacheCall/types.js +1 -0
- package/es/methods/cacheCalls/index.d.ts +2 -0
- package/es/methods/cacheCalls/index.js +12 -0
- package/es/usecases/contextUseCase/types.d.ts +3 -1
- package/lib/classes/OptionsSet/index.js +94 -0
- package/lib/hooks/useContextValue/index.js +26 -0
- package/lib/hooks/useContextualItem/index.js +8 -28
- package/lib/hooks/useEntity/index.js +9 -11
- package/lib/hooks/useExec/index.js +18 -5
- package/lib/hooks/useOptions/index.js +61 -0
- package/lib/hooks/useOptionsSet/index.js +22 -0
- package/lib/hooks/useProvider/index.js +1 -9
- package/lib/hooks/useReducers/index.js +8 -31
- package/lib/hooks/useRootCreation/index.js +26 -0
- package/lib/hooks/useRootCreation/types.js +5 -0
- package/lib/hooks/useStore/index.js +7 -12
- package/lib/hooks/useUseCase/index.js +13 -7
- package/lib/hooks/useUseCase/index.test.js +301 -160
- package/lib/methods/cacheCall/index.js +44 -0
- package/lib/methods/cacheCall/types.js +5 -0
- package/lib/methods/cacheCalls/index.js +19 -0
- package/package.json +3 -3
- package/es/hooks/useContextualItem/types.d.ts +0 -3
- package/es/usecases/methodUseCase/index.d.ts +0 -2
- package/es/usecases/methodUseCase/index.js +0 -72
- package/es/usecases/methodUseCase/types.d.ts +0 -21
- package/lib/usecases/methodUseCase/index.js +0 -79
- /package/es/{hooks/useContextualItem → classes/OptionsSet}/types.js +0 -0
- /package/es/{usecases/methodUseCase → hooks/useOptions}/types.js +0 -0
- /package/lib/{hooks/useContextualItem → classes/OptionsSet}/types.js +0 -0
- /package/lib/{usecases/methodUseCase → hooks/useOptions}/types.js +0 -0
|
@@ -26,6 +26,7 @@ const fileUseCase = function () {
|
|
|
26
26
|
const entityReducers = entityUseCase();
|
|
27
27
|
const _options$pathPrefix = options.pathPrefix,
|
|
28
28
|
pathPrefix = _options$pathPrefix === void 0 ? '' : _options$pathPrefix,
|
|
29
|
+
onReadFile = options.onReadFile,
|
|
29
30
|
onPathChange = options.onPathChange;
|
|
30
31
|
const init = function (entity) {
|
|
31
32
|
let newEntity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultFile;
|
|
@@ -47,7 +48,8 @@ const fileUseCase = function () {
|
|
|
47
48
|
onPathChange === null || onPathChange === void 0 || onPathChange(newPath, oldPath);
|
|
48
49
|
};
|
|
49
50
|
const readFile = async function* (entity, path) {
|
|
50
|
-
|
|
51
|
+
var _onReadFile;
|
|
52
|
+
const size = (_onReadFile = onReadFile === null || onReadFile === void 0 ? void 0 : onReadFile(path)) !== null && _onReadFile !== void 0 ? _onReadFile : 2000;
|
|
51
53
|
yield* setPath(entity, path);
|
|
52
54
|
await Promise.resolve(null);
|
|
53
55
|
yield oldEntity => {
|
|
@@ -946,7 +948,7 @@ describe('useUseCase', () => {
|
|
|
946
948
|
fireEvent.click(screen.getByText(updateButtonText));
|
|
947
949
|
expect(addReducer).toHaveBeenCalledTimes(3);
|
|
948
950
|
});
|
|
949
|
-
test('`options.onChange` should be
|
|
951
|
+
test('`options.onChange` should be triggered when entity has changed', () => {
|
|
950
952
|
const onChange = jest.fn();
|
|
951
953
|
const _renderHook23 = renderHook(() => {
|
|
952
954
|
return useUseCase(defaultFile, fileUseCase, {
|
|
@@ -1135,6 +1137,44 @@ describe('useUseCase', () => {
|
|
|
1135
1137
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
1136
1138
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1137
1139
|
});
|
|
1140
|
+
test('event options should be triggered', async () => {
|
|
1141
|
+
let readFilePromise = null;
|
|
1142
|
+
const buttonText = 'my button';
|
|
1143
|
+
const onReadFile = jest.fn(path => {
|
|
1144
|
+
void path;
|
|
1145
|
+
return 1024;
|
|
1146
|
+
});
|
|
1147
|
+
const onSizeChange = jest.fn();
|
|
1148
|
+
const TestComponent = () => {
|
|
1149
|
+
const _useUseCase10 = useUseCase(defaultFile, fileUseCase, {
|
|
1150
|
+
onReadFile
|
|
1151
|
+
}),
|
|
1152
|
+
_useUseCase11 = _slicedToArray(_useUseCase10, 2),
|
|
1153
|
+
size = _useUseCase11[0].size,
|
|
1154
|
+
readFile = _useUseCase11[1].readFile;
|
|
1155
|
+
const onClick = () => {
|
|
1156
|
+
readFilePromise = readFile(PATH_1);
|
|
1157
|
+
};
|
|
1158
|
+
useUpdateEffect(() => {
|
|
1159
|
+
onSizeChange(size);
|
|
1160
|
+
}, [size]);
|
|
1161
|
+
return _jsx("button", {
|
|
1162
|
+
onClick: onClick,
|
|
1163
|
+
children: buttonText
|
|
1164
|
+
});
|
|
1165
|
+
};
|
|
1166
|
+
render(_jsx(TestComponent, {}));
|
|
1167
|
+
expect(onReadFile).toHaveBeenCalledTimes(0);
|
|
1168
|
+
expect(onSizeChange).toHaveBeenCalledTimes(0);
|
|
1169
|
+
await act(async () => {
|
|
1170
|
+
fireEvent.click(screen.getByText(buttonText));
|
|
1171
|
+
await readFilePromise;
|
|
1172
|
+
});
|
|
1173
|
+
expect(onReadFile).toHaveBeenCalledTimes(1);
|
|
1174
|
+
expect(onReadFile).toHaveBeenCalledWith(PATH_1);
|
|
1175
|
+
expect(onSizeChange).toHaveBeenCalledTimes(1);
|
|
1176
|
+
expect(onSizeChange).toHaveBeenCalledWith(1024);
|
|
1177
|
+
});
|
|
1138
1178
|
test(`should call latest functions of usecase options even deps has not change`, () => {
|
|
1139
1179
|
const onPathChange1 = jest.fn();
|
|
1140
1180
|
const onPathChange2 = jest.fn();
|
|
@@ -1162,7 +1202,7 @@ describe('useUseCase', () => {
|
|
|
1162
1202
|
expect(onPathChange2).toHaveBeenCalledTimes(1);
|
|
1163
1203
|
expect(onPathChange2).toHaveBeenLastCalledWith(PATH_2, PATH_1);
|
|
1164
1204
|
});
|
|
1165
|
-
test('`options.watch` should be
|
|
1205
|
+
test('`options.watch` should be triggered after entity changed', () => {
|
|
1166
1206
|
const onPathChange = jest.fn();
|
|
1167
1207
|
const onSizeChange = jest.fn();
|
|
1168
1208
|
const _renderHook30 = renderHook(() => {
|
|
@@ -1195,7 +1235,7 @@ describe('useUseCase', () => {
|
|
|
1195
1235
|
oldValue: ''
|
|
1196
1236
|
});
|
|
1197
1237
|
});
|
|
1198
|
-
test('`options.watch` should be
|
|
1238
|
+
test('`options.watch` should be triggered after update entity by entity initializer', () => {
|
|
1199
1239
|
const onPathChange = jest.fn();
|
|
1200
1240
|
const _renderHook31 = renderHook(function () {
|
|
1201
1241
|
let path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
@@ -1244,7 +1284,7 @@ describe('useUseCase', () => {
|
|
|
1244
1284
|
oldValue: PATH_1
|
|
1245
1285
|
});
|
|
1246
1286
|
});
|
|
1247
|
-
test('`options.watch` should be
|
|
1287
|
+
test('`options.watch` should be triggered after update entity by entity initializer at child component', () => {
|
|
1248
1288
|
const onPathChange = jest.fn();
|
|
1249
1289
|
const TestChild = () => {
|
|
1250
1290
|
useUseCase(fileUseCase, {
|
|
@@ -1257,15 +1297,15 @@ describe('useUseCase', () => {
|
|
|
1257
1297
|
const TestParent = _ref5 => {
|
|
1258
1298
|
let file = _ref5.file;
|
|
1259
1299
|
const path = file.path;
|
|
1260
|
-
const
|
|
1300
|
+
const _useUseCase12 = useUseCase(function () {
|
|
1261
1301
|
let currentFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
|
|
1262
1302
|
return {
|
|
1263
1303
|
...currentFile,
|
|
1264
1304
|
path
|
|
1265
1305
|
};
|
|
1266
1306
|
}, fileUseCase, {}, [path]),
|
|
1267
|
-
|
|
1268
|
-
Provider =
|
|
1307
|
+
_useUseCase13 = _slicedToArray(_useUseCase12, 3),
|
|
1308
|
+
Provider = _useUseCase13[2];
|
|
1269
1309
|
return _jsx(Provider, {
|
|
1270
1310
|
children: _jsx(TestChild, {})
|
|
1271
1311
|
});
|
|
@@ -1963,15 +2003,15 @@ describe('useUseCase', () => {
|
|
|
1963
2003
|
return entityUseCase();
|
|
1964
2004
|
};
|
|
1965
2005
|
const TestChildComponent = () => {
|
|
1966
|
-
const
|
|
1967
|
-
_useUseCase13 = _slicedToArray(_useUseCase12, 1),
|
|
1968
|
-
numberValue = _useUseCase13[0];
|
|
1969
|
-
const _useUseCase14 = useUseCase(stringUseCase),
|
|
2006
|
+
const _useUseCase14 = useUseCase(numberUseCase),
|
|
1970
2007
|
_useUseCase15 = _slicedToArray(_useUseCase14, 1),
|
|
1971
|
-
|
|
1972
|
-
const _useUseCase16 = useUseCase(
|
|
2008
|
+
numberValue = _useUseCase15[0];
|
|
2009
|
+
const _useUseCase16 = useUseCase(stringUseCase),
|
|
1973
2010
|
_useUseCase17 = _slicedToArray(_useUseCase16, 1),
|
|
1974
|
-
|
|
2011
|
+
stringValue = _useUseCase17[0];
|
|
2012
|
+
const _useUseCase18 = useUseCase(booleanUseCase),
|
|
2013
|
+
_useUseCase19 = _slicedToArray(_useUseCase18, 1),
|
|
2014
|
+
booleanValue = _useUseCase19[0];
|
|
1975
2015
|
useMount(() => {
|
|
1976
2016
|
onNumberMount(numberValue);
|
|
1977
2017
|
onStringMount(stringValue);
|
|
@@ -1980,15 +2020,15 @@ describe('useUseCase', () => {
|
|
|
1980
2020
|
return null;
|
|
1981
2021
|
};
|
|
1982
2022
|
const TestParentComponent = () => {
|
|
1983
|
-
const
|
|
1984
|
-
_useUseCase19 = _slicedToArray(_useUseCase18, 3),
|
|
1985
|
-
NumberProvider = _useUseCase19[2];
|
|
1986
|
-
const _useUseCase20 = useUseCase('hello', stringUseCase),
|
|
2023
|
+
const _useUseCase20 = useUseCase(11, numberUseCase),
|
|
1987
2024
|
_useUseCase21 = _slicedToArray(_useUseCase20, 3),
|
|
1988
|
-
|
|
1989
|
-
const _useUseCase22 = useUseCase(
|
|
2025
|
+
NumberProvider = _useUseCase21[2];
|
|
2026
|
+
const _useUseCase22 = useUseCase('hello', stringUseCase),
|
|
1990
2027
|
_useUseCase23 = _slicedToArray(_useUseCase22, 3),
|
|
1991
|
-
|
|
2028
|
+
StringProvider = _useUseCase23[2];
|
|
2029
|
+
const _useUseCase24 = useUseCase(true, booleanUseCase),
|
|
2030
|
+
_useUseCase25 = _slicedToArray(_useUseCase24, 3),
|
|
2031
|
+
BooleanProvider = _useUseCase25[2];
|
|
1992
2032
|
return _jsx(NumberProvider, {
|
|
1993
2033
|
with: [StringProvider, BooleanProvider],
|
|
1994
2034
|
children: _jsx(TestChildComponent, {})
|
|
@@ -2004,17 +2044,18 @@ describe('useUseCase', () => {
|
|
|
2004
2044
|
void entity;
|
|
2005
2045
|
});
|
|
2006
2046
|
const testUseCase = () => {
|
|
2007
|
-
const
|
|
2047
|
+
const entityReducers = entityUseCase();
|
|
2048
|
+
lifecycleUseCase({
|
|
2008
2049
|
onBind
|
|
2009
2050
|
});
|
|
2010
2051
|
return {
|
|
2011
|
-
...
|
|
2052
|
+
...entityReducers
|
|
2012
2053
|
};
|
|
2013
2054
|
};
|
|
2014
2055
|
renderHook(() => {
|
|
2015
|
-
const
|
|
2016
|
-
|
|
2017
|
-
setEntity =
|
|
2056
|
+
const _useUseCase26 = useUseCase(5, testUseCase),
|
|
2057
|
+
_useUseCase27 = _slicedToArray(_useUseCase26, 2),
|
|
2058
|
+
setEntity = _useUseCase27[1].setEntity;
|
|
2018
2059
|
useMount(() => {
|
|
2019
2060
|
setEntity(100);
|
|
2020
2061
|
});
|
|
@@ -2028,11 +2069,12 @@ describe('useUseCase', () => {
|
|
|
2028
2069
|
void oldEntity;
|
|
2029
2070
|
});
|
|
2030
2071
|
const testUseCase = () => {
|
|
2031
|
-
const
|
|
2072
|
+
const entityReducers = entityUseCase();
|
|
2073
|
+
lifecycleUseCase({
|
|
2032
2074
|
onChange
|
|
2033
2075
|
});
|
|
2034
2076
|
return {
|
|
2035
|
-
...
|
|
2077
|
+
...entityReducers
|
|
2036
2078
|
};
|
|
2037
2079
|
};
|
|
2038
2080
|
const _renderHook37 = renderHook(() => {
|
|
@@ -2055,11 +2097,12 @@ describe('useUseCase', () => {
|
|
|
2055
2097
|
void oldEntity;
|
|
2056
2098
|
});
|
|
2057
2099
|
const testUseCase = () => {
|
|
2058
|
-
const
|
|
2100
|
+
const entityReducers = entityUseCase();
|
|
2101
|
+
lifecycleUseCase({
|
|
2059
2102
|
onUpdate
|
|
2060
2103
|
});
|
|
2061
2104
|
return {
|
|
2062
|
-
...
|
|
2105
|
+
...entityReducers
|
|
2063
2106
|
};
|
|
2064
2107
|
};
|
|
2065
2108
|
const _renderHook38 = renderHook(() => {
|
|
@@ -2081,17 +2124,18 @@ describe('useUseCase', () => {
|
|
|
2081
2124
|
void entity;
|
|
2082
2125
|
});
|
|
2083
2126
|
const testUseCase = () => {
|
|
2084
|
-
const
|
|
2127
|
+
const entityReducers = entityUseCase();
|
|
2128
|
+
lifecycleUseCase({
|
|
2085
2129
|
onUnbind
|
|
2086
2130
|
});
|
|
2087
2131
|
return {
|
|
2088
|
-
...
|
|
2132
|
+
...entityReducers
|
|
2089
2133
|
};
|
|
2090
2134
|
};
|
|
2091
2135
|
const _renderHook39 = renderHook(() => {
|
|
2092
|
-
const
|
|
2093
|
-
|
|
2094
|
-
setEntity =
|
|
2136
|
+
const _useUseCase28 = useUseCase(5, testUseCase),
|
|
2137
|
+
_useUseCase29 = _slicedToArray(_useUseCase28, 2),
|
|
2138
|
+
setEntity = _useUseCase29[1].setEntity;
|
|
2095
2139
|
useMount(() => {
|
|
2096
2140
|
setEntity(100);
|
|
2097
2141
|
});
|
|
@@ -2102,64 +2146,66 @@ describe('useUseCase', () => {
|
|
|
2102
2146
|
expect(onUnbind).toHaveBeenCalledTimes(1);
|
|
2103
2147
|
expect(onUnbind).toHaveBeenCalledWith(100);
|
|
2104
2148
|
});
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
void oldeEntity;
|
|
2110
|
-
});
|
|
2111
|
-
const testUseCase = () => {
|
|
2112
|
-
const lifecycleReducers = lifecycleUseCase({
|
|
2113
|
-
onAdopt
|
|
2149
|
+
test('`onAdopt` event should be called when entity change', () => {
|
|
2150
|
+
const onAdopt = jest.fn((newEntity, oldeEntity) => {
|
|
2151
|
+
void newEntity;
|
|
2152
|
+
void oldeEntity;
|
|
2114
2153
|
});
|
|
2115
|
-
|
|
2116
|
-
|
|
2154
|
+
const testUseCase = () => {
|
|
2155
|
+
const entityReducers = entityUseCase();
|
|
2156
|
+
lifecycleUseCase({
|
|
2157
|
+
onAdopt
|
|
2158
|
+
});
|
|
2159
|
+
return {
|
|
2160
|
+
...entityReducers
|
|
2161
|
+
};
|
|
2117
2162
|
};
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
expect(onAdopt).toHaveBeenCalledWith(100, 5);
|
|
2133
|
-
});
|
|
2134
|
-
test('`onDiscard` event should be called when component unmount', () => {
|
|
2135
|
-
const onDiscard = jest.fn(entity => {
|
|
2136
|
-
void entity;
|
|
2163
|
+
const _renderHook40 = renderHook(() => {
|
|
2164
|
+
return useUseCase(5, testUseCase);
|
|
2165
|
+
}),
|
|
2166
|
+
result = _renderHook40.result;
|
|
2167
|
+
const current = result.current;
|
|
2168
|
+
const _current0 = _slicedToArray(current, 2),
|
|
2169
|
+
setEntity = _current0[1].setEntity;
|
|
2170
|
+
expect(onAdopt).toHaveBeenCalledTimes(1);
|
|
2171
|
+
expect(onAdopt).toHaveBeenCalledWith(5);
|
|
2172
|
+
act(() => {
|
|
2173
|
+
setEntity(100);
|
|
2174
|
+
});
|
|
2175
|
+
expect(onAdopt).toHaveBeenCalledTimes(2);
|
|
2176
|
+
expect(onAdopt).toHaveBeenCalledWith(100, 5);
|
|
2137
2177
|
});
|
|
2138
|
-
|
|
2139
|
-
const
|
|
2140
|
-
|
|
2178
|
+
test('`onDiscard` event should be called when component unmount', () => {
|
|
2179
|
+
const onDiscard = jest.fn(entity => {
|
|
2180
|
+
void entity;
|
|
2141
2181
|
});
|
|
2142
|
-
|
|
2143
|
-
|
|
2182
|
+
const testUseCase = () => {
|
|
2183
|
+
const entityReducers = entityUseCase();
|
|
2184
|
+
lifecycleUseCase({
|
|
2185
|
+
onDiscard
|
|
2186
|
+
});
|
|
2187
|
+
return {
|
|
2188
|
+
...entityReducers
|
|
2189
|
+
};
|
|
2144
2190
|
};
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2191
|
+
const _renderHook41 = renderHook(() => {
|
|
2192
|
+
return useUseCase(5, testUseCase);
|
|
2193
|
+
}),
|
|
2194
|
+
result = _renderHook41.result,
|
|
2195
|
+
unmount = _renderHook41.unmount;
|
|
2196
|
+
const current = result.current;
|
|
2197
|
+
const _current1 = _slicedToArray(current, 2),
|
|
2198
|
+
setEntity = _current1[1].setEntity;
|
|
2199
|
+
expect(onDiscard).toHaveBeenCalledTimes(0);
|
|
2200
|
+
act(() => {
|
|
2201
|
+
setEntity(100);
|
|
2202
|
+
});
|
|
2203
|
+
expect(onDiscard).toHaveBeenCalledTimes(1);
|
|
2204
|
+
expect(onDiscard).toHaveBeenCalledWith(5);
|
|
2205
|
+
unmount();
|
|
2206
|
+
expect(onDiscard).toHaveBeenCalledTimes(2);
|
|
2207
|
+
expect(onDiscard).toHaveBeenCalledWith(100);
|
|
2208
|
+
});
|
|
2163
2209
|
});
|
|
2164
2210
|
describe('`useUseCase` should work the same as `useContextualCoreCollection`', () => {
|
|
2165
2211
|
test('Provider should be returned in child component', () => {
|
|
@@ -2176,14 +2222,14 @@ describe('useUseCase', () => {
|
|
|
2176
2222
|
return _jsx(Fragment, {});
|
|
2177
2223
|
};
|
|
2178
2224
|
const TestParent = () => {
|
|
2179
|
-
const
|
|
2225
|
+
const _useUseCase30 = useUseCase(() => {
|
|
2180
2226
|
return {
|
|
2181
2227
|
...defaultFile,
|
|
2182
2228
|
ext: EXT_1
|
|
2183
2229
|
};
|
|
2184
2230
|
}, fileUseCase),
|
|
2185
|
-
|
|
2186
|
-
Provider =
|
|
2231
|
+
_useUseCase31 = _slicedToArray(_useUseCase30, 3),
|
|
2232
|
+
Provider = _useUseCase31[2];
|
|
2187
2233
|
return _jsx(Provider, {
|
|
2188
2234
|
children: _jsx(TestChild, {})
|
|
2189
2235
|
});
|
|
@@ -2200,10 +2246,10 @@ describe('useUseCase', () => {
|
|
|
2200
2246
|
const onPopupFile = jest.fn();
|
|
2201
2247
|
const buttonText = 'button';
|
|
2202
2248
|
const Popup = () => {
|
|
2203
|
-
const
|
|
2204
|
-
|
|
2205
|
-
file =
|
|
2206
|
-
setEntity =
|
|
2249
|
+
const _useUseCase32 = useUseCase(fileUseCase),
|
|
2250
|
+
_useUseCase33 = _slicedToArray(_useUseCase32, 2),
|
|
2251
|
+
file = _useUseCase33[0],
|
|
2252
|
+
setEntity = _useUseCase33[1].setEntity;
|
|
2207
2253
|
const onClick = () => {
|
|
2208
2254
|
setEntity({
|
|
2209
2255
|
ext: EXT_2
|
|
@@ -2218,15 +2264,15 @@ describe('useUseCase', () => {
|
|
|
2218
2264
|
});
|
|
2219
2265
|
};
|
|
2220
2266
|
const TestChild = () => {
|
|
2221
|
-
const
|
|
2222
|
-
|
|
2223
|
-
Provider =
|
|
2267
|
+
const _useUseCase34 = useUseCase(fileUseCase),
|
|
2268
|
+
_useUseCase35 = _slicedToArray(_useUseCase34, 3),
|
|
2269
|
+
Provider = _useUseCase35[2];
|
|
2224
2270
|
return createPortal(_jsx(Provider, {
|
|
2225
2271
|
children: _jsx(Popup, {})
|
|
2226
2272
|
}), document.body);
|
|
2227
2273
|
};
|
|
2228
2274
|
const TestParent = () => {
|
|
2229
|
-
const
|
|
2275
|
+
const _useUseCase36 = useUseCase(() => {
|
|
2230
2276
|
return {
|
|
2231
2277
|
...defaultFile,
|
|
2232
2278
|
ext: EXT_1
|
|
@@ -2234,9 +2280,9 @@ describe('useUseCase', () => {
|
|
|
2234
2280
|
}, fileUseCase, {
|
|
2235
2281
|
onChange
|
|
2236
2282
|
}),
|
|
2237
|
-
|
|
2238
|
-
file =
|
|
2239
|
-
Provider =
|
|
2283
|
+
_useUseCase37 = _slicedToArray(_useUseCase36, 3),
|
|
2284
|
+
file = _useUseCase37[0],
|
|
2285
|
+
Provider = _useUseCase37[2];
|
|
2240
2286
|
useEffect(() => {
|
|
2241
2287
|
onRootFile(file);
|
|
2242
2288
|
}, [file]);
|
|
@@ -2301,9 +2347,9 @@ describe('useUseCase', () => {
|
|
|
2301
2347
|
return _jsx(Fragment, {});
|
|
2302
2348
|
};
|
|
2303
2349
|
const B = () => {
|
|
2304
|
-
const
|
|
2305
|
-
|
|
2306
|
-
Provider =
|
|
2350
|
+
const _useUseCase38 = useUseCase(defaultFile, mockUseCase),
|
|
2351
|
+
_useUseCase39 = _slicedToArray(_useUseCase38, 3),
|
|
2352
|
+
Provider = _useUseCase39[2];
|
|
2307
2353
|
return _jsx(Provider, {
|
|
2308
2354
|
children: _jsx(A, {})
|
|
2309
2355
|
});
|
|
@@ -2324,9 +2370,9 @@ describe('useUseCase', () => {
|
|
|
2324
2370
|
};
|
|
2325
2371
|
};
|
|
2326
2372
|
const A = () => {
|
|
2327
|
-
const
|
|
2328
|
-
|
|
2329
|
-
add =
|
|
2373
|
+
const _useUseCase40 = useUseCase(stringUseCase),
|
|
2374
|
+
_useUseCase41 = _slicedToArray(_useUseCase40, 2),
|
|
2375
|
+
add = _useUseCase41[1].add;
|
|
2330
2376
|
const update = useUpdate();
|
|
2331
2377
|
const onClick = () => {
|
|
2332
2378
|
update();
|
|
@@ -2338,9 +2384,9 @@ describe('useUseCase', () => {
|
|
|
2338
2384
|
});
|
|
2339
2385
|
};
|
|
2340
2386
|
const B = () => {
|
|
2341
|
-
const
|
|
2342
|
-
|
|
2343
|
-
Provider =
|
|
2387
|
+
const _useUseCase42 = useUseCase('', stringUseCase),
|
|
2388
|
+
_useUseCase43 = _slicedToArray(_useUseCase42, 3),
|
|
2389
|
+
Provider = _useUseCase43[2];
|
|
2344
2390
|
return _jsx(Provider, {
|
|
2345
2391
|
children: _jsx(A, {})
|
|
2346
2392
|
});
|
|
@@ -2365,9 +2411,9 @@ describe('useUseCase', () => {
|
|
|
2365
2411
|
};
|
|
2366
2412
|
};
|
|
2367
2413
|
const A = () => {
|
|
2368
|
-
const
|
|
2369
|
-
|
|
2370
|
-
add =
|
|
2414
|
+
const _useUseCase44 = useUseCase(stringUseCase),
|
|
2415
|
+
_useUseCase45 = _slicedToArray(_useUseCase44, 2),
|
|
2416
|
+
add = _useUseCase45[1].add;
|
|
2371
2417
|
const onClick = () => {
|
|
2372
2418
|
add('x');
|
|
2373
2419
|
};
|
|
@@ -2381,9 +2427,9 @@ describe('useUseCase', () => {
|
|
|
2381
2427
|
});
|
|
2382
2428
|
};
|
|
2383
2429
|
const B = () => {
|
|
2384
|
-
const
|
|
2385
|
-
|
|
2386
|
-
Provider =
|
|
2430
|
+
const _useUseCase46 = useUseCase('', stringUseCase),
|
|
2431
|
+
_useUseCase47 = _slicedToArray(_useUseCase46, 3),
|
|
2432
|
+
Provider = _useUseCase47[2];
|
|
2387
2433
|
return _jsx(Provider, {
|
|
2388
2434
|
children: _jsx(A, {})
|
|
2389
2435
|
});
|
|
@@ -2412,11 +2458,11 @@ describe('useUseCase', () => {
|
|
|
2412
2458
|
};
|
|
2413
2459
|
};
|
|
2414
2460
|
const A = () => {
|
|
2415
|
-
const
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
add =
|
|
2419
|
-
setEntity =
|
|
2461
|
+
const _useUseCase48 = useUseCase(stringUseCase),
|
|
2462
|
+
_useUseCase49 = _slicedToArray(_useUseCase48, 2),
|
|
2463
|
+
_useUseCase49$ = _useUseCase49[1],
|
|
2464
|
+
add = _useUseCase49$.add,
|
|
2465
|
+
setEntity = _useUseCase49$.setEntity;
|
|
2420
2466
|
const update = useUpdate();
|
|
2421
2467
|
add(addedText);
|
|
2422
2468
|
const onSet = () => {
|
|
@@ -2436,9 +2482,9 @@ describe('useUseCase', () => {
|
|
|
2436
2482
|
});
|
|
2437
2483
|
};
|
|
2438
2484
|
const B = () => {
|
|
2439
|
-
const
|
|
2440
|
-
|
|
2441
|
-
Provider =
|
|
2485
|
+
const _useUseCase50 = useUseCase('', stringUseCase),
|
|
2486
|
+
_useUseCase51 = _slicedToArray(_useUseCase50, 3),
|
|
2487
|
+
Provider = _useUseCase51[2];
|
|
2442
2488
|
return _jsx(Provider, {
|
|
2443
2489
|
children: _jsx(A, {})
|
|
2444
2490
|
});
|
|
@@ -2458,7 +2504,7 @@ describe('useUseCase', () => {
|
|
|
2458
2504
|
fireEvent.click(screen.getByText(updateButtonText));
|
|
2459
2505
|
expect(addReducer).toHaveBeenCalledTimes(3);
|
|
2460
2506
|
});
|
|
2461
|
-
test('`options.onChange` event should be
|
|
2507
|
+
test('`options.onChange` event should be triggered in orders', () => {
|
|
2462
2508
|
let changeTimes = 0;
|
|
2463
2509
|
const updateChangeTimes = () => {
|
|
2464
2510
|
return ++changeTimes;
|
|
@@ -2483,12 +2529,12 @@ describe('useUseCase', () => {
|
|
|
2483
2529
|
return _jsx(Fragment, {});
|
|
2484
2530
|
};
|
|
2485
2531
|
const C = () => {
|
|
2486
|
-
const
|
|
2532
|
+
const _useUseCase52 = useUseCase(defaultFile, fileUseCase, {
|
|
2487
2533
|
onChange: onChangeC
|
|
2488
2534
|
}),
|
|
2489
|
-
|
|
2490
|
-
setPath =
|
|
2491
|
-
Provider =
|
|
2535
|
+
_useUseCase53 = _slicedToArray(_useUseCase52, 3),
|
|
2536
|
+
setPath = _useUseCase53[1].setPath,
|
|
2537
|
+
Provider = _useUseCase53[2];
|
|
2492
2538
|
const onFirstClick = () => {
|
|
2493
2539
|
setPath(PATH_1);
|
|
2494
2540
|
};
|
|
@@ -2515,11 +2561,11 @@ describe('useUseCase', () => {
|
|
|
2515
2561
|
const firstButtonText = 'first button';
|
|
2516
2562
|
const secondButtonText = 'second button';
|
|
2517
2563
|
const A = () => {
|
|
2518
|
-
const
|
|
2564
|
+
const _useUseCase54 = useUseCase(fileUseCase, {
|
|
2519
2565
|
onChange
|
|
2520
2566
|
}),
|
|
2521
|
-
|
|
2522
|
-
setPath =
|
|
2567
|
+
_useUseCase55 = _slicedToArray(_useUseCase54, 2),
|
|
2568
|
+
setPath = _useUseCase55[1].setPath;
|
|
2523
2569
|
const onFirstClick = () => {
|
|
2524
2570
|
setPath(PATH_1);
|
|
2525
2571
|
onChange = onSecondChange;
|
|
@@ -2538,9 +2584,9 @@ describe('useUseCase', () => {
|
|
|
2538
2584
|
});
|
|
2539
2585
|
};
|
|
2540
2586
|
const B = () => {
|
|
2541
|
-
const
|
|
2542
|
-
|
|
2543
|
-
Provider =
|
|
2587
|
+
const _useUseCase56 = useUseCase(defaultFile, fileUseCase),
|
|
2588
|
+
_useUseCase57 = _slicedToArray(_useUseCase56, 3),
|
|
2589
|
+
Provider = _useUseCase57[2];
|
|
2544
2590
|
return _jsx(Provider, {
|
|
2545
2591
|
children: _jsx(A, {})
|
|
2546
2592
|
});
|
|
@@ -2559,17 +2605,73 @@ describe('useUseCase', () => {
|
|
|
2559
2605
|
path: PATH_1
|
|
2560
2606
|
});
|
|
2561
2607
|
});
|
|
2562
|
-
test('
|
|
2608
|
+
test('event options should be triggered at child components', async () => {
|
|
2609
|
+
let readFilePromise = null;
|
|
2610
|
+
const buttonText = 'my button';
|
|
2611
|
+
const onReadFile1 = jest.fn(path => {
|
|
2612
|
+
void path;
|
|
2613
|
+
return 512;
|
|
2614
|
+
});
|
|
2615
|
+
const onReadFile2 = jest.fn(path => {
|
|
2616
|
+
void path;
|
|
2617
|
+
return 1024;
|
|
2618
|
+
});
|
|
2619
|
+
const onSizeChange = jest.fn();
|
|
2620
|
+
const A = () => {
|
|
2621
|
+
const _useUseCase58 = useUseCase(fileUseCase, {
|
|
2622
|
+
onReadFile: onReadFile1
|
|
2623
|
+
}),
|
|
2624
|
+
_useUseCase59 = _slicedToArray(_useUseCase58, 2),
|
|
2625
|
+
size = _useUseCase59[0].size,
|
|
2626
|
+
readFile = _useUseCase59[1].readFile;
|
|
2627
|
+
const onClick = () => {
|
|
2628
|
+
readFilePromise = readFile(PATH_1);
|
|
2629
|
+
};
|
|
2630
|
+
useUpdateEffect(() => {
|
|
2631
|
+
onSizeChange(size);
|
|
2632
|
+
}, [size]);
|
|
2633
|
+
return _jsx(Fragment, {
|
|
2634
|
+
children: _jsx("button", {
|
|
2635
|
+
onClick: onClick,
|
|
2636
|
+
children: buttonText
|
|
2637
|
+
})
|
|
2638
|
+
});
|
|
2639
|
+
};
|
|
2640
|
+
const B = () => {
|
|
2641
|
+
const _useUseCase60 = useUseCase(defaultFile, fileUseCase, {
|
|
2642
|
+
onReadFile: onReadFile2
|
|
2643
|
+
}),
|
|
2644
|
+
_useUseCase61 = _slicedToArray(_useUseCase60, 3),
|
|
2645
|
+
Provider = _useUseCase61[2];
|
|
2646
|
+
return _jsx(Provider, {
|
|
2647
|
+
children: _jsx(A, {})
|
|
2648
|
+
});
|
|
2649
|
+
};
|
|
2650
|
+
render(_jsx(B, {}));
|
|
2651
|
+
expect(onReadFile1).toHaveBeenCalledTimes(0);
|
|
2652
|
+
expect(onReadFile2).toHaveBeenCalledTimes(0);
|
|
2653
|
+
await act(async () => {
|
|
2654
|
+
fireEvent.click(screen.getByText(buttonText));
|
|
2655
|
+
await readFilePromise;
|
|
2656
|
+
});
|
|
2657
|
+
expect(onReadFile1).toHaveBeenCalledTimes(1);
|
|
2658
|
+
expect(onReadFile2).toHaveBeenCalledWith(PATH_1);
|
|
2659
|
+
expect(onReadFile1).toHaveBeenCalledTimes(1);
|
|
2660
|
+
expect(onReadFile2).toHaveBeenCalledWith(PATH_1);
|
|
2661
|
+
expect(onSizeChange).toHaveBeenCalledTimes(1);
|
|
2662
|
+
expect(onSizeChange).toHaveBeenCalledWith(1024);
|
|
2663
|
+
});
|
|
2664
|
+
test('`options.watch` should be triggered at child components', () => {
|
|
2563
2665
|
const onExtChange = jest.fn();
|
|
2564
2666
|
const firstButtonText = 'first button';
|
|
2565
2667
|
const A = () => {
|
|
2566
|
-
const
|
|
2668
|
+
const _useUseCase62 = useUseCase(fileUseCase, {
|
|
2567
2669
|
watch: {
|
|
2568
2670
|
ext: onExtChange
|
|
2569
2671
|
}
|
|
2570
2672
|
}),
|
|
2571
|
-
|
|
2572
|
-
setPath =
|
|
2673
|
+
_useUseCase63 = _slicedToArray(_useUseCase62, 2),
|
|
2674
|
+
setPath = _useUseCase63[1].setPath;
|
|
2573
2675
|
const onFirstClick = () => {
|
|
2574
2676
|
setPath(PATH_1);
|
|
2575
2677
|
};
|
|
@@ -2579,9 +2681,9 @@ describe('useUseCase', () => {
|
|
|
2579
2681
|
});
|
|
2580
2682
|
};
|
|
2581
2683
|
const B = () => {
|
|
2582
|
-
const
|
|
2583
|
-
|
|
2584
|
-
Provider =
|
|
2684
|
+
const _useUseCase64 = useUseCase(defaultFile, fileUseCase, {}),
|
|
2685
|
+
_useUseCase65 = _slicedToArray(_useUseCase64, 3),
|
|
2686
|
+
Provider = _useUseCase65[2];
|
|
2585
2687
|
return _jsx(Provider, {
|
|
2586
2688
|
children: _jsx(A, {})
|
|
2587
2689
|
});
|
|
@@ -2602,7 +2704,7 @@ describe('useUseCase', () => {
|
|
|
2602
2704
|
oldValue: ''
|
|
2603
2705
|
});
|
|
2604
2706
|
});
|
|
2605
|
-
test('`options.watch` should be
|
|
2707
|
+
test('`options.watch` should be triggered in orders', () => {
|
|
2606
2708
|
let changeTimes = 0;
|
|
2607
2709
|
const updateChangeTimes = e => {
|
|
2608
2710
|
void e;
|
|
@@ -2632,14 +2734,14 @@ describe('useUseCase', () => {
|
|
|
2632
2734
|
return _jsx(Fragment, {});
|
|
2633
2735
|
};
|
|
2634
2736
|
const C = () => {
|
|
2635
|
-
const
|
|
2737
|
+
const _useUseCase66 = useUseCase(defaultFile, fileUseCase, {
|
|
2636
2738
|
watch: {
|
|
2637
2739
|
ext: onChangeC
|
|
2638
2740
|
}
|
|
2639
2741
|
}),
|
|
2640
|
-
|
|
2641
|
-
setPath =
|
|
2642
|
-
Provider =
|
|
2742
|
+
_useUseCase67 = _slicedToArray(_useUseCase66, 3),
|
|
2743
|
+
setPath = _useUseCase67[1].setPath,
|
|
2744
|
+
Provider = _useUseCase67[2];
|
|
2643
2745
|
const onFirstClick = () => {
|
|
2644
2746
|
setPath(PATH_1);
|
|
2645
2747
|
};
|
|
@@ -2666,13 +2768,13 @@ describe('useUseCase', () => {
|
|
|
2666
2768
|
const firstButtonText = 'first button';
|
|
2667
2769
|
const secondButtonText = 'second button';
|
|
2668
2770
|
const A = () => {
|
|
2669
|
-
const
|
|
2771
|
+
const _useUseCase68 = useUseCase(fileUseCase, {
|
|
2670
2772
|
watch: {
|
|
2671
2773
|
ext: onExtChange
|
|
2672
2774
|
}
|
|
2673
2775
|
}),
|
|
2674
|
-
|
|
2675
|
-
setPath =
|
|
2776
|
+
_useUseCase69 = _slicedToArray(_useUseCase68, 2),
|
|
2777
|
+
setPath = _useUseCase69[1].setPath;
|
|
2676
2778
|
const onFirstClick = () => {
|
|
2677
2779
|
setPath(PATH_1);
|
|
2678
2780
|
onExtChange = onSecondExtChange;
|
|
@@ -2691,9 +2793,9 @@ describe('useUseCase', () => {
|
|
|
2691
2793
|
});
|
|
2692
2794
|
};
|
|
2693
2795
|
const B = () => {
|
|
2694
|
-
const
|
|
2695
|
-
|
|
2696
|
-
Provider =
|
|
2796
|
+
const _useUseCase70 = useUseCase(defaultFile, fileUseCase),
|
|
2797
|
+
_useUseCase71 = _slicedToArray(_useUseCase70, 3),
|
|
2798
|
+
Provider = _useUseCase71[2];
|
|
2697
2799
|
return _jsx(Provider, {
|
|
2698
2800
|
children: _jsx(A, {})
|
|
2699
2801
|
});
|
|
@@ -2771,8 +2873,8 @@ describe('useUseCase', () => {
|
|
|
2771
2873
|
test('reducer call should not be cached if component is at rendering phase', () => {
|
|
2772
2874
|
const buttonText = 'button';
|
|
2773
2875
|
const CacheTestComponent = () => {
|
|
2774
|
-
const
|
|
2775
|
-
subtraction =
|
|
2876
|
+
const _useUseCase72 = useUseCase(mathUseCase),
|
|
2877
|
+
subtraction = _useUseCase72.subtraction;
|
|
2776
2878
|
const update = useUpdate();
|
|
2777
2879
|
const onClick = () => {
|
|
2778
2880
|
update();
|
|
@@ -2795,8 +2897,8 @@ describe('useUseCase', () => {
|
|
|
2795
2897
|
test('reducer call should not be cached if component is not at rendering phase', () => {
|
|
2796
2898
|
const buttonText = 'button';
|
|
2797
2899
|
const CacheTestComponent = () => {
|
|
2798
|
-
const
|
|
2799
|
-
subtraction =
|
|
2900
|
+
const _useUseCase73 = useUseCase(mathUseCase),
|
|
2901
|
+
subtraction = _useUseCase73.subtraction;
|
|
2800
2902
|
const onClick = () => {
|
|
2801
2903
|
subtraction(5, 3);
|
|
2802
2904
|
};
|
|
@@ -2824,8 +2926,8 @@ describe('useUseCase', () => {
|
|
|
2824
2926
|
let count = 0;
|
|
2825
2927
|
const buttonText = 'button';
|
|
2826
2928
|
const StringUseCaseTestComponent = () => {
|
|
2827
|
-
const
|
|
2828
|
-
subtraction =
|
|
2929
|
+
const _useUseCase74 = useUseCase(mathUseCase),
|
|
2930
|
+
subtraction = _useUseCase74.subtraction;
|
|
2829
2931
|
const update = useUpdate();
|
|
2830
2932
|
subtraction(5, count++);
|
|
2831
2933
|
const onUpdate = () => {
|