@mic-rexjs/usecases-react 4.0.0-beta.0 → 4.0.0-beta.3
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/dist/index.min.js.LICENSE.txt +2 -0
- package/es/components/UseCaseFragment/index.js +2 -2
- package/es/enums/Statuses/index.d.ts +86 -10
- package/es/enums/Statuses/index.js +86 -10
- package/es/hooks/useAlternateStatuses/index.d.ts +2 -0
- package/es/hooks/useAlternateStatuses/index.js +16 -0
- package/es/hooks/useChanged/index.d.ts +2 -0
- package/es/hooks/useChanged/index.js +17 -0
- package/es/hooks/useChanged/types.d.ts +3 -0
- package/es/hooks/useContext/index.d.ts +3 -4
- package/es/hooks/useContext/index.js +17 -15
- package/es/hooks/useContext/index.test.js +13 -24
- package/es/hooks/useContextValue/index.d.ts +3 -4
- package/es/hooks/useContextValue/index.js +9 -16
- package/es/hooks/useDepsKey/index.js +11 -9
- package/es/hooks/useEntity/index.d.ts +3 -2
- package/es/hooks/useEntity/index.js +51 -50
- package/es/hooks/useEntityReturn/index.d.ts +5 -0
- package/es/hooks/useEntityReturn/index.js +15 -0
- package/es/hooks/useEntityReturn/types.d.ts +7 -0
- package/es/hooks/useEntityRootExec/index.d.ts +5 -0
- package/es/hooks/useEntityRootExec/index.js +7 -0
- package/es/hooks/useEntityRootExec/types.d.ts +7 -0
- package/es/hooks/useEntityRootReturn/index.d.ts +5 -0
- package/es/hooks/useEntityRootReturn/index.js +14 -0
- package/es/hooks/useEntityRootReturn/types.d.ts +7 -0
- package/es/hooks/useEntityRootReturn/types.js +1 -0
- package/es/hooks/useExec/index.d.ts +2 -3
- package/es/hooks/useExec/index.js +3 -25
- package/es/hooks/useExec/types.d.ts +7 -2
- package/es/hooks/useFullArguments/index.d.ts +2 -3
- package/es/hooks/useFullArguments/index.js +4 -6
- package/es/hooks/useIfExec/index.d.ts +2 -0
- package/es/hooks/useIfExec/index.js +20 -0
- package/es/hooks/useIfExec/types.d.ts +6 -0
- package/es/hooks/useIfExec/types.js +1 -0
- package/es/hooks/useIfReturn/index.d.ts +2 -0
- package/es/hooks/useIfReturn/index.js +22 -0
- package/es/hooks/useIfReturn/types.d.ts +6 -0
- package/es/hooks/useIfReturn/types.js +1 -0
- package/es/hooks/useProvider/index.d.ts +3 -3
- package/es/hooks/useProvider/index.js +15 -13
- package/es/hooks/useProviders/index.js +4 -4
- package/es/hooks/useReducers/index.d.ts +5 -4
- package/es/hooks/useReducers/index.js +47 -10
- package/es/hooks/useReturn/index.d.ts +2 -0
- package/es/hooks/useReturn/index.js +33 -0
- package/es/hooks/useReturn/types.d.ts +11 -0
- package/es/hooks/useReturn/types.js +1 -0
- package/es/hooks/useRootInitializing/index.d.ts +2 -0
- package/es/hooks/useRootInitializing/index.js +14 -0
- package/es/hooks/useRootReturn/index.d.ts +5 -0
- package/es/hooks/useRootReturn/index.js +22 -0
- package/es/hooks/useRootReturn/types.d.ts +14 -0
- package/es/hooks/useRootReturn/types.js +1 -0
- package/es/hooks/useStatuses/index.d.ts +4 -4
- package/es/hooks/useStatuses/index.js +46 -21
- package/es/hooks/useStore/index.d.ts +3 -3
- package/es/hooks/useStore/index.js +24 -47
- package/es/hooks/useThrottleUpdate/index.d.ts +2 -0
- package/es/hooks/useThrottleUpdate/index.js +31 -0
- package/es/hooks/useThrottleUpdate/types.d.ts +3 -0
- package/es/hooks/useThrottleUpdate/types.js +1 -0
- package/es/hooks/useUseCase/index.js +18 -27
- package/es/hooks/useUseCase/index.test.js +357 -227
- package/es/hooks/useUseCase/types.d.ts +13 -2
- package/es/types.d.ts +2 -1
- package/es/usecases/contextUseCase/index.js +21 -38
- package/es/usecases/contextUseCase/types.d.ts +6 -9
- package/es/usecases/lifecycleEventUseCase/index.js +37 -9
- package/es/usecases/lifecycleEventUseCase/types.d.ts +11 -8
- package/lib/components/UseCaseFragment/index.js +2 -2
- package/lib/enums/Statuses/index.js +86 -10
- package/lib/hooks/useAlternateStatuses/index.js +22 -0
- package/lib/hooks/useChanged/index.js +23 -0
- package/lib/hooks/useContext/index.js +19 -17
- package/lib/hooks/useContext/index.test.js +13 -24
- package/lib/hooks/useContextValue/index.js +8 -15
- package/lib/hooks/useDepsKey/index.js +10 -8
- package/lib/hooks/useEntity/index.js +82 -53
- package/lib/hooks/useEntityReturn/index.js +22 -0
- package/lib/hooks/useEntityRootExec/index.js +13 -0
- package/lib/hooks/useEntityRootReturn/index.js +21 -0
- package/lib/hooks/useEntityRootReturn/types.js +5 -0
- package/lib/hooks/useExec/index.js +3 -25
- package/lib/hooks/useFullArguments/index.js +4 -6
- package/lib/hooks/useIfExec/index.js +27 -0
- package/lib/hooks/useIfExec/types.js +5 -0
- package/lib/hooks/useIfReturn/index.js +29 -0
- package/lib/hooks/useIfReturn/types.js +5 -0
- package/lib/hooks/useProvider/index.js +15 -13
- package/lib/hooks/useProviders/index.js +3 -3
- package/lib/hooks/useReducers/index.js +50 -10
- package/lib/hooks/useReturn/index.js +40 -0
- package/lib/hooks/useReturn/types.js +5 -0
- package/lib/hooks/useRootInitializing/index.js +20 -0
- package/lib/hooks/useRootReturn/index.js +30 -0
- package/lib/hooks/useRootReturn/types.js +5 -0
- package/lib/hooks/useStatuses/index.js +47 -21
- package/lib/hooks/useStore/index.js +22 -46
- package/lib/hooks/useThrottleUpdate/index.js +37 -0
- package/lib/hooks/useThrottleUpdate/types.js +5 -0
- package/lib/hooks/useUseCase/index.js +18 -27
- package/lib/hooks/useUseCase/index.test.js +389 -267
- package/lib/usecases/contextUseCase/index.js +21 -38
- package/lib/usecases/lifecycleEventUseCase/index.js +48 -8
- package/package.json +1 -1
- package/es/classes/OptionsSet/index.d.ts +0 -6
- package/es/classes/OptionsSet/index.js +0 -44
- package/es/classes/OptionsSet/types.d.ts +0 -8
- package/es/enums/ArgumentTypes/index.d.ts +0 -4
- package/es/enums/ArgumentTypes/index.js +0 -5
- package/es/hooks/useArgumentTypes/index.d.ts +0 -3
- package/es/hooks/useArgumentTypes/index.js +0 -14
- package/es/hooks/useConstantEntityReducers/index.d.ts +0 -3
- package/es/hooks/useConstantEntityReducers/index.js +0 -7
- package/es/hooks/useConstantFn/index.d.ts +0 -1
- package/es/hooks/useConstantFn/index.js +0 -10
- package/es/hooks/useConstantReducers/index.d.ts +0 -3
- package/es/hooks/useConstantReducers/index.js +0 -6
- package/es/hooks/useContextualItem/index.d.ts +0 -4
- package/es/hooks/useContextualItem/index.js +0 -11
- package/es/hooks/useEntityInitializing/index.d.ts +0 -2
- package/es/hooks/useEntityInitializing/index.js +0 -16
- package/es/hooks/useOptions/index.d.ts +0 -5
- package/es/hooks/useOptions/index.js +0 -54
- package/es/hooks/useOptions/types.d.ts +0 -5
- package/es/hooks/useOptionsSet/index.d.ts +0 -5
- package/es/hooks/useOptionsSet/index.js +0 -16
- package/es/hooks/useRootCreation/index.d.ts +0 -4
- package/es/hooks/useRootCreation/index.js +0 -20
- package/es/hooks/useRootCreation/types.d.ts +0 -3
- package/lib/classes/OptionsSet/index.js +0 -94
- package/lib/enums/ArgumentTypes/index.js +0 -11
- package/lib/hooks/useArgumentTypes/index.js +0 -22
- package/lib/hooks/useConstantEntityReducers/index.js +0 -13
- package/lib/hooks/useConstantFn/index.js +0 -17
- package/lib/hooks/useConstantReducers/index.js +0 -12
- package/lib/hooks/useContextualItem/index.js +0 -17
- package/lib/hooks/useEntityInitializing/index.js +0 -22
- package/lib/hooks/useOptions/index.js +0 -61
- package/lib/hooks/useOptionsSet/index.js +0 -22
- package/lib/hooks/useRootCreation/index.js +0 -26
- /package/es/{classes/OptionsSet → hooks/useChanged}/types.js +0 -0
- /package/es/hooks/{useOptions → useEntityReturn}/types.js +0 -0
- /package/es/hooks/{useRootCreation → useEntityRootExec}/types.js +0 -0
- /package/lib/{classes/OptionsSet → hooks/useChanged}/types.js +0 -0
- /package/lib/hooks/{useOptions → useEntityReturn}/types.js +0 -0
- /package/lib/hooks/{useRootCreation → useEntityRootExec}/types.js +0 -0
|
@@ -1137,44 +1137,6 @@ describe('useUseCase', () => {
|
|
|
1137
1137
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
1138
1138
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
1139
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
|
-
});
|
|
1178
1140
|
test(`should call latest functions of usecase options even deps has not change`, () => {
|
|
1179
1141
|
const onPathChange1 = jest.fn();
|
|
1180
1142
|
const onPathChange2 = jest.fn();
|
|
@@ -1297,15 +1259,15 @@ describe('useUseCase', () => {
|
|
|
1297
1259
|
const TestParent = _ref5 => {
|
|
1298
1260
|
let file = _ref5.file;
|
|
1299
1261
|
const path = file.path;
|
|
1300
|
-
const
|
|
1262
|
+
const _useUseCase10 = useUseCase(function () {
|
|
1301
1263
|
let currentFile = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultFile;
|
|
1302
1264
|
return {
|
|
1303
1265
|
...currentFile,
|
|
1304
1266
|
path
|
|
1305
1267
|
};
|
|
1306
1268
|
}, fileUseCase, {}, [path]),
|
|
1307
|
-
|
|
1308
|
-
Provider =
|
|
1269
|
+
_useUseCase11 = _slicedToArray(_useUseCase10, 3),
|
|
1270
|
+
Provider = _useUseCase11[2];
|
|
1309
1271
|
return _jsx(Provider, {
|
|
1310
1272
|
children: _jsx(TestChild, {})
|
|
1311
1273
|
});
|
|
@@ -2003,15 +1965,15 @@ describe('useUseCase', () => {
|
|
|
2003
1965
|
return entityUseCase();
|
|
2004
1966
|
};
|
|
2005
1967
|
const TestChildComponent = () => {
|
|
2006
|
-
const
|
|
1968
|
+
const _useUseCase12 = useUseCase(numberUseCase),
|
|
1969
|
+
_useUseCase13 = _slicedToArray(_useUseCase12, 1),
|
|
1970
|
+
numberValue = _useUseCase13[0];
|
|
1971
|
+
const _useUseCase14 = useUseCase(stringUseCase),
|
|
2007
1972
|
_useUseCase15 = _slicedToArray(_useUseCase14, 1),
|
|
2008
|
-
|
|
2009
|
-
const _useUseCase16 = useUseCase(
|
|
1973
|
+
stringValue = _useUseCase15[0];
|
|
1974
|
+
const _useUseCase16 = useUseCase(booleanUseCase),
|
|
2010
1975
|
_useUseCase17 = _slicedToArray(_useUseCase16, 1),
|
|
2011
|
-
|
|
2012
|
-
const _useUseCase18 = useUseCase(booleanUseCase),
|
|
2013
|
-
_useUseCase19 = _slicedToArray(_useUseCase18, 1),
|
|
2014
|
-
booleanValue = _useUseCase19[0];
|
|
1976
|
+
booleanValue = _useUseCase17[0];
|
|
2015
1977
|
useMount(() => {
|
|
2016
1978
|
onNumberMount(numberValue);
|
|
2017
1979
|
onStringMount(stringValue);
|
|
@@ -2020,15 +1982,15 @@ describe('useUseCase', () => {
|
|
|
2020
1982
|
return null;
|
|
2021
1983
|
};
|
|
2022
1984
|
const TestParentComponent = () => {
|
|
2023
|
-
const
|
|
1985
|
+
const _useUseCase18 = useUseCase(11, numberUseCase),
|
|
1986
|
+
_useUseCase19 = _slicedToArray(_useUseCase18, 3),
|
|
1987
|
+
NumberProvider = _useUseCase19[2];
|
|
1988
|
+
const _useUseCase20 = useUseCase('hello', stringUseCase),
|
|
2024
1989
|
_useUseCase21 = _slicedToArray(_useUseCase20, 3),
|
|
2025
|
-
|
|
2026
|
-
const _useUseCase22 = useUseCase(
|
|
1990
|
+
StringProvider = _useUseCase21[2];
|
|
1991
|
+
const _useUseCase22 = useUseCase(true, booleanUseCase),
|
|
2027
1992
|
_useUseCase23 = _slicedToArray(_useUseCase22, 3),
|
|
2028
|
-
|
|
2029
|
-
const _useUseCase24 = useUseCase(true, booleanUseCase),
|
|
2030
|
-
_useUseCase25 = _slicedToArray(_useUseCase24, 3),
|
|
2031
|
-
BooleanProvider = _useUseCase25[2];
|
|
1993
|
+
BooleanProvider = _useUseCase23[2];
|
|
2032
1994
|
return _jsx(NumberProvider, {
|
|
2033
1995
|
with: [StringProvider, BooleanProvider],
|
|
2034
1996
|
children: _jsx(TestChildComponent, {})
|
|
@@ -2039,7 +2001,7 @@ describe('useUseCase', () => {
|
|
|
2039
2001
|
expect(onStringMount).toHaveBeenCalledWith('hello');
|
|
2040
2002
|
expect(onBooleanMount).toHaveBeenCalledWith(true);
|
|
2041
2003
|
});
|
|
2042
|
-
test('`onBind` event should be called when component mount', () => {
|
|
2004
|
+
test('Lifecycle `onBind` event should be called when component mount', () => {
|
|
2043
2005
|
const onBind = jest.fn(entity => {
|
|
2044
2006
|
void entity;
|
|
2045
2007
|
});
|
|
@@ -2053,9 +2015,9 @@ describe('useUseCase', () => {
|
|
|
2053
2015
|
};
|
|
2054
2016
|
};
|
|
2055
2017
|
renderHook(() => {
|
|
2056
|
-
const
|
|
2057
|
-
|
|
2058
|
-
setEntity =
|
|
2018
|
+
const _useUseCase24 = useUseCase(5, testUseCase),
|
|
2019
|
+
_useUseCase25 = _slicedToArray(_useUseCase24, 2),
|
|
2020
|
+
setEntity = _useUseCase25[1].setEntity;
|
|
2059
2021
|
useMount(() => {
|
|
2060
2022
|
setEntity(100);
|
|
2061
2023
|
});
|
|
@@ -2063,7 +2025,7 @@ describe('useUseCase', () => {
|
|
|
2063
2025
|
expect(onBind).toHaveBeenCalledTimes(1);
|
|
2064
2026
|
expect(onBind).toHaveBeenCalledWith(5);
|
|
2065
2027
|
});
|
|
2066
|
-
test('`onChange` event should be called when entity change', () => {
|
|
2028
|
+
test('Lifecycle `onChange` event should be called when entity change', () => {
|
|
2067
2029
|
const onChange = jest.fn((newEntity, oldEntity) => {
|
|
2068
2030
|
void newEntity;
|
|
2069
2031
|
void oldEntity;
|
|
@@ -2091,27 +2053,177 @@ describe('useUseCase', () => {
|
|
|
2091
2053
|
expect(onChange).toHaveBeenCalledTimes(1);
|
|
2092
2054
|
expect(onChange).toHaveBeenCalledWith(100, 5);
|
|
2093
2055
|
});
|
|
2094
|
-
test('`
|
|
2095
|
-
|
|
2056
|
+
test('Lifecycle `onChange` event should support returning a boolean to control whether the component updates', () => {
|
|
2057
|
+
let i = 0;
|
|
2058
|
+
const onChange = jest.fn((newEntity, oldEntity) => {
|
|
2096
2059
|
void newEntity;
|
|
2097
2060
|
void oldEntity;
|
|
2061
|
+
return i++ === 0;
|
|
2098
2062
|
});
|
|
2063
|
+
const onRenderHook = jest.fn();
|
|
2099
2064
|
const testUseCase = () => {
|
|
2100
2065
|
const entityReducers = entityUseCase();
|
|
2101
2066
|
lifecycleUseCase({
|
|
2102
|
-
|
|
2067
|
+
onChange
|
|
2103
2068
|
});
|
|
2104
2069
|
return {
|
|
2105
2070
|
...entityReducers
|
|
2106
2071
|
};
|
|
2107
2072
|
};
|
|
2108
2073
|
const _renderHook38 = renderHook(() => {
|
|
2109
|
-
|
|
2074
|
+
const core = useUseCase(5, testUseCase);
|
|
2075
|
+
const _core = _slicedToArray(core, 1),
|
|
2076
|
+
value = _core[0];
|
|
2077
|
+
onRenderHook(value);
|
|
2078
|
+
return core;
|
|
2110
2079
|
}),
|
|
2111
2080
|
result = _renderHook38.result;
|
|
2112
2081
|
const current = result.current;
|
|
2113
2082
|
const _current9 = _slicedToArray(current, 2),
|
|
2114
2083
|
setEntity = _current9[1].setEntity;
|
|
2084
|
+
expect(onRenderHook).toHaveBeenCalledTimes(1);
|
|
2085
|
+
expect(onRenderHook).toHaveBeenLastCalledWith(5);
|
|
2086
|
+
act(() => {
|
|
2087
|
+
setEntity(100);
|
|
2088
|
+
});
|
|
2089
|
+
expect(onRenderHook).toHaveBeenCalledTimes(1);
|
|
2090
|
+
act(() => {
|
|
2091
|
+
setEntity(200);
|
|
2092
|
+
});
|
|
2093
|
+
expect(onRenderHook).toHaveBeenCalledTimes(2);
|
|
2094
|
+
expect(onRenderHook).toHaveBeenLastCalledWith(200);
|
|
2095
|
+
});
|
|
2096
|
+
test('Lifecycle `onChange` event should support returning a Promise<boolean> to control whether the component updates', async () => {
|
|
2097
|
+
let i = 0;
|
|
2098
|
+
let promise = null;
|
|
2099
|
+
const onChange = jest.fn((newEntity, oldEntity) => {
|
|
2100
|
+
void newEntity;
|
|
2101
|
+
void oldEntity;
|
|
2102
|
+
promise = new Promise(res => {
|
|
2103
|
+
setTimeout(() => {
|
|
2104
|
+
res(i++ === 0);
|
|
2105
|
+
}, 500);
|
|
2106
|
+
});
|
|
2107
|
+
return promise;
|
|
2108
|
+
});
|
|
2109
|
+
const onRenderHook = jest.fn();
|
|
2110
|
+
const testUseCase = () => {
|
|
2111
|
+
const entityReducers = entityUseCase();
|
|
2112
|
+
lifecycleUseCase({
|
|
2113
|
+
onChange
|
|
2114
|
+
});
|
|
2115
|
+
return {
|
|
2116
|
+
...entityReducers
|
|
2117
|
+
};
|
|
2118
|
+
};
|
|
2119
|
+
const _renderHook39 = renderHook(() => {
|
|
2120
|
+
const core = useUseCase(5, testUseCase);
|
|
2121
|
+
const _core2 = _slicedToArray(core, 1),
|
|
2122
|
+
value = _core2[0];
|
|
2123
|
+
onRenderHook(value);
|
|
2124
|
+
return core;
|
|
2125
|
+
}),
|
|
2126
|
+
result = _renderHook39.result;
|
|
2127
|
+
const current = result.current;
|
|
2128
|
+
const _current0 = _slicedToArray(current, 2),
|
|
2129
|
+
setEntity = _current0[1].setEntity;
|
|
2130
|
+
expect(onRenderHook).toHaveBeenCalledTimes(1);
|
|
2131
|
+
expect(onRenderHook).toHaveBeenLastCalledWith(5);
|
|
2132
|
+
act(() => {
|
|
2133
|
+
setEntity(100);
|
|
2134
|
+
});
|
|
2135
|
+
expect(onRenderHook).toHaveBeenCalledTimes(1);
|
|
2136
|
+
await act(async () => {
|
|
2137
|
+
await Promise.resolve(promise);
|
|
2138
|
+
});
|
|
2139
|
+
expect(onRenderHook).toHaveBeenCalledTimes(1);
|
|
2140
|
+
act(() => {
|
|
2141
|
+
setEntity(200);
|
|
2142
|
+
});
|
|
2143
|
+
expect(onRenderHook).toHaveBeenCalledTimes(1);
|
|
2144
|
+
await act(async () => {
|
|
2145
|
+
await Promise.resolve(promise);
|
|
2146
|
+
});
|
|
2147
|
+
expect(onRenderHook).toHaveBeenCalledTimes(2);
|
|
2148
|
+
expect(onRenderHook).toHaveBeenLastCalledWith(200);
|
|
2149
|
+
});
|
|
2150
|
+
test('Lifecycle `onChange` event should support returning a number to control whether the component updates', async () => {
|
|
2151
|
+
const onChange = jest.fn((newEntity, oldEntity) => {
|
|
2152
|
+
void newEntity;
|
|
2153
|
+
void oldEntity;
|
|
2154
|
+
return 500;
|
|
2155
|
+
});
|
|
2156
|
+
const onRenderHook = jest.fn();
|
|
2157
|
+
const testUseCase = () => {
|
|
2158
|
+
const entityReducers = entityUseCase();
|
|
2159
|
+
lifecycleUseCase({
|
|
2160
|
+
onChange
|
|
2161
|
+
});
|
|
2162
|
+
return {
|
|
2163
|
+
...entityReducers
|
|
2164
|
+
};
|
|
2165
|
+
};
|
|
2166
|
+
const _renderHook40 = renderHook(() => {
|
|
2167
|
+
const core = useUseCase(5, testUseCase);
|
|
2168
|
+
const _core3 = _slicedToArray(core, 1),
|
|
2169
|
+
value = _core3[0];
|
|
2170
|
+
onRenderHook(value);
|
|
2171
|
+
return core;
|
|
2172
|
+
}),
|
|
2173
|
+
result = _renderHook40.result;
|
|
2174
|
+
const current = result.current;
|
|
2175
|
+
const _current1 = _slicedToArray(current, 2),
|
|
2176
|
+
setEntity = _current1[1].setEntity;
|
|
2177
|
+
expect(onRenderHook).toHaveBeenCalledTimes(1);
|
|
2178
|
+
expect(onRenderHook).toHaveBeenLastCalledWith(5);
|
|
2179
|
+
act(() => {
|
|
2180
|
+
setEntity(100);
|
|
2181
|
+
});
|
|
2182
|
+
expect(onRenderHook).toHaveBeenCalledTimes(2);
|
|
2183
|
+
expect(onRenderHook).toHaveBeenLastCalledWith(100);
|
|
2184
|
+
await act(() => {
|
|
2185
|
+
return new Promise(res => {
|
|
2186
|
+
setEntity(200);
|
|
2187
|
+
setTimeout(res, 100);
|
|
2188
|
+
});
|
|
2189
|
+
});
|
|
2190
|
+
expect(onRenderHook).toHaveBeenCalledTimes(2);
|
|
2191
|
+
await act(() => {
|
|
2192
|
+
return new Promise(res => {
|
|
2193
|
+
setEntity(300);
|
|
2194
|
+
setTimeout(res, 100);
|
|
2195
|
+
});
|
|
2196
|
+
});
|
|
2197
|
+
expect(onRenderHook).toHaveBeenCalledTimes(2);
|
|
2198
|
+
await act(() => {
|
|
2199
|
+
return new Promise(res => {
|
|
2200
|
+
setTimeout(res, 500);
|
|
2201
|
+
});
|
|
2202
|
+
});
|
|
2203
|
+
expect(onRenderHook).toHaveBeenCalledTimes(3);
|
|
2204
|
+
expect(onRenderHook).toHaveBeenLastCalledWith(300);
|
|
2205
|
+
});
|
|
2206
|
+
test('Lifecycle `onUpdate` event should be called when entity change', () => {
|
|
2207
|
+
const onUpdate = jest.fn((newEntity, oldEntity) => {
|
|
2208
|
+
void newEntity;
|
|
2209
|
+
void oldEntity;
|
|
2210
|
+
});
|
|
2211
|
+
const testUseCase = () => {
|
|
2212
|
+
const entityReducers = entityUseCase();
|
|
2213
|
+
lifecycleUseCase({
|
|
2214
|
+
onUpdate
|
|
2215
|
+
});
|
|
2216
|
+
return {
|
|
2217
|
+
...entityReducers
|
|
2218
|
+
};
|
|
2219
|
+
};
|
|
2220
|
+
const _renderHook41 = renderHook(() => {
|
|
2221
|
+
return useUseCase(5, testUseCase);
|
|
2222
|
+
}),
|
|
2223
|
+
result = _renderHook41.result;
|
|
2224
|
+
const current = result.current;
|
|
2225
|
+
const _current10 = _slicedToArray(current, 2),
|
|
2226
|
+
setEntity = _current10[1].setEntity;
|
|
2115
2227
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2116
2228
|
act(() => {
|
|
2117
2229
|
setEntity(100);
|
|
@@ -2119,7 +2231,7 @@ describe('useUseCase', () => {
|
|
|
2119
2231
|
expect(onUpdate).toHaveBeenCalledTimes(1);
|
|
2120
2232
|
expect(onUpdate).toHaveBeenCalledWith(100, 5);
|
|
2121
2233
|
});
|
|
2122
|
-
test('`onUnbind` event should be called when component unmount', () => {
|
|
2234
|
+
test('Lifecycle `onUnbind` event should be called when component unmount', () => {
|
|
2123
2235
|
const onUnbind = jest.fn(entity => {
|
|
2124
2236
|
void entity;
|
|
2125
2237
|
});
|
|
@@ -2132,21 +2244,21 @@ describe('useUseCase', () => {
|
|
|
2132
2244
|
...entityReducers
|
|
2133
2245
|
};
|
|
2134
2246
|
};
|
|
2135
|
-
const
|
|
2136
|
-
const
|
|
2137
|
-
|
|
2138
|
-
setEntity =
|
|
2247
|
+
const _renderHook42 = renderHook(() => {
|
|
2248
|
+
const _useUseCase26 = useUseCase(5, testUseCase),
|
|
2249
|
+
_useUseCase27 = _slicedToArray(_useUseCase26, 2),
|
|
2250
|
+
setEntity = _useUseCase27[1].setEntity;
|
|
2139
2251
|
useMount(() => {
|
|
2140
2252
|
setEntity(100);
|
|
2141
2253
|
});
|
|
2142
2254
|
}),
|
|
2143
|
-
unmount =
|
|
2255
|
+
unmount = _renderHook42.unmount;
|
|
2144
2256
|
expect(onUnbind).toHaveBeenCalledTimes(0);
|
|
2145
2257
|
unmount();
|
|
2146
2258
|
expect(onUnbind).toHaveBeenCalledTimes(1);
|
|
2147
2259
|
expect(onUnbind).toHaveBeenCalledWith(100);
|
|
2148
2260
|
});
|
|
2149
|
-
test('`onAdopt` event should be called when entity change', () => {
|
|
2261
|
+
test('Lifecycle `onAdopt` event should be called when entity change', () => {
|
|
2150
2262
|
const onAdopt = jest.fn((newEntity, oldeEntity) => {
|
|
2151
2263
|
void newEntity;
|
|
2152
2264
|
void oldeEntity;
|
|
@@ -2160,13 +2272,13 @@ describe('useUseCase', () => {
|
|
|
2160
2272
|
...entityReducers
|
|
2161
2273
|
};
|
|
2162
2274
|
};
|
|
2163
|
-
const
|
|
2275
|
+
const _renderHook43 = renderHook(() => {
|
|
2164
2276
|
return useUseCase(5, testUseCase);
|
|
2165
2277
|
}),
|
|
2166
|
-
result =
|
|
2278
|
+
result = _renderHook43.result;
|
|
2167
2279
|
const current = result.current;
|
|
2168
|
-
const
|
|
2169
|
-
setEntity =
|
|
2280
|
+
const _current11 = _slicedToArray(current, 2),
|
|
2281
|
+
setEntity = _current11[1].setEntity;
|
|
2170
2282
|
expect(onAdopt).toHaveBeenCalledTimes(1);
|
|
2171
2283
|
expect(onAdopt).toHaveBeenCalledWith(5);
|
|
2172
2284
|
act(() => {
|
|
@@ -2175,7 +2287,7 @@ describe('useUseCase', () => {
|
|
|
2175
2287
|
expect(onAdopt).toHaveBeenCalledTimes(2);
|
|
2176
2288
|
expect(onAdopt).toHaveBeenCalledWith(100, 5);
|
|
2177
2289
|
});
|
|
2178
|
-
test('`onDiscard` event should be called when component unmount', () => {
|
|
2290
|
+
test('Lifecycle `onDiscard` event should be called when component unmount', () => {
|
|
2179
2291
|
const onDiscard = jest.fn(entity => {
|
|
2180
2292
|
void entity;
|
|
2181
2293
|
});
|
|
@@ -2188,14 +2300,14 @@ describe('useUseCase', () => {
|
|
|
2188
2300
|
...entityReducers
|
|
2189
2301
|
};
|
|
2190
2302
|
};
|
|
2191
|
-
const
|
|
2303
|
+
const _renderHook44 = renderHook(() => {
|
|
2192
2304
|
return useUseCase(5, testUseCase);
|
|
2193
2305
|
}),
|
|
2194
|
-
result =
|
|
2195
|
-
unmount =
|
|
2306
|
+
result = _renderHook44.result,
|
|
2307
|
+
unmount = _renderHook44.unmount;
|
|
2196
2308
|
const current = result.current;
|
|
2197
|
-
const
|
|
2198
|
-
setEntity =
|
|
2309
|
+
const _current12 = _slicedToArray(current, 2),
|
|
2310
|
+
setEntity = _current12[1].setEntity;
|
|
2199
2311
|
expect(onDiscard).toHaveBeenCalledTimes(0);
|
|
2200
2312
|
act(() => {
|
|
2201
2313
|
setEntity(100);
|
|
@@ -2206,6 +2318,80 @@ describe('useUseCase', () => {
|
|
|
2206
2318
|
expect(onDiscard).toHaveBeenCalledTimes(2);
|
|
2207
2319
|
expect(onDiscard).toHaveBeenCalledWith(100);
|
|
2208
2320
|
});
|
|
2321
|
+
test('Should support call lifecycleUseCase at parent usecase and child usecase', () => {
|
|
2322
|
+
const onParentBind = jest.fn(entity => {
|
|
2323
|
+
void entity;
|
|
2324
|
+
});
|
|
2325
|
+
const onParentChange = jest.fn((newEntity, oldEntity) => {
|
|
2326
|
+
void newEntity;
|
|
2327
|
+
void oldEntity;
|
|
2328
|
+
});
|
|
2329
|
+
const onParentUnbind = jest.fn(entity => {
|
|
2330
|
+
void entity;
|
|
2331
|
+
});
|
|
2332
|
+
const onChildBind = jest.fn(entity => {
|
|
2333
|
+
void entity;
|
|
2334
|
+
});
|
|
2335
|
+
const onChildChange = jest.fn((newEntity, oldEntity) => {
|
|
2336
|
+
void newEntity;
|
|
2337
|
+
void oldEntity;
|
|
2338
|
+
});
|
|
2339
|
+
const onChildUnbind = jest.fn(entity => {
|
|
2340
|
+
void entity;
|
|
2341
|
+
});
|
|
2342
|
+
const parentUseCase = () => {
|
|
2343
|
+
const entityReducers = entityUseCase();
|
|
2344
|
+
lifecycleUseCase({
|
|
2345
|
+
onBind: onParentBind,
|
|
2346
|
+
onUnbind: onParentUnbind,
|
|
2347
|
+
onChange: onParentChange
|
|
2348
|
+
});
|
|
2349
|
+
return {
|
|
2350
|
+
...entityReducers
|
|
2351
|
+
};
|
|
2352
|
+
};
|
|
2353
|
+
const childUseCase = () => {
|
|
2354
|
+
const parentReducers = parentUseCase();
|
|
2355
|
+
lifecycleUseCase({
|
|
2356
|
+
onBind: onChildBind,
|
|
2357
|
+
onUnbind: onChildUnbind,
|
|
2358
|
+
onChange: onChildChange
|
|
2359
|
+
});
|
|
2360
|
+
return {
|
|
2361
|
+
...parentReducers
|
|
2362
|
+
};
|
|
2363
|
+
};
|
|
2364
|
+
const _renderHook45 = renderHook(() => {
|
|
2365
|
+
return useUseCase(5, childUseCase);
|
|
2366
|
+
}),
|
|
2367
|
+
result = _renderHook45.result,
|
|
2368
|
+
unmount = _renderHook45.unmount;
|
|
2369
|
+
const current = result.current;
|
|
2370
|
+
const _current13 = _slicedToArray(current, 2),
|
|
2371
|
+
setEntity = _current13[1].setEntity;
|
|
2372
|
+
expect(onParentBind).toHaveBeenCalledTimes(1);
|
|
2373
|
+
expect(onParentBind).toHaveBeenCalledWith(5);
|
|
2374
|
+
expect(onParentChange).toHaveBeenCalledTimes(0);
|
|
2375
|
+
expect(onChildBind).toHaveBeenCalledTimes(1);
|
|
2376
|
+
expect(onChildBind).toHaveBeenCalledWith(5);
|
|
2377
|
+
expect(onChildChange).toHaveBeenCalledTimes(0);
|
|
2378
|
+
act(() => {
|
|
2379
|
+
setEntity(100);
|
|
2380
|
+
});
|
|
2381
|
+
expect(onParentBind).toHaveBeenCalledTimes(1);
|
|
2382
|
+
expect(onParentChange).toHaveBeenCalledTimes(1);
|
|
2383
|
+
expect(onParentChange).toHaveBeenCalledWith(100, 5);
|
|
2384
|
+
expect(onChildBind).toHaveBeenCalledTimes(1);
|
|
2385
|
+
expect(onChildChange).toHaveBeenCalledTimes(1);
|
|
2386
|
+
expect(onChildChange).toHaveBeenCalledWith(100, 5);
|
|
2387
|
+
expect(onParentUnbind).toHaveBeenCalledTimes(0);
|
|
2388
|
+
expect(onChildUnbind).toHaveBeenCalledTimes(0);
|
|
2389
|
+
unmount();
|
|
2390
|
+
expect(onParentUnbind).toHaveBeenCalledTimes(1);
|
|
2391
|
+
expect(onParentUnbind).toHaveBeenCalledWith(100);
|
|
2392
|
+
expect(onChildUnbind).toHaveBeenCalledTimes(1);
|
|
2393
|
+
expect(onChildUnbind).toHaveBeenCalledWith(100);
|
|
2394
|
+
});
|
|
2209
2395
|
});
|
|
2210
2396
|
describe('`useUseCase` should work the same as `useContextualCoreCollection`', () => {
|
|
2211
2397
|
test('Provider should be returned in child component', () => {
|
|
@@ -2213,23 +2399,23 @@ describe('useUseCase', () => {
|
|
|
2213
2399
|
const TestChild = () => {
|
|
2214
2400
|
const core = useUseCase(fileUseCase);
|
|
2215
2401
|
const length = core.length;
|
|
2216
|
-
const
|
|
2217
|
-
file =
|
|
2218
|
-
Provider =
|
|
2402
|
+
const _core4 = _slicedToArray(core, 3),
|
|
2403
|
+
file = _core4[0],
|
|
2404
|
+
Provider = _core4[2];
|
|
2219
2405
|
useEffect(() => {
|
|
2220
2406
|
onCore(file, length, typeof Provider);
|
|
2221
2407
|
});
|
|
2222
2408
|
return _jsx(Fragment, {});
|
|
2223
2409
|
};
|
|
2224
2410
|
const TestParent = () => {
|
|
2225
|
-
const
|
|
2411
|
+
const _useUseCase28 = useUseCase(() => {
|
|
2226
2412
|
return {
|
|
2227
2413
|
...defaultFile,
|
|
2228
2414
|
ext: EXT_1
|
|
2229
2415
|
};
|
|
2230
2416
|
}, fileUseCase),
|
|
2231
|
-
|
|
2232
|
-
Provider =
|
|
2417
|
+
_useUseCase29 = _slicedToArray(_useUseCase28, 3),
|
|
2418
|
+
Provider = _useUseCase29[2];
|
|
2233
2419
|
return _jsx(Provider, {
|
|
2234
2420
|
children: _jsx(TestChild, {})
|
|
2235
2421
|
});
|
|
@@ -2246,10 +2432,10 @@ describe('useUseCase', () => {
|
|
|
2246
2432
|
const onPopupFile = jest.fn();
|
|
2247
2433
|
const buttonText = 'button';
|
|
2248
2434
|
const Popup = () => {
|
|
2249
|
-
const
|
|
2250
|
-
|
|
2251
|
-
file =
|
|
2252
|
-
setEntity =
|
|
2435
|
+
const _useUseCase30 = useUseCase(fileUseCase),
|
|
2436
|
+
_useUseCase31 = _slicedToArray(_useUseCase30, 2),
|
|
2437
|
+
file = _useUseCase31[0],
|
|
2438
|
+
setEntity = _useUseCase31[1].setEntity;
|
|
2253
2439
|
const onClick = () => {
|
|
2254
2440
|
setEntity({
|
|
2255
2441
|
ext: EXT_2
|
|
@@ -2264,15 +2450,15 @@ describe('useUseCase', () => {
|
|
|
2264
2450
|
});
|
|
2265
2451
|
};
|
|
2266
2452
|
const TestChild = () => {
|
|
2267
|
-
const
|
|
2268
|
-
|
|
2269
|
-
Provider =
|
|
2453
|
+
const _useUseCase32 = useUseCase(fileUseCase),
|
|
2454
|
+
_useUseCase33 = _slicedToArray(_useUseCase32, 3),
|
|
2455
|
+
Provider = _useUseCase33[2];
|
|
2270
2456
|
return createPortal(_jsx(Provider, {
|
|
2271
2457
|
children: _jsx(Popup, {})
|
|
2272
2458
|
}), document.body);
|
|
2273
2459
|
};
|
|
2274
2460
|
const TestParent = () => {
|
|
2275
|
-
const
|
|
2461
|
+
const _useUseCase34 = useUseCase(() => {
|
|
2276
2462
|
return {
|
|
2277
2463
|
...defaultFile,
|
|
2278
2464
|
ext: EXT_1
|
|
@@ -2280,9 +2466,9 @@ describe('useUseCase', () => {
|
|
|
2280
2466
|
}, fileUseCase, {
|
|
2281
2467
|
onChange
|
|
2282
2468
|
}),
|
|
2283
|
-
|
|
2284
|
-
file =
|
|
2285
|
-
Provider =
|
|
2469
|
+
_useUseCase35 = _slicedToArray(_useUseCase34, 3),
|
|
2470
|
+
file = _useUseCase35[0],
|
|
2471
|
+
Provider = _useUseCase35[2];
|
|
2286
2472
|
useEffect(() => {
|
|
2287
2473
|
onRootFile(file);
|
|
2288
2474
|
}, [file]);
|
|
@@ -2347,9 +2533,9 @@ describe('useUseCase', () => {
|
|
|
2347
2533
|
return _jsx(Fragment, {});
|
|
2348
2534
|
};
|
|
2349
2535
|
const B = () => {
|
|
2350
|
-
const
|
|
2351
|
-
|
|
2352
|
-
Provider =
|
|
2536
|
+
const _useUseCase36 = useUseCase(defaultFile, mockUseCase),
|
|
2537
|
+
_useUseCase37 = _slicedToArray(_useUseCase36, 3),
|
|
2538
|
+
Provider = _useUseCase37[2];
|
|
2353
2539
|
return _jsx(Provider, {
|
|
2354
2540
|
children: _jsx(A, {})
|
|
2355
2541
|
});
|
|
@@ -2370,9 +2556,9 @@ describe('useUseCase', () => {
|
|
|
2370
2556
|
};
|
|
2371
2557
|
};
|
|
2372
2558
|
const A = () => {
|
|
2373
|
-
const
|
|
2374
|
-
|
|
2375
|
-
add =
|
|
2559
|
+
const _useUseCase38 = useUseCase(stringUseCase),
|
|
2560
|
+
_useUseCase39 = _slicedToArray(_useUseCase38, 2),
|
|
2561
|
+
add = _useUseCase39[1].add;
|
|
2376
2562
|
const update = useUpdate();
|
|
2377
2563
|
const onClick = () => {
|
|
2378
2564
|
update();
|
|
@@ -2384,9 +2570,9 @@ describe('useUseCase', () => {
|
|
|
2384
2570
|
});
|
|
2385
2571
|
};
|
|
2386
2572
|
const B = () => {
|
|
2387
|
-
const
|
|
2388
|
-
|
|
2389
|
-
Provider =
|
|
2573
|
+
const _useUseCase40 = useUseCase('', stringUseCase),
|
|
2574
|
+
_useUseCase41 = _slicedToArray(_useUseCase40, 3),
|
|
2575
|
+
Provider = _useUseCase41[2];
|
|
2390
2576
|
return _jsx(Provider, {
|
|
2391
2577
|
children: _jsx(A, {})
|
|
2392
2578
|
});
|
|
@@ -2411,9 +2597,9 @@ describe('useUseCase', () => {
|
|
|
2411
2597
|
};
|
|
2412
2598
|
};
|
|
2413
2599
|
const A = () => {
|
|
2414
|
-
const
|
|
2415
|
-
|
|
2416
|
-
add =
|
|
2600
|
+
const _useUseCase42 = useUseCase(stringUseCase),
|
|
2601
|
+
_useUseCase43 = _slicedToArray(_useUseCase42, 2),
|
|
2602
|
+
add = _useUseCase43[1].add;
|
|
2417
2603
|
const onClick = () => {
|
|
2418
2604
|
add('x');
|
|
2419
2605
|
};
|
|
@@ -2427,9 +2613,9 @@ describe('useUseCase', () => {
|
|
|
2427
2613
|
});
|
|
2428
2614
|
};
|
|
2429
2615
|
const B = () => {
|
|
2430
|
-
const
|
|
2431
|
-
|
|
2432
|
-
Provider =
|
|
2616
|
+
const _useUseCase44 = useUseCase('', stringUseCase),
|
|
2617
|
+
_useUseCase45 = _slicedToArray(_useUseCase44, 3),
|
|
2618
|
+
Provider = _useUseCase45[2];
|
|
2433
2619
|
return _jsx(Provider, {
|
|
2434
2620
|
children: _jsx(A, {})
|
|
2435
2621
|
});
|
|
@@ -2458,11 +2644,11 @@ describe('useUseCase', () => {
|
|
|
2458
2644
|
};
|
|
2459
2645
|
};
|
|
2460
2646
|
const A = () => {
|
|
2461
|
-
const
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
add =
|
|
2465
|
-
setEntity =
|
|
2647
|
+
const _useUseCase46 = useUseCase(stringUseCase),
|
|
2648
|
+
_useUseCase47 = _slicedToArray(_useUseCase46, 2),
|
|
2649
|
+
_useUseCase47$ = _useUseCase47[1],
|
|
2650
|
+
add = _useUseCase47$.add,
|
|
2651
|
+
setEntity = _useUseCase47$.setEntity;
|
|
2466
2652
|
const update = useUpdate();
|
|
2467
2653
|
add(addedText);
|
|
2468
2654
|
const onSet = () => {
|
|
@@ -2482,9 +2668,9 @@ describe('useUseCase', () => {
|
|
|
2482
2668
|
});
|
|
2483
2669
|
};
|
|
2484
2670
|
const B = () => {
|
|
2485
|
-
const
|
|
2486
|
-
|
|
2487
|
-
Provider =
|
|
2671
|
+
const _useUseCase48 = useUseCase('', stringUseCase),
|
|
2672
|
+
_useUseCase49 = _slicedToArray(_useUseCase48, 3),
|
|
2673
|
+
Provider = _useUseCase49[2];
|
|
2488
2674
|
return _jsx(Provider, {
|
|
2489
2675
|
children: _jsx(A, {})
|
|
2490
2676
|
});
|
|
@@ -2529,12 +2715,12 @@ describe('useUseCase', () => {
|
|
|
2529
2715
|
return _jsx(Fragment, {});
|
|
2530
2716
|
};
|
|
2531
2717
|
const C = () => {
|
|
2532
|
-
const
|
|
2718
|
+
const _useUseCase50 = useUseCase(defaultFile, fileUseCase, {
|
|
2533
2719
|
onChange: onChangeC
|
|
2534
2720
|
}),
|
|
2535
|
-
|
|
2536
|
-
setPath =
|
|
2537
|
-
Provider =
|
|
2721
|
+
_useUseCase51 = _slicedToArray(_useUseCase50, 3),
|
|
2722
|
+
setPath = _useUseCase51[1].setPath,
|
|
2723
|
+
Provider = _useUseCase51[2];
|
|
2538
2724
|
const onFirstClick = () => {
|
|
2539
2725
|
setPath(PATH_1);
|
|
2540
2726
|
};
|
|
@@ -2561,11 +2747,11 @@ describe('useUseCase', () => {
|
|
|
2561
2747
|
const firstButtonText = 'first button';
|
|
2562
2748
|
const secondButtonText = 'second button';
|
|
2563
2749
|
const A = () => {
|
|
2564
|
-
const
|
|
2750
|
+
const _useUseCase52 = useUseCase(fileUseCase, {
|
|
2565
2751
|
onChange
|
|
2566
2752
|
}),
|
|
2567
|
-
|
|
2568
|
-
setPath =
|
|
2753
|
+
_useUseCase53 = _slicedToArray(_useUseCase52, 2),
|
|
2754
|
+
setPath = _useUseCase53[1].setPath;
|
|
2569
2755
|
const onFirstClick = () => {
|
|
2570
2756
|
setPath(PATH_1);
|
|
2571
2757
|
onChange = onSecondChange;
|
|
@@ -2584,9 +2770,9 @@ describe('useUseCase', () => {
|
|
|
2584
2770
|
});
|
|
2585
2771
|
};
|
|
2586
2772
|
const B = () => {
|
|
2587
|
-
const
|
|
2588
|
-
|
|
2589
|
-
Provider =
|
|
2773
|
+
const _useUseCase54 = useUseCase(defaultFile, fileUseCase),
|
|
2774
|
+
_useUseCase55 = _slicedToArray(_useUseCase54, 3),
|
|
2775
|
+
Provider = _useUseCase55[2];
|
|
2590
2776
|
return _jsx(Provider, {
|
|
2591
2777
|
children: _jsx(A, {})
|
|
2592
2778
|
});
|
|
@@ -2605,73 +2791,17 @@ describe('useUseCase', () => {
|
|
|
2605
2791
|
path: PATH_1
|
|
2606
2792
|
});
|
|
2607
2793
|
});
|
|
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
2794
|
test('`options.watch` should be triggered at child components', () => {
|
|
2665
2795
|
const onExtChange = jest.fn();
|
|
2666
2796
|
const firstButtonText = 'first button';
|
|
2667
2797
|
const A = () => {
|
|
2668
|
-
const
|
|
2798
|
+
const _useUseCase56 = useUseCase(fileUseCase, {
|
|
2669
2799
|
watch: {
|
|
2670
2800
|
ext: onExtChange
|
|
2671
2801
|
}
|
|
2672
2802
|
}),
|
|
2673
|
-
|
|
2674
|
-
setPath =
|
|
2803
|
+
_useUseCase57 = _slicedToArray(_useUseCase56, 2),
|
|
2804
|
+
setPath = _useUseCase57[1].setPath;
|
|
2675
2805
|
const onFirstClick = () => {
|
|
2676
2806
|
setPath(PATH_1);
|
|
2677
2807
|
};
|
|
@@ -2681,9 +2811,9 @@ describe('useUseCase', () => {
|
|
|
2681
2811
|
});
|
|
2682
2812
|
};
|
|
2683
2813
|
const B = () => {
|
|
2684
|
-
const
|
|
2685
|
-
|
|
2686
|
-
Provider =
|
|
2814
|
+
const _useUseCase58 = useUseCase(defaultFile, fileUseCase, {}),
|
|
2815
|
+
_useUseCase59 = _slicedToArray(_useUseCase58, 3),
|
|
2816
|
+
Provider = _useUseCase59[2];
|
|
2687
2817
|
return _jsx(Provider, {
|
|
2688
2818
|
children: _jsx(A, {})
|
|
2689
2819
|
});
|
|
@@ -2734,14 +2864,14 @@ describe('useUseCase', () => {
|
|
|
2734
2864
|
return _jsx(Fragment, {});
|
|
2735
2865
|
};
|
|
2736
2866
|
const C = () => {
|
|
2737
|
-
const
|
|
2867
|
+
const _useUseCase60 = useUseCase(defaultFile, fileUseCase, {
|
|
2738
2868
|
watch: {
|
|
2739
2869
|
ext: onChangeC
|
|
2740
2870
|
}
|
|
2741
2871
|
}),
|
|
2742
|
-
|
|
2743
|
-
setPath =
|
|
2744
|
-
Provider =
|
|
2872
|
+
_useUseCase61 = _slicedToArray(_useUseCase60, 3),
|
|
2873
|
+
setPath = _useUseCase61[1].setPath,
|
|
2874
|
+
Provider = _useUseCase61[2];
|
|
2745
2875
|
const onFirstClick = () => {
|
|
2746
2876
|
setPath(PATH_1);
|
|
2747
2877
|
};
|
|
@@ -2768,13 +2898,13 @@ describe('useUseCase', () => {
|
|
|
2768
2898
|
const firstButtonText = 'first button';
|
|
2769
2899
|
const secondButtonText = 'second button';
|
|
2770
2900
|
const A = () => {
|
|
2771
|
-
const
|
|
2901
|
+
const _useUseCase62 = useUseCase(fileUseCase, {
|
|
2772
2902
|
watch: {
|
|
2773
2903
|
ext: onExtChange
|
|
2774
2904
|
}
|
|
2775
2905
|
}),
|
|
2776
|
-
|
|
2777
|
-
setPath =
|
|
2906
|
+
_useUseCase63 = _slicedToArray(_useUseCase62, 2),
|
|
2907
|
+
setPath = _useUseCase63[1].setPath;
|
|
2778
2908
|
const onFirstClick = () => {
|
|
2779
2909
|
setPath(PATH_1);
|
|
2780
2910
|
onExtChange = onSecondExtChange;
|
|
@@ -2793,9 +2923,9 @@ describe('useUseCase', () => {
|
|
|
2793
2923
|
});
|
|
2794
2924
|
};
|
|
2795
2925
|
const B = () => {
|
|
2796
|
-
const
|
|
2797
|
-
|
|
2798
|
-
Provider =
|
|
2926
|
+
const _useUseCase64 = useUseCase(defaultFile, fileUseCase),
|
|
2927
|
+
_useUseCase65 = _slicedToArray(_useUseCase64, 3),
|
|
2928
|
+
Provider = _useUseCase65[2];
|
|
2799
2929
|
return _jsx(Provider, {
|
|
2800
2930
|
children: _jsx(A, {})
|
|
2801
2931
|
});
|
|
@@ -2823,38 +2953,38 @@ describe('useUseCase', () => {
|
|
|
2823
2953
|
});
|
|
2824
2954
|
describe('`useUseCase` should work the same as `useReducers`', () => {
|
|
2825
2955
|
test('`entity` should equal `defaultFile`', () => {
|
|
2826
|
-
const
|
|
2956
|
+
const _renderHook46 = renderHook(() => {
|
|
2827
2957
|
return useUseCase(mathUseCase);
|
|
2828
2958
|
}),
|
|
2829
|
-
result =
|
|
2959
|
+
result = _renderHook46.result;
|
|
2830
2960
|
const reducers = result.current;
|
|
2831
2961
|
expect(Array.isArray(reducers)).toBe(false);
|
|
2832
2962
|
});
|
|
2833
2963
|
test('returned reducer should work', () => {
|
|
2834
|
-
const
|
|
2964
|
+
const _renderHook47 = renderHook(() => {
|
|
2835
2965
|
return useUseCase(mathUseCase);
|
|
2836
2966
|
}),
|
|
2837
|
-
result =
|
|
2967
|
+
result = _renderHook47.result;
|
|
2838
2968
|
const reducers = result.current;
|
|
2839
2969
|
const add = reducers.add;
|
|
2840
2970
|
expect(add(1, 2)).toBe(3);
|
|
2841
2971
|
});
|
|
2842
2972
|
test('`usecase` should be called only once if deps has not provided', () => {
|
|
2843
2973
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2844
|
-
const
|
|
2974
|
+
const _renderHook48 = renderHook(() => {
|
|
2845
2975
|
return useUseCase(mockUseCase);
|
|
2846
2976
|
}),
|
|
2847
|
-
rerender =
|
|
2977
|
+
rerender = _renderHook48.rerender;
|
|
2848
2978
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2849
2979
|
rerender();
|
|
2850
2980
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2851
2981
|
});
|
|
2852
2982
|
test('`usecase` should be called only once if deps has not changed', () => {
|
|
2853
2983
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2854
|
-
const
|
|
2984
|
+
const _renderHook49 = renderHook(() => {
|
|
2855
2985
|
return useUseCase(mockUseCase, {}, [1, 'x']);
|
|
2856
2986
|
}),
|
|
2857
|
-
rerender =
|
|
2987
|
+
rerender = _renderHook49.rerender;
|
|
2858
2988
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2859
2989
|
rerender();
|
|
2860
2990
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
@@ -2862,10 +2992,10 @@ describe('useUseCase', () => {
|
|
|
2862
2992
|
test('`usecase` should be called if deps has changed', () => {
|
|
2863
2993
|
let i = 0;
|
|
2864
2994
|
const mockUseCase = jest.fn(mathUseCase);
|
|
2865
|
-
const
|
|
2995
|
+
const _renderHook50 = renderHook(() => {
|
|
2866
2996
|
return useUseCase(mockUseCase, {}, [i++, 'x']);
|
|
2867
2997
|
}),
|
|
2868
|
-
rerender =
|
|
2998
|
+
rerender = _renderHook50.rerender;
|
|
2869
2999
|
expect(mockUseCase).toHaveBeenCalledTimes(1);
|
|
2870
3000
|
rerender();
|
|
2871
3001
|
expect(mockUseCase).toHaveBeenCalledTimes(2);
|
|
@@ -2873,8 +3003,8 @@ describe('useUseCase', () => {
|
|
|
2873
3003
|
test('reducer call should not be cached if component is at rendering phase', () => {
|
|
2874
3004
|
const buttonText = 'button';
|
|
2875
3005
|
const CacheTestComponent = () => {
|
|
2876
|
-
const
|
|
2877
|
-
subtraction =
|
|
3006
|
+
const _useUseCase66 = useUseCase(mathUseCase),
|
|
3007
|
+
subtraction = _useUseCase66.subtraction;
|
|
2878
3008
|
const update = useUpdate();
|
|
2879
3009
|
const onClick = () => {
|
|
2880
3010
|
update();
|
|
@@ -2897,8 +3027,8 @@ describe('useUseCase', () => {
|
|
|
2897
3027
|
test('reducer call should not be cached if component is not at rendering phase', () => {
|
|
2898
3028
|
const buttonText = 'button';
|
|
2899
3029
|
const CacheTestComponent = () => {
|
|
2900
|
-
const
|
|
2901
|
-
subtraction =
|
|
3030
|
+
const _useUseCase67 = useUseCase(mathUseCase),
|
|
3031
|
+
subtraction = _useUseCase67.subtraction;
|
|
2902
3032
|
const onClick = () => {
|
|
2903
3033
|
subtraction(5, 3);
|
|
2904
3034
|
};
|
|
@@ -2926,8 +3056,8 @@ describe('useUseCase', () => {
|
|
|
2926
3056
|
let count = 0;
|
|
2927
3057
|
const buttonText = 'button';
|
|
2928
3058
|
const StringUseCaseTestComponent = () => {
|
|
2929
|
-
const
|
|
2930
|
-
subtraction =
|
|
3059
|
+
const _useUseCase68 = useUseCase(mathUseCase),
|
|
3060
|
+
subtraction = _useUseCase68.subtraction;
|
|
2931
3061
|
const update = useUpdate();
|
|
2932
3062
|
subtraction(5, count++);
|
|
2933
3063
|
const onUpdate = () => {
|
|
@@ -2949,12 +3079,12 @@ describe('useUseCase', () => {
|
|
|
2949
3079
|
expect(subtractionReducer).toHaveReturnedWith(4);
|
|
2950
3080
|
});
|
|
2951
3081
|
test('`options.extraValue` should be added after call `add` method', () => {
|
|
2952
|
-
const
|
|
3082
|
+
const _renderHook51 = renderHook(() => {
|
|
2953
3083
|
return useUseCase(mathUseCase, {
|
|
2954
3084
|
extraValue: 5
|
|
2955
3085
|
});
|
|
2956
3086
|
}),
|
|
2957
|
-
result =
|
|
3087
|
+
result = _renderHook51.result;
|
|
2958
3088
|
const reducers = result.current;
|
|
2959
3089
|
const add = reducers.add;
|
|
2960
3090
|
expect(add(1, 2)).toBe(8);
|
|
@@ -2962,7 +3092,7 @@ describe('useUseCase', () => {
|
|
|
2962
3092
|
test('when `options` has changed, it should not trigger update', () => {
|
|
2963
3093
|
const onUpdate = jest.fn();
|
|
2964
3094
|
const onDeepUpdate = jest.fn();
|
|
2965
|
-
const
|
|
3095
|
+
const _renderHook52 = renderHook(() => {
|
|
2966
3096
|
const _useState7 = useState(0),
|
|
2967
3097
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
2968
3098
|
extraValue = _useState8[0],
|
|
@@ -2978,7 +3108,7 @@ describe('useUseCase', () => {
|
|
|
2978
3108
|
}, [reducers]);
|
|
2979
3109
|
return setExtraValue;
|
|
2980
3110
|
}),
|
|
2981
|
-
result =
|
|
3111
|
+
result = _renderHook52.result;
|
|
2982
3112
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
2983
3113
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
2984
3114
|
act(() => {
|
|
@@ -2990,7 +3120,7 @@ describe('useUseCase', () => {
|
|
|
2990
3120
|
test('when `deps` change, it should update reducers', () => {
|
|
2991
3121
|
const onUpdate = jest.fn();
|
|
2992
3122
|
const onDeepUpdate = jest.fn();
|
|
2993
|
-
const
|
|
3123
|
+
const _renderHook53 = renderHook(() => {
|
|
2994
3124
|
const _useState9 = useState(0),
|
|
2995
3125
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
2996
3126
|
extraValue = _useState0[0],
|
|
@@ -3006,7 +3136,7 @@ describe('useUseCase', () => {
|
|
|
3006
3136
|
}, [reducers]);
|
|
3007
3137
|
return setExtraValue;
|
|
3008
3138
|
}),
|
|
3009
|
-
result =
|
|
3139
|
+
result = _renderHook53.result;
|
|
3010
3140
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
3011
3141
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
3012
3142
|
act(() => {
|
|
@@ -3018,7 +3148,7 @@ describe('useUseCase', () => {
|
|
|
3018
3148
|
test('empty `deps` should not update reducers', () => {
|
|
3019
3149
|
const onUpdate = jest.fn();
|
|
3020
3150
|
const onDeepUpdate = jest.fn();
|
|
3021
|
-
const
|
|
3151
|
+
const _renderHook54 = renderHook(() => {
|
|
3022
3152
|
const _useState1 = useState(0),
|
|
3023
3153
|
_useState10 = _slicedToArray(_useState1, 2),
|
|
3024
3154
|
extraValue = _useState10[0],
|
|
@@ -3034,7 +3164,7 @@ describe('useUseCase', () => {
|
|
|
3034
3164
|
}, [reducers]);
|
|
3035
3165
|
return setExtraValue;
|
|
3036
3166
|
}),
|
|
3037
|
-
result =
|
|
3167
|
+
result = _renderHook54.result;
|
|
3038
3168
|
expect(onUpdate).toHaveBeenCalledTimes(0);
|
|
3039
3169
|
expect(onDeepUpdate).toHaveBeenCalledTimes(0);
|
|
3040
3170
|
act(() => {
|