@gravity-ui/data-source 0.6.1 → 0.8.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/README.md +752 -15
- package/build/cjs/core/index.d.ts +3 -1
- package/build/cjs/core/index.js +7 -0
- package/build/cjs/core/index.js.map +1 -1
- package/build/cjs/core/types/DataManager.d.ts +5 -0
- package/build/cjs/core/types/DataManager.js.map +1 -1
- package/build/cjs/core/types/DataSource.d.ts +15 -19
- package/build/cjs/core/types/DataSource.js.map +1 -1
- package/build/cjs/core/types/Normalizer.d.ts +29 -0
- package/build/cjs/core/types/Normalizer.js +6 -0
- package/build/cjs/core/types/Normalizer.js.map +1 -0
- package/build/cjs/core/utils/__tests__/composeFullKey.test.js +34 -0
- package/build/cjs/core/utils/__tests__/composeFullKey.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/composeKey.test.js +32 -0
- package/build/cjs/core/utils/__tests__/composeKey.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/getError.test.js +31 -0
- package/build/cjs/core/utils/__tests__/getError.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/getStatus.test.js +49 -0
- package/build/cjs/core/utils/__tests__/getStatus.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/hasTag.test.js +31 -0
- package/build/cjs/core/utils/__tests__/hasTag.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/mergeStatuses.test.js +25 -0
- package/build/cjs/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/skipContext.test.js +70 -0
- package/build/cjs/core/utils/__tests__/skipContext.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/withCancellation.test.js +106 -0
- package/build/cjs/core/utils/__tests__/withCancellation.test.js.map +1 -0
- package/build/cjs/core/utils/__tests__/withCatch.test.js +208 -0
- package/build/cjs/core/utils/__tests__/withCatch.test.js.map +1 -0
- package/build/cjs/core/utils/withCatch.d.ts +26 -0
- package/build/cjs/core/utils/withCatch.js +37 -0
- package/build/cjs/core/utils/withCatch.js.map +1 -0
- package/build/cjs/react/DataManagerProvider.d.ts +7 -0
- package/build/cjs/react/DataManagerProvider.js +19 -0
- package/build/cjs/react/DataManagerProvider.js.map +1 -0
- package/build/cjs/react/__tests__/DataManagerContext.test.js +47 -0
- package/build/cjs/react/__tests__/DataManagerContext.test.js.map +1 -0
- package/build/cjs/react/__tests__/withDataManager.test.js +61 -0
- package/build/cjs/react/__tests__/withDataManager.test.js.map +1 -0
- package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +187 -0
- package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
- package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js +119 -0
- package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
- package/build/cjs/react/index.d.ts +2 -0
- package/build/cjs/react/index.js +8 -0
- package/build/cjs/react/index.js.map +1 -1
- package/build/cjs/react/withDataManager.d.ts +1 -1
- package/build/cjs/react/withDataManager.js +3 -3
- package/build/cjs/react/withDataManager.js.map +1 -1
- package/build/cjs/react-query/ClientDataManager.d.ts +11 -2
- package/build/cjs/react-query/ClientDataManager.js +76 -9
- package/build/cjs/react-query/ClientDataManager.js.map +1 -1
- package/build/cjs/react-query/DataSourceProvider.d.ts +7 -0
- package/build/cjs/react-query/DataSourceProvider.js +35 -0
- package/build/cjs/react-query/DataSourceProvider.js.map +1 -0
- package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js +177 -0
- package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js +100 -0
- package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/subscriptions.test.js +1180 -0
- package/build/cjs/react-query/__tests__/subscriptions.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js +514 -0
- package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js.map +1 -0
- package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js +229 -0
- package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js.map +1 -0
- package/build/cjs/react-query/constants.d.ts +2 -0
- package/build/cjs/react-query/constants.js +9 -0
- package/build/cjs/react-query/constants.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js +55 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js +195 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js +97 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js +77 -0
- package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js +79 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js +117 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js +156 -0
- package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
- package/build/cjs/react-query/hooks/useRefetchInterval.d.ts +1 -1
- package/build/cjs/react-query/impl/infinite/factory.d.ts +1 -1
- package/build/cjs/react-query/impl/infinite/factory.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/hooks.js +4 -1
- package/build/cjs/react-query/impl/infinite/hooks.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/types.d.ts +9 -9
- package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
- package/build/cjs/react-query/impl/infinite/utils.js +11 -22
- package/build/cjs/react-query/impl/infinite/utils.js.map +1 -1
- package/build/cjs/react-query/impl/plain/factory.d.ts +1 -1
- package/build/cjs/react-query/impl/plain/factory.js.map +1 -1
- package/build/cjs/react-query/impl/plain/hooks.js +4 -1
- package/build/cjs/react-query/impl/plain/hooks.js.map +1 -1
- package/build/cjs/react-query/impl/plain/types.d.ts +6 -6
- package/build/cjs/react-query/impl/plain/types.js.map +1 -1
- package/build/cjs/react-query/impl/plain/utils.js +12 -23
- package/build/cjs/react-query/impl/plain/utils.js.map +1 -1
- package/build/cjs/react-query/index.d.ts +2 -0
- package/build/cjs/react-query/index.js +7 -0
- package/build/cjs/react-query/index.js.map +1 -1
- package/build/cjs/react-query/types/normalizer.d.ts +21 -0
- package/build/cjs/react-query/types/normalizer.js +6 -0
- package/build/cjs/react-query/types/normalizer.js.map +1 -0
- package/build/cjs/react-query/types/options.d.ts +12 -0
- package/build/cjs/react-query/types/options.js.map +1 -1
- package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js +27 -0
- package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js +76 -0
- package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js +30 -0
- package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/notReachable.test.js +35 -0
- package/build/cjs/react-query/utils/__tests__/notReachable.test.js.map +1 -0
- package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js +27 -0
- package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
- package/build/cjs/react-query/utils/formatNullableValue.d.ts +2 -0
- package/build/cjs/react-query/utils/formatNullableValue.js +17 -0
- package/build/cjs/react-query/utils/formatNullableValue.js.map +1 -0
- package/build/cjs/react-query/utils/getProgressiveRefetch.d.ts +2 -2
- package/build/cjs/react-query/utils/normalize.d.ts +22 -0
- package/build/cjs/react-query/utils/normalize.js +150 -0
- package/build/cjs/react-query/utils/normalize.js.map +1 -0
- package/build/cjs/react-query/utils/parseNullableValue.d.ts +2 -0
- package/build/cjs/react-query/utils/parseNullableValue.js +17 -0
- package/build/cjs/react-query/utils/parseNullableValue.js.map +1 -0
- package/build/cjs/react-query/utils/warn.d.ts +1 -0
- package/build/cjs/react-query/utils/warn.js +15 -0
- package/build/cjs/react-query/utils/warn.js.map +1 -0
- package/build/cjs/react-query/utils/warnDisabledRefetch.d.ts +1 -0
- package/build/cjs/react-query/utils/warnDisabledRefetch.js +11 -0
- package/build/cjs/react-query/utils/warnDisabledRefetch.js.map +1 -0
- package/build/cjs/setupTests.d.ts +1 -0
- package/build/cjs/setupTests.js +4 -0
- package/build/cjs/setupTests.js.map +1 -0
- package/build/esm/core/index.d.ts +3 -1
- package/build/esm/core/index.js +1 -0
- package/build/esm/core/index.js.map +1 -1
- package/build/esm/core/types/DataManager.d.ts +5 -0
- package/build/esm/core/types/DataManager.js.map +1 -1
- package/build/esm/core/types/DataSource.d.ts +15 -19
- package/build/esm/core/types/DataSource.js.map +1 -1
- package/build/esm/core/types/Normalizer.d.ts +29 -0
- package/build/esm/core/types/Normalizer.js +2 -0
- package/build/esm/core/types/Normalizer.js.map +1 -0
- package/build/esm/core/utils/__tests__/composeFullKey.test.js +32 -0
- package/build/esm/core/utils/__tests__/composeFullKey.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/composeKey.test.js +30 -0
- package/build/esm/core/utils/__tests__/composeKey.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/getError.test.js +29 -0
- package/build/esm/core/utils/__tests__/getError.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/getStatus.test.js +47 -0
- package/build/esm/core/utils/__tests__/getStatus.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/hasTag.test.js +29 -0
- package/build/esm/core/utils/__tests__/hasTag.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/mergeStatuses.test.js +23 -0
- package/build/esm/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/skipContext.test.js +67 -0
- package/build/esm/core/utils/__tests__/skipContext.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/withCancellation.test.js +104 -0
- package/build/esm/core/utils/__tests__/withCancellation.test.js.map +1 -0
- package/build/esm/core/utils/__tests__/withCatch.test.js +205 -0
- package/build/esm/core/utils/__tests__/withCatch.test.js.map +1 -0
- package/build/esm/core/utils/withCatch.d.ts +26 -0
- package/build/esm/core/utils/withCatch.js +31 -0
- package/build/esm/core/utils/withCatch.js.map +1 -0
- package/build/esm/react/DataManagerProvider.d.ts +7 -0
- package/build/esm/react/DataManagerProvider.js +12 -0
- package/build/esm/react/DataManagerProvider.js.map +1 -0
- package/build/esm/react/__tests__/DataManagerContext.test.js +44 -0
- package/build/esm/react/__tests__/DataManagerContext.test.js.map +1 -0
- package/build/esm/react/__tests__/withDataManager.test.js +58 -0
- package/build/esm/react/__tests__/withDataManager.test.js.map +1 -0
- package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +184 -0
- package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
- package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js +116 -0
- package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
- package/build/esm/react/index.d.ts +2 -0
- package/build/esm/react/index.js +1 -0
- package/build/esm/react/index.js.map +1 -1
- package/build/esm/react/withDataManager.d.ts +1 -1
- package/build/esm/react/withDataManager.js +3 -3
- package/build/esm/react/withDataManager.js.map +1 -1
- package/build/esm/react-query/ClientDataManager.d.ts +11 -2
- package/build/esm/react-query/ClientDataManager.js +70 -3
- package/build/esm/react-query/ClientDataManager.js.map +1 -1
- package/build/esm/react-query/DataSourceProvider.d.ts +7 -0
- package/build/esm/react-query/DataSourceProvider.js +28 -0
- package/build/esm/react-query/DataSourceProvider.js.map +1 -0
- package/build/esm/react-query/__tests__/createQueryNormalizer.test.js +174 -0
- package/build/esm/react-query/__tests__/createQueryNormalizer.test.js.map +1 -0
- package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js +98 -0
- package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js.map +1 -0
- package/build/esm/react-query/__tests__/subscriptions.test.js +1176 -0
- package/build/esm/react-query/__tests__/subscriptions.test.js.map +1 -0
- package/build/esm/react-query/__tests__/threeLevelIntegration.test.js +511 -0
- package/build/esm/react-query/__tests__/threeLevelIntegration.test.js.map +1 -0
- package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js +227 -0
- package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js.map +1 -0
- package/build/esm/react-query/constants.d.ts +2 -0
- package/build/esm/react-query/constants.js +3 -0
- package/build/esm/react-query/constants.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js +52 -0
- package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js +192 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.test.js +95 -0
- package/build/esm/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js +74 -0
- package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js +77 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js +115 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js +154 -0
- package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
- package/build/esm/react-query/hooks/useRefetchInterval.d.ts +1 -1
- package/build/esm/react-query/impl/infinite/factory.d.ts +1 -1
- package/build/esm/react-query/impl/infinite/factory.js.map +1 -1
- package/build/esm/react-query/impl/infinite/hooks.js +5 -2
- package/build/esm/react-query/impl/infinite/hooks.js.map +1 -1
- package/build/esm/react-query/impl/infinite/types.d.ts +9 -9
- package/build/esm/react-query/impl/infinite/types.js.map +1 -1
- package/build/esm/react-query/impl/infinite/utils.js +9 -20
- package/build/esm/react-query/impl/infinite/utils.js.map +1 -1
- package/build/esm/react-query/impl/plain/factory.d.ts +1 -1
- package/build/esm/react-query/impl/plain/factory.js.map +1 -1
- package/build/esm/react-query/impl/plain/hooks.js +5 -2
- package/build/esm/react-query/impl/plain/hooks.js.map +1 -1
- package/build/esm/react-query/impl/plain/types.d.ts +6 -6
- package/build/esm/react-query/impl/plain/types.js.map +1 -1
- package/build/esm/react-query/impl/plain/utils.js +10 -21
- package/build/esm/react-query/impl/plain/utils.js.map +1 -1
- package/build/esm/react-query/index.d.ts +2 -0
- package/build/esm/react-query/index.js +1 -0
- package/build/esm/react-query/index.js.map +1 -1
- package/build/esm/react-query/types/normalizer.d.ts +21 -0
- package/build/esm/react-query/types/normalizer.js +2 -0
- package/build/esm/react-query/types/normalizer.js.map +1 -0
- package/build/esm/react-query/types/options.d.ts +12 -0
- package/build/esm/react-query/types/options.js.map +1 -1
- package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js +25 -0
- package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js +74 -0
- package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js +28 -0
- package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/notReachable.test.js +33 -0
- package/build/esm/react-query/utils/__tests__/notReachable.test.js.map +1 -0
- package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js +25 -0
- package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
- package/build/esm/react-query/utils/formatNullableValue.d.ts +2 -0
- package/build/esm/react-query/utils/formatNullableValue.js +11 -0
- package/build/esm/react-query/utils/formatNullableValue.js.map +1 -0
- package/build/esm/react-query/utils/getProgressiveRefetch.d.ts +2 -2
- package/build/esm/react-query/utils/normalize.d.ts +22 -0
- package/build/esm/react-query/utils/normalize.js +143 -0
- package/build/esm/react-query/utils/normalize.js.map +1 -0
- package/build/esm/react-query/utils/parseNullableValue.d.ts +2 -0
- package/build/esm/react-query/utils/parseNullableValue.js +11 -0
- package/build/esm/react-query/utils/parseNullableValue.js.map +1 -0
- package/build/esm/react-query/utils/warn.d.ts +1 -0
- package/build/esm/react-query/utils/warn.js +9 -0
- package/build/esm/react-query/utils/warn.js.map +1 -0
- package/build/esm/react-query/utils/warnDisabledRefetch.d.ts +1 -0
- package/build/esm/react-query/utils/warnDisabledRefetch.js +5 -0
- package/build/esm/react-query/utils/warnDisabledRefetch.js.map +1 -0
- package/build/esm/setupTests.d.ts +1 -0
- package/build/esm/setupTests.js +2 -0
- package/build/esm/setupTests.js.map +1 -0
- package/package.json +18 -13
- package/build/cjs/react-query/impl/utils.d.ts +0 -4
- package/build/cjs/react-query/impl/utils.js +0 -27
- package/build/cjs/react-query/impl/utils.js.map +0 -1
- package/build/esm/react-query/impl/utils.d.ts +0 -4
- package/build/esm/react-query/impl/utils.js +0 -21
- package/build/esm/react-query/impl/utils.js.map +0 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
2
|
+
import { renderHook } from '@testing-library/react';
|
|
3
|
+
import { useInfiniteQueryData } from '../../impl/infinite/hooks';
|
|
4
|
+
import { usePlainQueryData } from '../../impl/plain/hooks';
|
|
5
|
+
import { notReachable } from '../../utils/notReachable';
|
|
6
|
+
import { useQueryContext } from '../useQueryContext';
|
|
7
|
+
import { useQueryData } from '../useQueryData';
|
|
8
|
+
jest.mock('../useQueryContext');
|
|
9
|
+
jest.mock('../../impl/plain/hooks');
|
|
10
|
+
jest.mock('../../impl/infinite/hooks');
|
|
11
|
+
jest.mock('../../utils/notReachable');
|
|
12
|
+
describe('useQueryData', function () {
|
|
13
|
+
var mockQueryClient = new QueryClient();
|
|
14
|
+
var mockContext = {
|
|
15
|
+
queryClient: mockQueryClient
|
|
16
|
+
};
|
|
17
|
+
var mockPlainState = {
|
|
18
|
+
status: 'success',
|
|
19
|
+
data: 'plain data'
|
|
20
|
+
};
|
|
21
|
+
var mockInfiniteState = {
|
|
22
|
+
status: 'success',
|
|
23
|
+
data: ['infinite data']
|
|
24
|
+
};
|
|
25
|
+
beforeEach(function () {
|
|
26
|
+
jest.clearAllMocks();
|
|
27
|
+
useQueryContext.mockReturnValue(mockContext);
|
|
28
|
+
usePlainQueryData.mockReturnValue(mockPlainState);
|
|
29
|
+
useInfiniteQueryData.mockReturnValue(mockInfiniteState);
|
|
30
|
+
notReachable.mockReturnValue('not reachable');
|
|
31
|
+
});
|
|
32
|
+
it('should call usePlainQueryData for plain data source', function () {
|
|
33
|
+
var dataSource = {
|
|
34
|
+
type: 'plain',
|
|
35
|
+
name: 'test',
|
|
36
|
+
fetch: jest.fn()
|
|
37
|
+
};
|
|
38
|
+
var params = {
|
|
39
|
+
id: 1
|
|
40
|
+
};
|
|
41
|
+
var options = {
|
|
42
|
+
refetchInterval: 1000
|
|
43
|
+
};
|
|
44
|
+
var _renderHook = renderHook(function () {
|
|
45
|
+
return useQueryData(dataSource, params, options);
|
|
46
|
+
}),
|
|
47
|
+
result = _renderHook.result;
|
|
48
|
+
expect(useQueryContext).toHaveBeenCalled();
|
|
49
|
+
expect(usePlainQueryData).toHaveBeenCalledWith(mockContext, dataSource, params, options);
|
|
50
|
+
expect(useInfiniteQueryData).not.toHaveBeenCalled();
|
|
51
|
+
expect(result.current).toBe(mockPlainState);
|
|
52
|
+
});
|
|
53
|
+
it('should call useInfiniteQueryData for infinite data source', function () {
|
|
54
|
+
var dataSource = {
|
|
55
|
+
type: 'infinite',
|
|
56
|
+
name: 'test',
|
|
57
|
+
fetch: jest.fn(),
|
|
58
|
+
next: jest.fn()
|
|
59
|
+
};
|
|
60
|
+
var params = {
|
|
61
|
+
id: 1
|
|
62
|
+
};
|
|
63
|
+
var options = {
|
|
64
|
+
refetchInterval: 1000
|
|
65
|
+
};
|
|
66
|
+
var _renderHook2 = renderHook(function () {
|
|
67
|
+
return useQueryData(dataSource, params, options);
|
|
68
|
+
}),
|
|
69
|
+
result = _renderHook2.result;
|
|
70
|
+
expect(useQueryContext).toHaveBeenCalled();
|
|
71
|
+
expect(useInfiniteQueryData).toHaveBeenCalledWith(mockContext, dataSource, params, options);
|
|
72
|
+
expect(usePlainQueryData).not.toHaveBeenCalled();
|
|
73
|
+
expect(result.current).toBe(mockInfiniteState);
|
|
74
|
+
});
|
|
75
|
+
it('should call notReachable for unknown data source type', function () {
|
|
76
|
+
var dataSource = {
|
|
77
|
+
type: 'unknown',
|
|
78
|
+
name: 'test',
|
|
79
|
+
fetch: jest.fn()
|
|
80
|
+
};
|
|
81
|
+
var params = {
|
|
82
|
+
id: 1
|
|
83
|
+
};
|
|
84
|
+
notReachable.mockImplementation(function () {
|
|
85
|
+
return 'not reachable';
|
|
86
|
+
});
|
|
87
|
+
renderHook(function () {
|
|
88
|
+
return useQueryData(dataSource, params);
|
|
89
|
+
});
|
|
90
|
+
expect(usePlainQueryData).not.toHaveBeenCalled();
|
|
91
|
+
expect(useInfiniteQueryData).not.toHaveBeenCalled();
|
|
92
|
+
expect(notReachable).toHaveBeenCalledWith('unknown', expect.any(String));
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
// #sourceMappingURL=useQueryData.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["QueryClient","renderHook","useInfiniteQueryData","usePlainQueryData","notReachable","useQueryContext","useQueryData","jest","mock","describe","mockQueryClient","mockContext","queryClient","mockPlainState","status","data","mockInfiniteState","beforeEach","clearAllMocks","mockReturnValue","it","dataSource","type","name","fetch","fn","params","id","options","refetchInterval","_renderHook","result","expect","toHaveBeenCalled","toHaveBeenCalledWith","not","current","toBe","next","_renderHook2","mockImplementation","any","String"],"sources":["useQueryData.test.ts"],"sourcesContent":["import {QueryClient} from '@tanstack/react-query';\nimport {renderHook} from '@testing-library/react';\n\nimport {useInfiniteQueryData} from '../../impl/infinite/hooks';\nimport type {AnyInfiniteQueryDataSource} from '../../impl/infinite/types';\nimport {usePlainQueryData} from '../../impl/plain/hooks';\nimport type {AnyPlainQueryDataSource} from '../../impl/plain/types';\nimport type {AnyQueryDataSource} from '../../types/base';\nimport {notReachable} from '../../utils/notReachable';\nimport {useQueryContext} from '../useQueryContext';\nimport {useQueryData} from '../useQueryData';\n\njest.mock('../useQueryContext');\njest.mock('../../impl/plain/hooks');\njest.mock('../../impl/infinite/hooks');\njest.mock('../../utils/notReachable');\n\ndescribe('useQueryData', () => {\n const mockQueryClient = new QueryClient();\n const mockContext = {queryClient: mockQueryClient};\n const mockPlainState = {status: 'success', data: 'plain data'};\n const mockInfiniteState = {status: 'success', data: ['infinite data']};\n\n beforeEach(() => {\n jest.clearAllMocks();\n\n (useQueryContext as jest.Mock).mockReturnValue(mockContext);\n (usePlainQueryData as jest.Mock).mockReturnValue(mockPlainState);\n (useInfiniteQueryData as jest.Mock).mockReturnValue(mockInfiniteState);\n (notReachable as unknown as jest.Mock).mockReturnValue('not reachable');\n });\n\n it('should call usePlainQueryData for plain data source', () => {\n const dataSource: AnyPlainQueryDataSource = {\n type: 'plain',\n name: 'test',\n fetch: jest.fn(),\n };\n const params = {id: 1};\n const options = {refetchInterval: 1000};\n\n const {result} = renderHook(() => useQueryData(dataSource, params, options));\n\n expect(useQueryContext).toHaveBeenCalled();\n expect(usePlainQueryData).toHaveBeenCalledWith(mockContext, dataSource, params, options);\n expect(useInfiniteQueryData).not.toHaveBeenCalled();\n expect(result.current).toBe(mockPlainState);\n });\n\n it('should call useInfiniteQueryData for infinite data source', () => {\n const dataSource: AnyInfiniteQueryDataSource = {\n type: 'infinite',\n name: 'test',\n fetch: jest.fn(),\n next: jest.fn(),\n };\n const params = {id: 1};\n const options = {refetchInterval: 1000};\n\n const {result} = renderHook(() => useQueryData(dataSource, params, options));\n\n expect(useQueryContext).toHaveBeenCalled();\n expect(useInfiniteQueryData).toHaveBeenCalledWith(mockContext, dataSource, params, options);\n expect(usePlainQueryData).not.toHaveBeenCalled();\n expect(result.current).toBe(mockInfiniteState);\n });\n\n it('should call notReachable for unknown data source type', () => {\n const dataSource = {\n type: 'unknown',\n name: 'test',\n fetch: jest.fn(),\n } as unknown as AnyQueryDataSource;\n const params = {id: 1};\n\n (notReachable as unknown as jest.Mock).mockImplementation(() => {\n return 'not reachable';\n });\n\n renderHook(() => useQueryData(dataSource, params));\n\n expect(usePlainQueryData).not.toHaveBeenCalled();\n expect(useInfiniteQueryData).not.toHaveBeenCalled();\n expect(notReachable).toHaveBeenCalledWith('unknown', expect.any(String));\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
+
import { renderHook } from '@testing-library/react';
|
|
3
|
+
import { getError, getStatus } from '../../../core';
|
|
4
|
+
import { useQueryResponses } from '../useQueryResponses';
|
|
5
|
+
import { useRefetchAll } from '../useRefetchAll';
|
|
6
|
+
import { useRefetchErrored } from '../useRefetchErrored';
|
|
7
|
+
jest.mock('../useRefetchAll');
|
|
8
|
+
jest.mock('../useRefetchErrored');
|
|
9
|
+
jest.mock('../../../core', function () {
|
|
10
|
+
var originalModule = jest.requireActual('../../../core');
|
|
11
|
+
return _objectSpread(_objectSpread({}, originalModule), {}, {
|
|
12
|
+
getStatus: jest.fn(),
|
|
13
|
+
getError: jest.fn()
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
describe('useQueryResponses', function () {
|
|
17
|
+
var mockRefetchAll = jest.fn();
|
|
18
|
+
var mockRefetchErrored = jest.fn();
|
|
19
|
+
beforeEach(function () {
|
|
20
|
+
jest.clearAllMocks();
|
|
21
|
+
useRefetchAll.mockReturnValue(mockRefetchAll);
|
|
22
|
+
useRefetchErrored.mockReturnValue(mockRefetchErrored);
|
|
23
|
+
getStatus.mockReturnValue('success');
|
|
24
|
+
getError.mockReturnValue(null);
|
|
25
|
+
});
|
|
26
|
+
it('should return combined status, error, and refetch functions', function () {
|
|
27
|
+
var responses = [{
|
|
28
|
+
status: 'loading',
|
|
29
|
+
error: null,
|
|
30
|
+
refetch: jest.fn()
|
|
31
|
+
}, {
|
|
32
|
+
status: 'success',
|
|
33
|
+
error: null,
|
|
34
|
+
refetch: jest.fn()
|
|
35
|
+
}, {
|
|
36
|
+
status: 'error',
|
|
37
|
+
error: {
|
|
38
|
+
message: 'Error'
|
|
39
|
+
},
|
|
40
|
+
refetch: jest.fn()
|
|
41
|
+
}];
|
|
42
|
+
var _renderHook = renderHook(function () {
|
|
43
|
+
return useQueryResponses(responses);
|
|
44
|
+
}),
|
|
45
|
+
result = _renderHook.result;
|
|
46
|
+
expect(getStatus).toHaveBeenCalledWith(responses);
|
|
47
|
+
expect(getError).toHaveBeenCalledWith(responses);
|
|
48
|
+
expect(useRefetchAll).toHaveBeenCalledWith(responses);
|
|
49
|
+
expect(useRefetchErrored).toHaveBeenCalledWith(responses);
|
|
50
|
+
expect(result.current).toEqual({
|
|
51
|
+
status: 'success',
|
|
52
|
+
error: null,
|
|
53
|
+
refetch: mockRefetchAll,
|
|
54
|
+
refetchErrored: mockRefetchErrored
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
it('should handle empty responses array', function () {
|
|
58
|
+
var _renderHook2 = renderHook(function () {
|
|
59
|
+
return useQueryResponses([]);
|
|
60
|
+
}),
|
|
61
|
+
result = _renderHook2.result;
|
|
62
|
+
expect(getStatus).toHaveBeenCalledWith([]);
|
|
63
|
+
expect(getError).toHaveBeenCalledWith([]);
|
|
64
|
+
expect(useRefetchAll).toHaveBeenCalledWith([]);
|
|
65
|
+
expect(useRefetchErrored).toHaveBeenCalledWith([]);
|
|
66
|
+
expect(result.current).toEqual({
|
|
67
|
+
status: 'success',
|
|
68
|
+
error: null,
|
|
69
|
+
refetch: mockRefetchAll,
|
|
70
|
+
refetchErrored: mockRefetchErrored
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
// #sourceMappingURL=useQueryResponses.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["renderHook","getError","getStatus","useQueryResponses","useRefetchAll","useRefetchErrored","jest","mock","originalModule","requireActual","_objectSpread","fn","describe","mockRefetchAll","mockRefetchErrored","beforeEach","clearAllMocks","mockReturnValue","it","responses","status","error","refetch","message","_renderHook","result","expect","toHaveBeenCalledWith","current","toEqual","refetchErrored","_renderHook2"],"sources":["useQueryResponses.test.ts"],"sourcesContent":["import {renderHook} from '@testing-library/react';\n\nimport {getError, getStatus} from '../../../core';\nimport type {DataLoaderStatus} from '../../../core/types/DataLoaderStatus';\nimport {useQueryResponses} from '../useQueryResponses';\nimport {useRefetchAll} from '../useRefetchAll';\nimport {useRefetchErrored} from '../useRefetchErrored';\n\njest.mock('../useRefetchAll');\njest.mock('../useRefetchErrored');\njest.mock('../../../core', () => {\n const originalModule = jest.requireActual('../../../core');\n return {\n ...originalModule,\n getStatus: jest.fn(),\n getError: jest.fn(),\n };\n});\n\ndescribe('useQueryResponses', () => {\n const mockRefetchAll = jest.fn();\n const mockRefetchErrored = jest.fn();\n\n beforeEach(() => {\n jest.clearAllMocks();\n\n (useRefetchAll as jest.Mock).mockReturnValue(mockRefetchAll);\n (useRefetchErrored as jest.Mock).mockReturnValue(mockRefetchErrored);\n (getStatus as jest.Mock).mockReturnValue('success');\n (getError as jest.Mock).mockReturnValue(null);\n });\n\n it('should return combined status, error, and refetch functions', () => {\n const responses = [\n {status: 'loading' as DataLoaderStatus, error: null, refetch: jest.fn()},\n {status: 'success' as DataLoaderStatus, error: null, refetch: jest.fn()},\n {status: 'error' as DataLoaderStatus, error: {message: 'Error'}, refetch: jest.fn()},\n ];\n\n const {result} = renderHook(() => useQueryResponses(responses));\n\n expect(getStatus).toHaveBeenCalledWith(responses);\n expect(getError).toHaveBeenCalledWith(responses);\n expect(useRefetchAll).toHaveBeenCalledWith(responses);\n expect(useRefetchErrored).toHaveBeenCalledWith(responses);\n expect(result.current).toEqual({\n status: 'success',\n error: null,\n refetch: mockRefetchAll,\n refetchErrored: mockRefetchErrored,\n });\n });\n\n it('should handle empty responses array', () => {\n const {result} = renderHook(() => useQueryResponses([]));\n\n expect(getStatus).toHaveBeenCalledWith([]);\n expect(getError).toHaveBeenCalledWith([]);\n expect(useRefetchAll).toHaveBeenCalledWith([]);\n expect(useRefetchErrored).toHaveBeenCalledWith([]);\n expect(result.current).toEqual({\n status: 'success',\n error: null,\n refetch: mockRefetchAll,\n refetchErrored: mockRefetchErrored,\n });\n });\n});\n"],"mappings":";AAAA,SAAQA,UAAU,QAAO,wBAAwB;AAEjD,SAAQC,QAAQ,EAAEC,SAAS,QAAO,eAAe;AAEjD,SAAQC,iBAAiB,QAAO,sBAAsB;AACtD,SAAQC,aAAa,QAAO,kBAAkB;AAC9C,SAAQC,iBAAiB,QAAO,sBAAsB;AAEtDC,IAAI,CAACC,IAAI,CAAC,kBAAkB,CAAC;AAC7BD,IAAI,CAACC,IAAI,CAAC,sBAAsB,CAAC;AACjCD,IAAI,CAACC,IAAI,CAAC,eAAe,EAAE,YAAM;EAC7B,IAAMC,cAAc,GAAGF,IAAI,CAACG,aAAa,CAAC,eAAe,CAAC;EAC1D,OAAAC,aAAA,CAAAA,aAAA,KACOF,cAAc;IACjBN,SAAS,EAAEI,IAAI,CAACK,EAAE,CAAC,CAAC;IACpBV,QAAQ,EAAEK,IAAI,CAACK,EAAE,CAAC;EAAC;AAE3B,CAAC,CAAC;AAEFC,QAAQ,CAAC,mBAAmB,EAAE,YAAM;EAChC,IAAMC,cAAc,GAAGP,IAAI,CAACK,EAAE,CAAC,CAAC;EAChC,IAAMG,kBAAkB,GAAGR,IAAI,CAACK,EAAE,CAAC,CAAC;EAEpCI,UAAU,CAAC,YAAM;IACbT,IAAI,CAACU,aAAa,CAAC,CAAC;IAEnBZ,aAAa,CAAea,eAAe,CAACJ,cAAc,CAAC;IAC3DR,iBAAiB,CAAeY,eAAe,CAACH,kBAAkB,CAAC;IACnEZ,SAAS,CAAee,eAAe,CAAC,SAAS,CAAC;IAClDhB,QAAQ,CAAegB,eAAe,CAAC,IAAI,CAAC;EACjD,CAAC,CAAC;EAEFC,EAAE,CAAC,6DAA6D,EAAE,YAAM;IACpE,IAAMC,SAAS,GAAG,CACd;MAACC,MAAM,EAAE,SAA6B;MAAEC,KAAK,EAAE,IAAI;MAAEC,OAAO,EAAEhB,IAAI,CAACK,EAAE,CAAC;IAAC,CAAC,EACxE;MAACS,MAAM,EAAE,SAA6B;MAAEC,KAAK,EAAE,IAAI;MAAEC,OAAO,EAAEhB,IAAI,CAACK,EAAE,CAAC;IAAC,CAAC,EACxE;MAACS,MAAM,EAAE,OAA2B;MAAEC,KAAK,EAAE;QAACE,OAAO,EAAE;MAAO,CAAC;MAAED,OAAO,EAAEhB,IAAI,CAACK,EAAE,CAAC;IAAC,CAAC,CACvF;IAED,IAAAa,WAAA,GAAiBxB,UAAU,CAAC;QAAA,OAAMG,iBAAiB,CAACgB,SAAS,CAAC;MAAA,EAAC;MAAxDM,MAAM,GAAAD,WAAA,CAANC,MAAM;IAEbC,MAAM,CAACxB,SAAS,CAAC,CAACyB,oBAAoB,CAACR,SAAS,CAAC;IACjDO,MAAM,CAACzB,QAAQ,CAAC,CAAC0B,oBAAoB,CAACR,SAAS,CAAC;IAChDO,MAAM,CAACtB,aAAa,CAAC,CAACuB,oBAAoB,CAACR,SAAS,CAAC;IACrDO,MAAM,CAACrB,iBAAiB,CAAC,CAACsB,oBAAoB,CAACR,SAAS,CAAC;IACzDO,MAAM,CAACD,MAAM,CAACG,OAAO,CAAC,CAACC,OAAO,CAAC;MAC3BT,MAAM,EAAE,SAAS;MACjBC,KAAK,EAAE,IAAI;MACXC,OAAO,EAAET,cAAc;MACvBiB,cAAc,EAAEhB;IACpB,CAAC,CAAC;EACN,CAAC,CAAC;EAEFI,EAAE,CAAC,qCAAqC,EAAE,YAAM;IAC5C,IAAAa,YAAA,GAAiB/B,UAAU,CAAC;QAAA,OAAMG,iBAAiB,CAAC,EAAE,CAAC;MAAA,EAAC;MAAjDsB,MAAM,GAAAM,YAAA,CAANN,MAAM;IAEbC,MAAM,CAACxB,SAAS,CAAC,CAACyB,oBAAoB,CAAC,EAAE,CAAC;IAC1CD,MAAM,CAACzB,QAAQ,CAAC,CAAC0B,oBAAoB,CAAC,EAAE,CAAC;IACzCD,MAAM,CAACtB,aAAa,CAAC,CAACuB,oBAAoB,CAAC,EAAE,CAAC;IAC9CD,MAAM,CAACrB,iBAAiB,CAAC,CAACsB,oBAAoB,CAAC,EAAE,CAAC;IAClDD,MAAM,CAACD,MAAM,CAACG,OAAO,CAAC,CAACC,OAAO,CAAC;MAC3BT,MAAM,EAAE,SAAS;MACjBC,KAAK,EAAE,IAAI;MACXC,OAAO,EAAET,cAAc;MACvBiB,cAAc,EAAEhB;IACpB,CAAC,CAAC;EACN,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { act, renderHook } from '@testing-library/react';
|
|
2
|
+
import { useRefetchAll } from '../useRefetchAll';
|
|
3
|
+
describe('useRefetchAll', function () {
|
|
4
|
+
it('should return a function that calls refetch on all states', function () {
|
|
5
|
+
var refetch1 = jest.fn();
|
|
6
|
+
var refetch2 = jest.fn();
|
|
7
|
+
var refetch3 = jest.fn();
|
|
8
|
+
var states = [{
|
|
9
|
+
refetch: refetch1
|
|
10
|
+
}, {
|
|
11
|
+
refetch: refetch2
|
|
12
|
+
}, {
|
|
13
|
+
refetch: refetch3
|
|
14
|
+
}];
|
|
15
|
+
var _renderHook = renderHook(function () {
|
|
16
|
+
return useRefetchAll(states);
|
|
17
|
+
}),
|
|
18
|
+
result = _renderHook.result;
|
|
19
|
+
expect(result.current).toEqual(expect.any(Function));
|
|
20
|
+
act(function () {
|
|
21
|
+
result.current();
|
|
22
|
+
});
|
|
23
|
+
expect(refetch1).toHaveBeenCalledTimes(1);
|
|
24
|
+
expect(refetch2).toHaveBeenCalledTimes(1);
|
|
25
|
+
expect(refetch3).toHaveBeenCalledTimes(1);
|
|
26
|
+
});
|
|
27
|
+
it('should handle empty states array', function () {
|
|
28
|
+
var _renderHook2 = renderHook(function () {
|
|
29
|
+
return useRefetchAll([]);
|
|
30
|
+
}),
|
|
31
|
+
result = _renderHook2.result;
|
|
32
|
+
act(function () {
|
|
33
|
+
result.current();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
it('should memoize the refetch function when dependencies do not change', function () {
|
|
37
|
+
var refetch1 = jest.fn();
|
|
38
|
+
var refetch2 = jest.fn();
|
|
39
|
+
var states = [{
|
|
40
|
+
refetch: refetch1
|
|
41
|
+
}, {
|
|
42
|
+
refetch: refetch2
|
|
43
|
+
}];
|
|
44
|
+
var _renderHook3 = renderHook(function () {
|
|
45
|
+
return useRefetchAll(states);
|
|
46
|
+
}),
|
|
47
|
+
result = _renderHook3.result,
|
|
48
|
+
rerender = _renderHook3.rerender;
|
|
49
|
+
var firstRefetchAll = result.current;
|
|
50
|
+
rerender();
|
|
51
|
+
expect(result.current).toBe(firstRefetchAll);
|
|
52
|
+
});
|
|
53
|
+
it('should create a new refetch function when dependencies change', function () {
|
|
54
|
+
var refetch1 = jest.fn();
|
|
55
|
+
var refetch2 = jest.fn();
|
|
56
|
+
var refetch3 = jest.fn();
|
|
57
|
+
var states = [{
|
|
58
|
+
refetch: refetch1
|
|
59
|
+
}, {
|
|
60
|
+
refetch: refetch2
|
|
61
|
+
}];
|
|
62
|
+
var _renderHook4 = renderHook(function () {
|
|
63
|
+
return useRefetchAll(states);
|
|
64
|
+
}),
|
|
65
|
+
result = _renderHook4.result,
|
|
66
|
+
rerender = _renderHook4.rerender;
|
|
67
|
+
var firstRefetchAll = result.current;
|
|
68
|
+
states = [{
|
|
69
|
+
refetch: refetch1
|
|
70
|
+
}, {
|
|
71
|
+
refetch: refetch3
|
|
72
|
+
}];
|
|
73
|
+
rerender();
|
|
74
|
+
expect(result.current).not.toBe(firstRefetchAll);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
// #sourceMappingURL=useRefetchAll.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["act","renderHook","useRefetchAll","describe","it","refetch1","jest","fn","refetch2","refetch3","states","refetch","_renderHook","result","expect","current","toEqual","any","Function","toHaveBeenCalledTimes","_renderHook2","_renderHook3","rerender","firstRefetchAll","toBe","_renderHook4","not"],"sources":["useRefetchAll.test.ts"],"sourcesContent":["import {act, renderHook} from '@testing-library/react';\n\nimport {useRefetchAll} from '../useRefetchAll';\n\ndescribe('useRefetchAll', () => {\n it('should return a function that calls refetch on all states', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n const refetch3 = jest.fn();\n\n const states = [{refetch: refetch1}, {refetch: refetch2}, {refetch: refetch3}];\n\n const {result} = renderHook(() => useRefetchAll(states));\n\n expect(result.current).toEqual(expect.any(Function));\n\n act(() => {\n result.current();\n });\n\n expect(refetch1).toHaveBeenCalledTimes(1);\n expect(refetch2).toHaveBeenCalledTimes(1);\n expect(refetch3).toHaveBeenCalledTimes(1);\n });\n\n it('should handle empty states array', () => {\n const {result} = renderHook(() => useRefetchAll([]));\n\n act(() => {\n result.current();\n });\n });\n\n it('should memoize the refetch function when dependencies do not change', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n\n const states = [{refetch: refetch1}, {refetch: refetch2}];\n\n const {result, rerender} = renderHook(() => useRefetchAll(states));\n\n const firstRefetchAll = result.current;\n\n rerender();\n\n expect(result.current).toBe(firstRefetchAll);\n });\n\n it('should create a new refetch function when dependencies change', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n const refetch3 = jest.fn();\n\n let states = [{refetch: refetch1}, {refetch: refetch2}];\n\n const {result, rerender} = renderHook(() => useRefetchAll(states));\n\n const firstRefetchAll = result.current;\n\n states = [{refetch: refetch1}, {refetch: refetch3}];\n\n rerender();\n\n expect(result.current).not.toBe(firstRefetchAll);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { act, renderHook } from '@testing-library/react';
|
|
2
|
+
import { useRefetchErrored } from '../useRefetchErrored';
|
|
3
|
+
describe('useRefetchErrored', function () {
|
|
4
|
+
it('should return a function that calls refetch only on states with errors', function () {
|
|
5
|
+
var refetch1 = jest.fn();
|
|
6
|
+
var refetch2 = jest.fn();
|
|
7
|
+
var refetch3 = jest.fn();
|
|
8
|
+
var states = [{
|
|
9
|
+
error: {
|
|
10
|
+
message: 'Error 1'
|
|
11
|
+
},
|
|
12
|
+
refetch: refetch1
|
|
13
|
+
}, {
|
|
14
|
+
error: null,
|
|
15
|
+
refetch: refetch2
|
|
16
|
+
}, {
|
|
17
|
+
error: {
|
|
18
|
+
message: 'Error 3'
|
|
19
|
+
},
|
|
20
|
+
refetch: refetch3
|
|
21
|
+
}];
|
|
22
|
+
var _renderHook = renderHook(function () {
|
|
23
|
+
return useRefetchErrored(states);
|
|
24
|
+
}),
|
|
25
|
+
result = _renderHook.result;
|
|
26
|
+
expect(result.current).toEqual(expect.any(Function));
|
|
27
|
+
act(function () {
|
|
28
|
+
result.current();
|
|
29
|
+
});
|
|
30
|
+
expect(refetch1).toHaveBeenCalledTimes(1);
|
|
31
|
+
expect(refetch2).toHaveBeenCalledTimes(0);
|
|
32
|
+
expect(refetch3).toHaveBeenCalledTimes(1);
|
|
33
|
+
});
|
|
34
|
+
it('should not call refetch if no states have errors', function () {
|
|
35
|
+
var refetch1 = jest.fn();
|
|
36
|
+
var refetch2 = jest.fn();
|
|
37
|
+
var states = [{
|
|
38
|
+
error: null,
|
|
39
|
+
refetch: refetch1
|
|
40
|
+
}, {
|
|
41
|
+
error: null,
|
|
42
|
+
refetch: refetch2
|
|
43
|
+
}];
|
|
44
|
+
var _renderHook2 = renderHook(function () {
|
|
45
|
+
return useRefetchErrored(states);
|
|
46
|
+
}),
|
|
47
|
+
result = _renderHook2.result;
|
|
48
|
+
act(function () {
|
|
49
|
+
result.current();
|
|
50
|
+
});
|
|
51
|
+
expect(refetch1).not.toHaveBeenCalled();
|
|
52
|
+
expect(refetch2).not.toHaveBeenCalled();
|
|
53
|
+
});
|
|
54
|
+
it('should handle empty states array', function () {
|
|
55
|
+
var _renderHook3 = renderHook(function () {
|
|
56
|
+
return useRefetchErrored([]);
|
|
57
|
+
}),
|
|
58
|
+
result = _renderHook3.result;
|
|
59
|
+
act(function () {
|
|
60
|
+
result.current();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
it('should memoize the refetch function when dependencies do not change', function () {
|
|
64
|
+
var refetch1 = jest.fn();
|
|
65
|
+
var refetch2 = jest.fn();
|
|
66
|
+
var states = [{
|
|
67
|
+
error: {
|
|
68
|
+
message: 'Error 1'
|
|
69
|
+
},
|
|
70
|
+
refetch: refetch1
|
|
71
|
+
}, {
|
|
72
|
+
error: null,
|
|
73
|
+
refetch: refetch2
|
|
74
|
+
}];
|
|
75
|
+
var _renderHook4 = renderHook(function () {
|
|
76
|
+
return useRefetchErrored(states);
|
|
77
|
+
}),
|
|
78
|
+
result = _renderHook4.result,
|
|
79
|
+
rerender = _renderHook4.rerender;
|
|
80
|
+
var firstRefetchErrored = result.current;
|
|
81
|
+
rerender();
|
|
82
|
+
expect(result.current).toBe(firstRefetchErrored);
|
|
83
|
+
});
|
|
84
|
+
it('should create a new refetch function when dependencies change', function () {
|
|
85
|
+
var refetch1 = jest.fn();
|
|
86
|
+
var refetch2 = jest.fn();
|
|
87
|
+
var states = [{
|
|
88
|
+
error: {
|
|
89
|
+
message: 'Error 1'
|
|
90
|
+
},
|
|
91
|
+
refetch: refetch1
|
|
92
|
+
}, {
|
|
93
|
+
error: null,
|
|
94
|
+
refetch: refetch2
|
|
95
|
+
}];
|
|
96
|
+
var _renderHook5 = renderHook(function () {
|
|
97
|
+
return useRefetchErrored(states);
|
|
98
|
+
}),
|
|
99
|
+
result = _renderHook5.result,
|
|
100
|
+
rerender = _renderHook5.rerender;
|
|
101
|
+
var firstRefetchErrored = result.current;
|
|
102
|
+
states = [{
|
|
103
|
+
error: {
|
|
104
|
+
message: 'New Error 1'
|
|
105
|
+
},
|
|
106
|
+
refetch: refetch1
|
|
107
|
+
}, {
|
|
108
|
+
error: null,
|
|
109
|
+
refetch: refetch2
|
|
110
|
+
}];
|
|
111
|
+
rerender();
|
|
112
|
+
expect(result.current).not.toBe(firstRefetchErrored);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
// #sourceMappingURL=useRefetchErrored.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["act","renderHook","useRefetchErrored","describe","it","refetch1","jest","fn","refetch2","refetch3","states","error","message","refetch","_renderHook","result","expect","current","toEqual","any","Function","toHaveBeenCalledTimes","_renderHook2","not","toHaveBeenCalled","_renderHook3","_renderHook4","rerender","firstRefetchErrored","toBe","_renderHook5"],"sources":["useRefetchErrored.test.ts"],"sourcesContent":["import {act, renderHook} from '@testing-library/react';\n\nimport {useRefetchErrored} from '../useRefetchErrored';\n\ndescribe('useRefetchErrored', () => {\n it('should return a function that calls refetch only on states with errors', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n const refetch3 = jest.fn();\n\n const states = [\n {error: {message: 'Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n {error: {message: 'Error 3'}, refetch: refetch3},\n ];\n\n const {result} = renderHook(() => useRefetchErrored(states));\n\n expect(result.current).toEqual(expect.any(Function));\n\n act(() => {\n result.current();\n });\n\n expect(refetch1).toHaveBeenCalledTimes(1);\n expect(refetch2).toHaveBeenCalledTimes(0);\n expect(refetch3).toHaveBeenCalledTimes(1);\n });\n\n it('should not call refetch if no states have errors', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n\n const states = [\n {error: null, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n const {result} = renderHook(() => useRefetchErrored(states));\n\n act(() => {\n result.current();\n });\n\n expect(refetch1).not.toHaveBeenCalled();\n expect(refetch2).not.toHaveBeenCalled();\n });\n\n it('should handle empty states array', () => {\n const {result} = renderHook(() => useRefetchErrored([]));\n\n act(() => {\n result.current();\n });\n });\n\n it('should memoize the refetch function when dependencies do not change', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n\n const states = [\n {error: {message: 'Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n const {result, rerender} = renderHook(() => useRefetchErrored(states));\n\n const firstRefetchErrored = result.current;\n\n rerender();\n\n expect(result.current).toBe(firstRefetchErrored);\n });\n\n it('should create a new refetch function when dependencies change', () => {\n const refetch1 = jest.fn();\n const refetch2 = jest.fn();\n\n let states = [\n {error: {message: 'Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n const {result, rerender} = renderHook(() => useRefetchErrored(states));\n\n const firstRefetchErrored = result.current;\n\n states = [\n {error: {message: 'New Error 1'}, refetch: refetch1},\n {error: null, refetch: refetch2},\n ];\n\n rerender();\n\n expect(result.current).not.toBe(firstRefetchErrored);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { skipToken } from '@tanstack/react-query';
|
|
2
|
+
import { renderHook } from '@testing-library/react';
|
|
3
|
+
import { useRefetchInterval } from '../useRefetchInterval';
|
|
4
|
+
describe('useRefetchInterval', function () {
|
|
5
|
+
it('should return undefined when no refetchInterval is provided', function () {
|
|
6
|
+
var _renderHook = renderHook(function () {
|
|
7
|
+
return useRefetchInterval();
|
|
8
|
+
}),
|
|
9
|
+
result = _renderHook.result;
|
|
10
|
+
expect(result.current.refetchInterval).toBeUndefined();
|
|
11
|
+
expect(result.current.queryFn).toBeUndefined();
|
|
12
|
+
});
|
|
13
|
+
it('should return the provided refetchInterval when it is a number', function () {
|
|
14
|
+
var interval = 5000;
|
|
15
|
+
var _renderHook2 = renderHook(function () {
|
|
16
|
+
return useRefetchInterval(interval);
|
|
17
|
+
}),
|
|
18
|
+
result = _renderHook2.result;
|
|
19
|
+
expect(result.current.refetchInterval).toBe(interval);
|
|
20
|
+
});
|
|
21
|
+
it('should return the provided refetchInterval when it is false', function () {
|
|
22
|
+
var interval = false;
|
|
23
|
+
var _renderHook3 = renderHook(function () {
|
|
24
|
+
return useRefetchInterval(interval);
|
|
25
|
+
}),
|
|
26
|
+
result = _renderHook3.result;
|
|
27
|
+
expect(result.current.refetchInterval).toBe(interval);
|
|
28
|
+
});
|
|
29
|
+
it('should wrap the provided refetchInterval function', function () {
|
|
30
|
+
var mockQuery = {
|
|
31
|
+
state: {
|
|
32
|
+
data: {
|
|
33
|
+
value: 42
|
|
34
|
+
},
|
|
35
|
+
status: 'success'
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var refetchInterval = jest.fn(function (_query, count) {
|
|
39
|
+
return count > 3 ? false : 1000;
|
|
40
|
+
});
|
|
41
|
+
var _renderHook4 = renderHook(function () {
|
|
42
|
+
return useRefetchInterval(refetchInterval);
|
|
43
|
+
}),
|
|
44
|
+
result = _renderHook4.result;
|
|
45
|
+
expect(result.current.refetchInterval).toEqual(expect.any(Function));
|
|
46
|
+
var resultInterval = result.current.refetchInterval(mockQuery);
|
|
47
|
+
expect(refetchInterval).toHaveBeenCalledWith(mockQuery, 0);
|
|
48
|
+
expect(resultInterval).toBe(1000);
|
|
49
|
+
});
|
|
50
|
+
it('should wrap the provided queryFn and increment count on each call', function () {
|
|
51
|
+
var mockContext = {};
|
|
52
|
+
var mockQuery = {
|
|
53
|
+
state: {
|
|
54
|
+
data: {
|
|
55
|
+
value: 42
|
|
56
|
+
},
|
|
57
|
+
status: 'success'
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
var queryFn = jest.fn().mockResolvedValue({
|
|
61
|
+
value: 42
|
|
62
|
+
});
|
|
63
|
+
var refetchInterval = jest.fn(function (_query, count) {
|
|
64
|
+
return count > 3 ? false : 1000;
|
|
65
|
+
});
|
|
66
|
+
var _renderHook5 = renderHook(function () {
|
|
67
|
+
return useRefetchInterval(refetchInterval, queryFn);
|
|
68
|
+
}),
|
|
69
|
+
result = _renderHook5.result;
|
|
70
|
+
expect(result.current.queryFn).toEqual(expect.any(Function));
|
|
71
|
+
expect(result.current.refetchInterval).toEqual(expect.any(Function));
|
|
72
|
+
result.current.queryFn(mockContext);
|
|
73
|
+
result.current.refetchInterval(mockQuery);
|
|
74
|
+
result.current.queryFn(mockContext);
|
|
75
|
+
result.current.refetchInterval(mockQuery);
|
|
76
|
+
result.current.queryFn(mockContext);
|
|
77
|
+
result.current.refetchInterval(mockQuery);
|
|
78
|
+
result.current.queryFn(mockContext);
|
|
79
|
+
result.current.refetchInterval(mockQuery);
|
|
80
|
+
expect(queryFn.mock.calls).toEqual([[mockContext], [mockContext], [mockContext], [mockContext]]);
|
|
81
|
+
expect(refetchInterval.mock.calls).toEqual([[mockQuery, 1], [mockQuery, 2], [mockQuery, 3], [mockQuery, 4]]);
|
|
82
|
+
expect(refetchInterval.mock.results).toEqual([{
|
|
83
|
+
type: 'return',
|
|
84
|
+
value: 1000
|
|
85
|
+
}, {
|
|
86
|
+
type: 'return',
|
|
87
|
+
value: 1000
|
|
88
|
+
}, {
|
|
89
|
+
type: 'return',
|
|
90
|
+
value: 1000
|
|
91
|
+
}, {
|
|
92
|
+
type: 'return',
|
|
93
|
+
value: false
|
|
94
|
+
}]);
|
|
95
|
+
});
|
|
96
|
+
it('should return the provided queryFn when it is not a function', function () {
|
|
97
|
+
var _renderHook6 = renderHook(function () {
|
|
98
|
+
return useRefetchInterval(undefined, skipToken);
|
|
99
|
+
}),
|
|
100
|
+
result = _renderHook6.result;
|
|
101
|
+
expect(result.current.queryFn).toBe(skipToken);
|
|
102
|
+
});
|
|
103
|
+
it('should memoize the wrapped functions', function () {
|
|
104
|
+
var refetchInterval = jest.fn(function () {
|
|
105
|
+
return 1000;
|
|
106
|
+
});
|
|
107
|
+
var queryFn = jest.fn().mockResolvedValue({
|
|
108
|
+
value: 42
|
|
109
|
+
});
|
|
110
|
+
var _renderHook7 = renderHook(function () {
|
|
111
|
+
return useRefetchInterval(refetchInterval, queryFn);
|
|
112
|
+
}),
|
|
113
|
+
result = _renderHook7.result,
|
|
114
|
+
rerender = _renderHook7.rerender;
|
|
115
|
+
var firstRefetchInterval = result.current.refetchInterval;
|
|
116
|
+
var firstQueryFn = result.current.queryFn;
|
|
117
|
+
rerender();
|
|
118
|
+
expect(result.current.refetchInterval).toBe(firstRefetchInterval);
|
|
119
|
+
expect(result.current.queryFn).toBe(firstQueryFn);
|
|
120
|
+
});
|
|
121
|
+
it('should create new functions when dependencies change', function () {
|
|
122
|
+
var refetchInterval1 = jest.fn(function () {
|
|
123
|
+
return 1000;
|
|
124
|
+
});
|
|
125
|
+
var queryFn1 = jest.fn().mockResolvedValue({
|
|
126
|
+
value: 42
|
|
127
|
+
});
|
|
128
|
+
var _renderHook8 = renderHook(function (props) {
|
|
129
|
+
return useRefetchInterval(props.refetchInterval, props.queryFn);
|
|
130
|
+
}, {
|
|
131
|
+
initialProps: {
|
|
132
|
+
refetchInterval: refetchInterval1,
|
|
133
|
+
queryFn: queryFn1
|
|
134
|
+
}
|
|
135
|
+
}),
|
|
136
|
+
result = _renderHook8.result,
|
|
137
|
+
rerender = _renderHook8.rerender;
|
|
138
|
+
var firstRefetchInterval = result.current.refetchInterval;
|
|
139
|
+
var firstQueryFn = result.current.queryFn;
|
|
140
|
+
var refetchInterval2 = jest.fn(function () {
|
|
141
|
+
return 2000;
|
|
142
|
+
});
|
|
143
|
+
var queryFn2 = jest.fn().mockResolvedValue({
|
|
144
|
+
value: 100
|
|
145
|
+
});
|
|
146
|
+
rerender({
|
|
147
|
+
refetchInterval: refetchInterval2,
|
|
148
|
+
queryFn: queryFn2
|
|
149
|
+
});
|
|
150
|
+
expect(result.current.refetchInterval).not.toBe(firstRefetchInterval);
|
|
151
|
+
expect(result.current.queryFn).not.toBe(firstQueryFn);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
// #sourceMappingURL=useRefetchInterval.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["skipToken","renderHook","useRefetchInterval","describe","it","_renderHook","result","expect","current","refetchInterval","toBeUndefined","queryFn","interval","_renderHook2","toBe","_renderHook3","mockQuery","state","data","value","status","jest","fn","_query","count","_renderHook4","toEqual","any","Function","resultInterval","toHaveBeenCalledWith","mockContext","mockResolvedValue","_renderHook5","mock","calls","results","type","_renderHook6","undefined","_renderHook7","rerender","firstRefetchInterval","firstQueryFn","refetchInterval1","queryFn1","_renderHook8","props","initialProps","refetchInterval2","queryFn2","not"],"sources":["useRefetchInterval.test.ts"],"sourcesContent":["import {type Query, skipToken} from '@tanstack/react-query';\nimport {renderHook} from '@testing-library/react';\n\nimport {useRefetchInterval} from '../useRefetchInterval';\n\ndescribe('useRefetchInterval', () => {\n it('should return undefined when no refetchInterval is provided', () => {\n const {result} = renderHook(() => useRefetchInterval());\n\n expect(result.current.refetchInterval).toBeUndefined();\n expect(result.current.queryFn).toBeUndefined();\n });\n\n it('should return the provided refetchInterval when it is a number', () => {\n const interval = 5000;\n const {result} = renderHook(() => useRefetchInterval(interval));\n\n expect(result.current.refetchInterval).toBe(interval);\n });\n\n it('should return the provided refetchInterval when it is false', () => {\n const interval = false;\n const {result} = renderHook(() => useRefetchInterval(interval));\n\n expect(result.current.refetchInterval).toBe(interval);\n });\n\n it('should wrap the provided refetchInterval function', () => {\n const mockQuery = {\n state: {\n data: {value: 42},\n status: 'success',\n },\n } as Query;\n\n const refetchInterval = jest.fn((_query, count) => {\n return count > 3 ? false : 1000;\n });\n\n const {result} = renderHook(() => useRefetchInterval(refetchInterval));\n\n expect(result.current.refetchInterval).toEqual(expect.any(Function));\n\n const resultInterval = (result.current.refetchInterval as Function)(mockQuery);\n\n expect(refetchInterval).toHaveBeenCalledWith(mockQuery, 0);\n expect(resultInterval).toBe(1000);\n });\n\n it('should wrap the provided queryFn and increment count on each call', () => {\n const mockContext = {};\n const mockQuery = {\n state: {\n data: {value: 42},\n status: 'success',\n },\n } as Query;\n\n const queryFn = jest.fn().mockResolvedValue({value: 42});\n const refetchInterval = jest.fn((_query, count) => {\n return count > 3 ? false : 1000;\n });\n\n const {result} = renderHook(() => useRefetchInterval(refetchInterval, queryFn));\n\n expect(result.current.queryFn).toEqual(expect.any(Function));\n expect(result.current.refetchInterval).toEqual(expect.any(Function));\n\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n (result.current.queryFn as Function)(mockContext);\n (result.current.refetchInterval as Function)(mockQuery);\n\n expect(queryFn.mock.calls).toEqual([\n [mockContext],\n [mockContext],\n [mockContext],\n [mockContext],\n ]);\n expect(refetchInterval.mock.calls).toEqual([\n [mockQuery, 1],\n [mockQuery, 2],\n [mockQuery, 3],\n [mockQuery, 4],\n ]);\n expect(refetchInterval.mock.results).toEqual([\n {type: 'return', value: 1000},\n {type: 'return', value: 1000},\n {type: 'return', value: 1000},\n {type: 'return', value: false},\n ]);\n });\n\n it('should return the provided queryFn when it is not a function', () => {\n const {result} = renderHook(() => useRefetchInterval(undefined, skipToken));\n\n expect(result.current.queryFn).toBe(skipToken);\n });\n\n it('should memoize the wrapped functions', () => {\n const refetchInterval = jest.fn(() => 1000);\n const queryFn = jest.fn().mockResolvedValue({value: 42});\n\n const {result, rerender} = renderHook(() => useRefetchInterval(refetchInterval, queryFn));\n\n const firstRefetchInterval = result.current.refetchInterval;\n const firstQueryFn = result.current.queryFn;\n\n rerender();\n\n expect(result.current.refetchInterval).toBe(firstRefetchInterval);\n expect(result.current.queryFn).toBe(firstQueryFn);\n });\n\n it('should create new functions when dependencies change', () => {\n const refetchInterval1 = jest.fn(() => 1000);\n const queryFn1 = jest.fn().mockResolvedValue({value: 42});\n\n const {result, rerender} = renderHook(\n (props) => useRefetchInterval(props.refetchInterval, props.queryFn),\n {\n initialProps: {\n refetchInterval: refetchInterval1,\n queryFn: queryFn1,\n },\n },\n );\n\n const firstRefetchInterval = result.current.refetchInterval;\n const firstQueryFn = result.current.queryFn;\n\n const refetchInterval2 = jest.fn(() => 2000);\n const queryFn2 = jest.fn().mockResolvedValue({value: 100});\n\n rerender({\n refetchInterval: refetchInterval2,\n queryFn: queryFn2,\n });\n\n expect(result.current.refetchInterval).not.toBe(firstRefetchInterval);\n expect(result.current.queryFn).not.toBe(firstQueryFn);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,4 +4,4 @@ export interface UseRefetchIntervalResult<TQueryFnData = unknown, TError = Defau
|
|
|
4
4
|
refetchInterval?: number | false | ((query: Query<TQueryFnData, TError, TQueryData, TQueryKey>) => number | false | undefined);
|
|
5
5
|
queryFn?: QueryFunction<TQueryFnData, TQueryKey, TPageParam> | SkipToken;
|
|
6
6
|
}
|
|
7
|
-
export declare const useRefetchInterval: <TQueryFnData = unknown, TError =
|
|
7
|
+
export declare const useRefetchInterval: <TQueryFnData = unknown, TError = DefaultError, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = never>(refetchInterval?: RefetchInterval<TQueryFnData, TError, TQueryData, TQueryKey>, queryFn?: QueryFunction<TQueryFnData, TQueryKey, TPageParam> | SkipToken) => UseRefetchIntervalResult<TQueryFnData, TError, TQueryData, TQueryKey, TPageParam>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { InfiniteQueryDataSource } from './types';
|
|
2
|
-
export declare const makeInfiniteQueryDataSource: <TParams, TRequest, TResponse, TData, TError
|
|
2
|
+
export declare const makeInfiniteQueryDataSource: <TParams, TRequest, TResponse, TData, TError>(config: Omit<InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>, "type">) => InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["makeInfiniteQueryDataSource","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {InfiniteQueryDataSource} from './types';\n\nexport const makeInfiniteQueryDataSource =
|
|
1
|
+
{"version":3,"names":["makeInfiniteQueryDataSource","config","_objectSpread","type"],"sources":["factory.ts"],"sourcesContent":["import type {InfiniteQueryDataSource} from './types';\n\nexport const makeInfiniteQueryDataSource = <TParams, TRequest, TResponse, TData, TError>(\n config: Omit<InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError>, 'type'>,\n): InfiniteQueryDataSource<TParams, TRequest, TResponse, TData, TError> => ({\n ...config,\n type: 'infinite',\n});\n"],"mappings":";AAEA,OAAO,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA2BA,CACpCC,MAA0F;EAAA,OAAAC,aAAA,CAAAA,aAAA,KAEvFD,MAAM;IACTE,IAAI,EAAE;EAAU;AAAA,CAClB","ignoreList":[]}
|
|
@@ -2,9 +2,10 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["queryFn", "refetchInterval"];
|
|
4
4
|
import { useMemo } from 'react';
|
|
5
|
-
import { useInfiniteQuery } from '@tanstack/react-query';
|
|
5
|
+
import { skipToken, useInfiniteQuery } from '@tanstack/react-query';
|
|
6
6
|
import { useRefetchInterval } from '../../hooks/useRefetchInterval';
|
|
7
7
|
import { normalizeStatus } from '../../utils/normalizeStatus';
|
|
8
|
+
import { warnDisabledRefetch } from '../../utils/warnDisabledRefetch';
|
|
8
9
|
import { composeOptions } from './utils';
|
|
9
10
|
var useInfiniteQueryDataOptions = function useInfiniteQueryDataOptions(composedOptions) {
|
|
10
11
|
var queryFnOption = composedOptions.queryFn,
|
|
@@ -26,11 +27,13 @@ export var useInfiniteQueryData = function useInfiniteQueryData(context, dataSou
|
|
|
26
27
|
var _state$data$pages$fla, _state$data;
|
|
27
28
|
return (_state$data$pages$fla = (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.pages.flat(1)) !== null && _state$data$pages$fla !== void 0 ? _state$data$pages$fla : [];
|
|
28
29
|
}, [state.data]);
|
|
30
|
+
var isDisabled = composedOptions.enabled === false || composedOptions.queryFn === skipToken;
|
|
29
31
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
30
32
|
status: normalizeStatus(state.status, state.fetchStatus),
|
|
31
33
|
data: transformedData,
|
|
32
34
|
originalStatus: state.status,
|
|
33
|
-
originalData: state.data
|
|
35
|
+
originalData: state.data,
|
|
36
|
+
refetch: isDisabled ? warnDisabledRefetch : state.refetch
|
|
34
37
|
});
|
|
35
38
|
};
|
|
36
39
|
// #sourceMappingURL=hooks.js.map
|