@gravity-ui/data-source 0.9.0 → 0.10.0-alpha.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/build/cjs/core/types/DataSource.d.ts +8 -8
- package/build/cjs/core/types/DataSource.js.map +1 -1
- package/build/cjs/react/components/AsyncBoundary/AsyncBoundary.d.ts +3 -0
- package/build/cjs/react/components/AsyncBoundary/AsyncBoundary.js +35 -0
- package/build/cjs/react/components/AsyncBoundary/AsyncBoundary.js.map +1 -0
- package/build/cjs/react/components/AsyncBoundary/index.d.ts +3 -0
- package/build/cjs/react/components/AsyncBoundary/index.js +20 -0
- package/build/cjs/react/components/AsyncBoundary/index.js.map +1 -0
- package/build/cjs/react/components/AsyncBoundary/types.d.ts +13 -0
- package/build/cjs/react/components/AsyncBoundary/types.js +6 -0
- package/build/cjs/react/components/AsyncBoundary/types.js.map +1 -0
- package/build/cjs/react/components/AsyncBoundary/withAsyncBoundary.d.ts +3 -0
- package/build/cjs/react/components/AsyncBoundary/withAsyncBoundary.js +26 -0
- package/build/cjs/react/components/AsyncBoundary/withAsyncBoundary.js.map +1 -0
- package/build/cjs/react/components/EmptyView/EmptyView.d.ts +2 -0
- package/build/cjs/react/components/EmptyView/EmptyView.js +10 -0
- package/build/cjs/react/components/EmptyView/EmptyView.js.map +1 -0
- package/build/cjs/react/components/EmptyView/index.d.ts +1 -0
- package/build/cjs/react/components/EmptyView/index.js +13 -0
- package/build/cjs/react/components/EmptyView/index.js.map +1 -0
- package/build/cjs/react/components/types.d.ts +1 -1
- package/build/cjs/react/components/types.js.map +1 -1
- package/build/cjs/react/index.d.ts +5 -3
- package/build/cjs/react/index.js +27 -3
- package/build/cjs/react/index.js.map +1 -1
- package/build/cjs/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.d.ts +3 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js +23 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js.map +1 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/index.d.ts +3 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/index.js +20 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/index.js.map +1 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/types.d.ts +8 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/types.js +6 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/types.js.map +1 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.d.ts +3 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js +26 -0
- package/build/cjs/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js.map +1 -0
- package/build/cjs/react-query/hooks/useSuspenseQueryData.d.ts +9 -0
- package/build/cjs/react-query/hooks/useSuspenseQueryData.js +22 -0
- package/build/cjs/react-query/hooks/useSuspenseQueryData.js.map +1 -0
- package/build/cjs/react-query/index.d.ts +2 -0
- package/build/cjs/react-query/index.js +35 -0
- package/build/cjs/react-query/index.js.map +1 -1
- package/build/esm/core/types/DataSource.d.ts +8 -8
- package/build/esm/core/types/DataSource.js.map +1 -1
- package/build/esm/react/components/AsyncBoundary/AsyncBoundary.d.ts +3 -0
- package/build/esm/react/components/AsyncBoundary/AsyncBoundary.js +28 -0
- package/build/esm/react/components/AsyncBoundary/AsyncBoundary.js.map +1 -0
- package/build/esm/react/components/AsyncBoundary/index.d.ts +3 -0
- package/build/esm/react/components/AsyncBoundary/index.js +3 -0
- package/build/esm/react/components/AsyncBoundary/index.js.map +1 -0
- package/build/esm/react/components/AsyncBoundary/types.d.ts +13 -0
- package/build/esm/react/components/AsyncBoundary/types.js +2 -0
- package/build/esm/react/components/AsyncBoundary/types.js.map +1 -0
- package/build/esm/react/components/AsyncBoundary/withAsyncBoundary.d.ts +3 -0
- package/build/esm/react/components/AsyncBoundary/withAsyncBoundary.js +19 -0
- package/build/esm/react/components/AsyncBoundary/withAsyncBoundary.js.map +1 -0
- package/build/esm/react/components/EmptyView/EmptyView.d.ts +2 -0
- package/build/esm/react/components/EmptyView/EmptyView.js +4 -0
- package/build/esm/react/components/EmptyView/EmptyView.js.map +1 -0
- package/build/esm/react/components/EmptyView/index.d.ts +1 -0
- package/build/esm/react/components/EmptyView/index.js +2 -0
- package/build/esm/react/components/EmptyView/index.js.map +1 -0
- package/build/esm/react/components/types.d.ts +1 -1
- package/build/esm/react/components/types.js.map +1 -1
- package/build/esm/react/index.d.ts +5 -3
- package/build/esm/react/index.js +4 -2
- package/build/esm/react/index.js.map +1 -1
- package/build/esm/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.d.ts +3 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js +16 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js.map +1 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/index.d.ts +3 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/index.js +3 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/index.js.map +1 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/types.d.ts +8 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/types.js +2 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/types.js.map +1 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.d.ts +3 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js +19 -0
- package/build/esm/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js.map +1 -0
- package/build/esm/react-query/hooks/useSuspenseQueryData.d.ts +9 -0
- package/build/esm/react-query/hooks/useSuspenseQueryData.js +15 -0
- package/build/esm/react-query/hooks/useSuspenseQueryData.js.map +1 -0
- package/build/esm/react-query/index.d.ts +2 -0
- package/build/esm/react-query/index.js +2 -0
- package/build/esm/react-query/index.js.map +1 -1
- package/build/plugin/esbuild.d.mts +7 -0
- package/build/plugin/esbuild.mjs +6 -0
- package/build/plugin/factory-2tSt4Rte.mjs +513 -0
- package/build/plugin/index-mY40Sgl5.d.mts +24 -0
- package/build/plugin/index.d.mts +7 -0
- package/build/plugin/index.mjs +6 -0
- package/build/plugin/rollup.d.mts +6 -0
- package/build/plugin/rollup.mjs +6 -0
- package/build/plugin/rspack.d.mts +7 -0
- package/build/plugin/rspack.mjs +6 -0
- package/build/plugin/typings/client.d.ts +11 -0
- package/build/plugin/vite.d.mts +6 -0
- package/build/plugin/vite.mjs +6 -0
- package/build/plugin/webpack.d.mts +7 -0
- package/build/plugin/webpack.mjs +6 -0
- package/package.json +54 -5
- package/build/cjs/core/utils/__tests__/composeFullKey.test.js +0 -34
- package/build/cjs/core/utils/__tests__/composeFullKey.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/composeKey.test.js +0 -32
- package/build/cjs/core/utils/__tests__/composeKey.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/getError.test.js +0 -31
- package/build/cjs/core/utils/__tests__/getError.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/getStatus.test.js +0 -49
- package/build/cjs/core/utils/__tests__/getStatus.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/hasTag.test.js +0 -31
- package/build/cjs/core/utils/__tests__/hasTag.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/mergeStatuses.test.js +0 -25
- package/build/cjs/core/utils/__tests__/mergeStatuses.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/skipContext.test.js +0 -70
- package/build/cjs/core/utils/__tests__/skipContext.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/withCancellation.test.js +0 -106
- package/build/cjs/core/utils/__tests__/withCancellation.test.js.map +0 -1
- package/build/cjs/core/utils/__tests__/withCatch.test.js +0 -208
- package/build/cjs/core/utils/__tests__/withCatch.test.js.map +0 -1
- package/build/cjs/react/__tests__/DataManagerContext.test.js +0 -47
- package/build/cjs/react/__tests__/DataManagerContext.test.js.map +0 -1
- package/build/cjs/react/__tests__/withDataManager.test.js +0 -61
- package/build/cjs/react/__tests__/withDataManager.test.js.map +0 -1
- package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +0 -187
- package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +0 -1
- package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js +0 -119
- package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js.map +0 -1
- package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js +0 -177
- package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js.map +0 -1
- package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js +0 -100
- package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js.map +0 -1
- package/build/cjs/react-query/__tests__/subscriptions.test.js +0 -1180
- package/build/cjs/react-query/__tests__/subscriptions.test.js.map +0 -1
- package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js +0 -659
- package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js.map +0 -1
- package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js +0 -229
- package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js.map +0 -1
- package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js +0 -55
- package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js.map +0 -1
- package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js +0 -230
- package/build/cjs/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +0 -1
- package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js +0 -97
- package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js.map +0 -1
- package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js +0 -77
- package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js.map +0 -1
- package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js +0 -79
- package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js.map +0 -1
- package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js +0 -117
- package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js.map +0 -1
- package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js +0 -156
- package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js.map +0 -1
- package/build/cjs/react-query/utils/__tests__/checkMutationObjectsKeys.test.js +0 -295
- package/build/cjs/react-query/utils/__tests__/checkMutationObjectsKeys.test.js.map +0 -1
- package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js +0 -27
- package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js.map +0 -1
- package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js +0 -76
- package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +0 -1
- package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js +0 -30
- package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js.map +0 -1
- package/build/cjs/react-query/utils/__tests__/notReachable.test.js +0 -35
- package/build/cjs/react-query/utils/__tests__/notReachable.test.js.map +0 -1
- package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js +0 -27
- package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js.map +0 -1
- package/build/cjs/setupTests.d.ts +0 -1
- package/build/cjs/setupTests.js +0 -4
- package/build/cjs/setupTests.js.map +0 -1
- package/build/esm/core/utils/__tests__/composeFullKey.test.js +0 -32
- package/build/esm/core/utils/__tests__/composeFullKey.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/composeKey.test.js +0 -30
- package/build/esm/core/utils/__tests__/composeKey.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/getError.test.js +0 -29
- package/build/esm/core/utils/__tests__/getError.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/getStatus.test.js +0 -47
- package/build/esm/core/utils/__tests__/getStatus.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/hasTag.test.js +0 -29
- package/build/esm/core/utils/__tests__/hasTag.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/mergeStatuses.test.js +0 -23
- package/build/esm/core/utils/__tests__/mergeStatuses.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/skipContext.test.js +0 -67
- package/build/esm/core/utils/__tests__/skipContext.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/withCancellation.test.js +0 -104
- package/build/esm/core/utils/__tests__/withCancellation.test.js.map +0 -1
- package/build/esm/core/utils/__tests__/withCatch.test.js +0 -205
- package/build/esm/core/utils/__tests__/withCatch.test.js.map +0 -1
- package/build/esm/react/__tests__/DataManagerContext.test.js +0 -44
- package/build/esm/react/__tests__/DataManagerContext.test.js.map +0 -1
- package/build/esm/react/__tests__/withDataManager.test.js +0 -58
- package/build/esm/react/__tests__/withDataManager.test.js.map +0 -1
- package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +0 -184
- package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +0 -1
- package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js +0 -116
- package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js.map +0 -1
- package/build/esm/react-query/__tests__/createQueryNormalizer.test.js +0 -174
- package/build/esm/react-query/__tests__/createQueryNormalizer.test.js.map +0 -1
- package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js +0 -98
- package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js.map +0 -1
- package/build/esm/react-query/__tests__/subscriptions.test.js +0 -1176
- package/build/esm/react-query/__tests__/subscriptions.test.js.map +0 -1
- package/build/esm/react-query/__tests__/threeLevelIntegration.test.js +0 -656
- package/build/esm/react-query/__tests__/threeLevelIntegration.test.js.map +0 -1
- package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js +0 -227
- package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js.map +0 -1
- package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js +0 -52
- package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js.map +0 -1
- package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js +0 -227
- package/build/esm/react-query/hooks/__tests__/useQueryData.refetch.test.js.map +0 -1
- package/build/esm/react-query/hooks/__tests__/useQueryData.test.js +0 -95
- package/build/esm/react-query/hooks/__tests__/useQueryData.test.js.map +0 -1
- package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js +0 -74
- package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js.map +0 -1
- package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js +0 -77
- package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js.map +0 -1
- package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js +0 -115
- package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js.map +0 -1
- package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js +0 -154
- package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js.map +0 -1
- package/build/esm/react-query/utils/__tests__/checkMutationObjectsKeys.test.js +0 -292
- package/build/esm/react-query/utils/__tests__/checkMutationObjectsKeys.test.js.map +0 -1
- package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js +0 -25
- package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js.map +0 -1
- package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js +0 -74
- package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +0 -1
- package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js +0 -28
- package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js.map +0 -1
- package/build/esm/react-query/utils/__tests__/notReachable.test.js +0 -33
- package/build/esm/react-query/utils/__tests__/notReachable.test.js.map +0 -1
- package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js +0 -25
- package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js.map +0 -1
- package/build/esm/setupTests.d.ts +0 -1
- package/build/esm/setupTests.js +0 -2
- package/build/esm/setupTests.js.map +0 -1
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
4
|
-
var _react = _interopRequireDefault(require("react"));
|
|
5
|
-
var _react2 = require("@testing-library/react");
|
|
6
|
-
var _DataLoader = require("../DataLoader");
|
|
7
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
var MockLoadingView = function MockLoadingView() {
|
|
10
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
11
|
-
"data-testid": "loading-view",
|
|
12
|
-
children: "Loading..."
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
var MockErrorView = function MockErrorView(_ref) {
|
|
16
|
-
var error = _ref.error,
|
|
17
|
-
action = _ref.action;
|
|
18
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
19
|
-
"data-testid": "error-view",
|
|
20
|
-
children: [error ? "Error: ".concat(error.message) : 'No error', action ? /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
21
|
-
"data-testid": "error-action",
|
|
22
|
-
onClick: action.handler,
|
|
23
|
-
children: action.children || 'Retry'
|
|
24
|
-
}) : null]
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
describe('DataLoader', function () {
|
|
28
|
-
var renderDataLoader = function renderDataLoader() {
|
|
29
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
30
|
-
var defaultProps = {
|
|
31
|
-
status: 'success',
|
|
32
|
-
error: null,
|
|
33
|
-
LoadingView: MockLoadingView,
|
|
34
|
-
ErrorView: MockErrorView,
|
|
35
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
36
|
-
"data-testid": "content",
|
|
37
|
-
children: "Content"
|
|
38
|
-
})
|
|
39
|
-
};
|
|
40
|
-
return (0, _react2.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DataLoader.DataLoader, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, defaultProps), props)));
|
|
41
|
-
};
|
|
42
|
-
it('should render children when status is success', function () {
|
|
43
|
-
renderDataLoader({
|
|
44
|
-
status: 'success'
|
|
45
|
-
});
|
|
46
|
-
expect(_react2.screen.getByTestId('content')).toBeInTheDocument();
|
|
47
|
-
expect(_react2.screen.queryByTestId('loading-view')).not.toBeInTheDocument();
|
|
48
|
-
expect(_react2.screen.queryByTestId('error-view')).not.toBeInTheDocument();
|
|
49
|
-
});
|
|
50
|
-
it('should render LoadingView when status is loading', function () {
|
|
51
|
-
renderDataLoader({
|
|
52
|
-
status: 'loading'
|
|
53
|
-
});
|
|
54
|
-
expect(_react2.screen.getByTestId('loading-view')).toBeInTheDocument();
|
|
55
|
-
expect(_react2.screen.queryByTestId('content')).not.toBeInTheDocument();
|
|
56
|
-
expect(_react2.screen.queryByTestId('error-view')).not.toBeInTheDocument();
|
|
57
|
-
});
|
|
58
|
-
it('should render ErrorView when status is error', function () {
|
|
59
|
-
var error = new Error('Test error');
|
|
60
|
-
renderDataLoader({
|
|
61
|
-
status: 'error',
|
|
62
|
-
error: error
|
|
63
|
-
});
|
|
64
|
-
expect(_react2.screen.getByTestId('error-view')).toBeInTheDocument();
|
|
65
|
-
expect(_react2.screen.queryByTestId('content')).not.toBeInTheDocument();
|
|
66
|
-
expect(_react2.screen.queryByTestId('loading-view')).not.toBeInTheDocument();
|
|
67
|
-
expect(_react2.screen.getByText(/Test error/)).toBeInTheDocument();
|
|
68
|
-
});
|
|
69
|
-
it('should pass errorAction to ErrorView', function () {
|
|
70
|
-
var error = new Error('Test error');
|
|
71
|
-
var errorAction = jest.fn();
|
|
72
|
-
renderDataLoader({
|
|
73
|
-
status: 'error',
|
|
74
|
-
error: error,
|
|
75
|
-
errorAction: errorAction
|
|
76
|
-
});
|
|
77
|
-
expect(_react2.screen.getByTestId('error-action')).toBeInTheDocument();
|
|
78
|
-
});
|
|
79
|
-
it('should pass errorAction with custom children to ErrorView', function () {
|
|
80
|
-
var error = new Error('Test error');
|
|
81
|
-
var errorAction = {
|
|
82
|
-
handler: jest.fn(),
|
|
83
|
-
children: 'Custom action'
|
|
84
|
-
};
|
|
85
|
-
renderDataLoader({
|
|
86
|
-
status: 'error',
|
|
87
|
-
error: error,
|
|
88
|
-
errorAction: errorAction
|
|
89
|
-
});
|
|
90
|
-
expect(_react2.screen.getByText('Custom action')).toBeInTheDocument();
|
|
91
|
-
});
|
|
92
|
-
it('should pass loadingViewProps to LoadingView', function () {
|
|
93
|
-
var LoadingView = jest.fn(MockLoadingView);
|
|
94
|
-
var loadingViewProps = {
|
|
95
|
-
customProp: 'test'
|
|
96
|
-
};
|
|
97
|
-
renderDataLoader({
|
|
98
|
-
status: 'loading',
|
|
99
|
-
LoadingView: LoadingView,
|
|
100
|
-
loadingViewProps: loadingViewProps
|
|
101
|
-
});
|
|
102
|
-
expect(LoadingView).toHaveBeenCalledWith(expect.objectContaining(loadingViewProps), undefined);
|
|
103
|
-
});
|
|
104
|
-
it('should pass errorViewProps to ErrorView', function () {
|
|
105
|
-
var ErrorView = jest.fn(MockErrorView);
|
|
106
|
-
var errorViewProps = {
|
|
107
|
-
customProp: 'test'
|
|
108
|
-
};
|
|
109
|
-
var error = new Error('Test error');
|
|
110
|
-
renderDataLoader({
|
|
111
|
-
status: 'error',
|
|
112
|
-
error: error,
|
|
113
|
-
ErrorView: ErrorView,
|
|
114
|
-
errorViewProps: errorViewProps
|
|
115
|
-
});
|
|
116
|
-
expect(ErrorView).toHaveBeenCalledWith(expect.objectContaining(errorViewProps), undefined);
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
// #sourceMappingURL=DataLoader.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_react2","_DataLoader","_jsxRuntime","e","__esModule","default","MockLoadingView","_jsx","children","MockErrorView","_ref","error","action","_jsxs","concat","message","onClick","handler","describe","renderDataLoader","props","arguments","length","undefined","defaultProps","status","LoadingView","ErrorView","render","DataLoader","_objectSpread","it","expect","screen","getByTestId","toBeInTheDocument","queryByTestId","not","Error","getByText","errorAction","jest","fn","loadingViewProps","customProp","toHaveBeenCalledWith","objectContaining","errorViewProps"],"sources":["DataLoader.test.tsx"],"sourcesContent":["import React from 'react';\n\nimport {render, screen} from '@testing-library/react';\n\nimport type {ErrorViewProps} from '../../types';\nimport {DataLoader} from '../DataLoader';\nimport type {DataLoaderProps} from '../types';\n\nconst MockLoadingView = () => <div data-testid=\"loading-view\">Loading...</div>;\nconst MockErrorView: React.FC<ErrorViewProps<Error>> = ({error, action}) => (\n <div data-testid=\"error-view\">\n {error ? `Error: ${error.message}` : 'No error'}\n {action ? (\n <button data-testid=\"error-action\" onClick={action.handler}>\n {action.children || 'Retry'}\n </button>\n ) : null}\n </div>\n);\n\ndescribe('DataLoader', () => {\n const renderDataLoader = (props: Partial<DataLoaderProps<Error>> = {}) => {\n const defaultProps: DataLoaderProps<Error> = {\n status: 'success',\n error: null,\n LoadingView: MockLoadingView,\n ErrorView: MockErrorView,\n children: <div data-testid=\"content\">Content</div>,\n };\n\n return render(<DataLoader {...defaultProps} {...props} />);\n };\n\n it('should render children when status is success', () => {\n renderDataLoader({status: 'success'});\n expect(screen.getByTestId('content')).toBeInTheDocument();\n expect(screen.queryByTestId('loading-view')).not.toBeInTheDocument();\n expect(screen.queryByTestId('error-view')).not.toBeInTheDocument();\n });\n\n it('should render LoadingView when status is loading', () => {\n renderDataLoader({status: 'loading'});\n expect(screen.getByTestId('loading-view')).toBeInTheDocument();\n expect(screen.queryByTestId('content')).not.toBeInTheDocument();\n expect(screen.queryByTestId('error-view')).not.toBeInTheDocument();\n });\n\n it('should render ErrorView when status is error', () => {\n const error = new Error('Test error');\n renderDataLoader({status: 'error', error});\n expect(screen.getByTestId('error-view')).toBeInTheDocument();\n expect(screen.queryByTestId('content')).not.toBeInTheDocument();\n expect(screen.queryByTestId('loading-view')).not.toBeInTheDocument();\n expect(screen.getByText(/Test error/)).toBeInTheDocument();\n });\n\n it('should pass errorAction to ErrorView', () => {\n const error = new Error('Test error');\n const errorAction = jest.fn();\n renderDataLoader({\n status: 'error',\n error,\n errorAction,\n });\n expect(screen.getByTestId('error-action')).toBeInTheDocument();\n });\n\n it('should pass errorAction with custom children to ErrorView', () => {\n const error = new Error('Test error');\n const errorAction = {\n handler: jest.fn(),\n children: 'Custom action',\n };\n renderDataLoader({\n status: 'error',\n error,\n errorAction,\n });\n expect(screen.getByText('Custom action')).toBeInTheDocument();\n });\n\n it('should pass loadingViewProps to LoadingView', () => {\n const LoadingView = jest.fn(MockLoadingView);\n const loadingViewProps = {customProp: 'test'};\n renderDataLoader({\n status: 'loading',\n LoadingView,\n loadingViewProps,\n });\n expect(LoadingView).toHaveBeenCalledWith(\n expect.objectContaining(loadingViewProps),\n undefined,\n );\n });\n\n it('should pass errorViewProps to ErrorView', () => {\n const ErrorView = jest.fn(MockErrorView);\n const errorViewProps = {customProp: 'test'};\n const error = new Error('Test error');\n renderDataLoader({\n status: 'error',\n error,\n ErrorView,\n errorViewProps,\n });\n expect(ErrorView).toHaveBeenCalledWith(expect.objectContaining(errorViewProps), undefined);\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
4
|
-
var _ClientDataManager = require("../ClientDataManager");
|
|
5
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
-
describe('QueryNormalizer API', function () {
|
|
7
|
-
var dataManager;
|
|
8
|
-
beforeEach(function () {
|
|
9
|
-
dataManager = new _ClientDataManager.ClientDataManager({
|
|
10
|
-
defaultOptions: {
|
|
11
|
-
queries: {
|
|
12
|
-
retry: false
|
|
13
|
-
},
|
|
14
|
-
mutations: {
|
|
15
|
-
retry: false
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
normalizerConfig: {
|
|
19
|
-
devLogging: false
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
afterEach(function () {
|
|
24
|
-
dataManager.queryClient.clear();
|
|
25
|
-
});
|
|
26
|
-
it('should create queryNormalizer with required methods', function () {
|
|
27
|
-
var _dataManager$queryNor, _dataManager$queryNor2, _dataManager$queryNor3, _dataManager$queryNor4, _dataManager$queryNor5, _dataManager$queryNor6, _dataManager$queryNor7, _dataManager$queryNor8, _dataManager$queryNor9;
|
|
28
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
29
|
-
expect((_dataManager$queryNor = dataManager.queryNormalizer) === null || _dataManager$queryNor === void 0 ? void 0 : _dataManager$queryNor.getNormalizedData).toBeDefined();
|
|
30
|
-
expect((_dataManager$queryNor2 = dataManager.queryNormalizer) === null || _dataManager$queryNor2 === void 0 ? void 0 : _dataManager$queryNor2.setNormalizedData).toBeDefined();
|
|
31
|
-
expect((_dataManager$queryNor3 = dataManager.queryNormalizer) === null || _dataManager$queryNor3 === void 0 ? void 0 : _dataManager$queryNor3.clear).toBeDefined();
|
|
32
|
-
expect((_dataManager$queryNor4 = dataManager.queryNormalizer) === null || _dataManager$queryNor4 === void 0 ? void 0 : _dataManager$queryNor4.getObjectById).toBeDefined();
|
|
33
|
-
expect((_dataManager$queryNor5 = dataManager.queryNormalizer) === null || _dataManager$queryNor5 === void 0 ? void 0 : _dataManager$queryNor5.getQueryFragment).toBeDefined();
|
|
34
|
-
expect((_dataManager$queryNor6 = dataManager.queryNormalizer) === null || _dataManager$queryNor6 === void 0 ? void 0 : _dataManager$queryNor6.getDependentQueries).toBeDefined();
|
|
35
|
-
expect((_dataManager$queryNor7 = dataManager.queryNormalizer) === null || _dataManager$queryNor7 === void 0 ? void 0 : _dataManager$queryNor7.getDependentQueriesByIds).toBeDefined();
|
|
36
|
-
expect((_dataManager$queryNor8 = dataManager.queryNormalizer) === null || _dataManager$queryNor8 === void 0 ? void 0 : _dataManager$queryNor8.subscribe).toBeDefined();
|
|
37
|
-
expect((_dataManager$queryNor9 = dataManager.queryNormalizer) === null || _dataManager$queryNor9 === void 0 ? void 0 : _dataManager$queryNor9.unsubscribe).toBeDefined();
|
|
38
|
-
});
|
|
39
|
-
it('getNormalizedData should return normalized data', function () {
|
|
40
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
41
|
-
var data = dataManager.queryNormalizer.getNormalizedData();
|
|
42
|
-
expect(data).toBeDefined();
|
|
43
|
-
expect(data.objects).toBeDefined();
|
|
44
|
-
expect(data.queries).toBeDefined();
|
|
45
|
-
});
|
|
46
|
-
it('setNormalizedData should update queries', function () {
|
|
47
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
48
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
49
|
-
var queryKey = ['users'];
|
|
50
|
-
dataManager.queryClient.setQueryData(queryKey, [{
|
|
51
|
-
id: '1',
|
|
52
|
-
name: 'Old'
|
|
53
|
-
}]);
|
|
54
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey), [{
|
|
55
|
-
id: '1',
|
|
56
|
-
name: 'Old'
|
|
57
|
-
}]);
|
|
58
|
-
dataManager.queryNormalizer.setNormalizedData({
|
|
59
|
-
id: '1',
|
|
60
|
-
name: 'New'
|
|
61
|
-
});
|
|
62
|
-
var data = dataManager.queryClient.getQueryData(queryKey);
|
|
63
|
-
expect(data[0].name).toBe('New');
|
|
64
|
-
});
|
|
65
|
-
it('clear should clear normalized data', function () {
|
|
66
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
67
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
68
|
-
var queryKey = ['users'];
|
|
69
|
-
dataManager.queryClient.setQueryData(queryKey, [{
|
|
70
|
-
id: '1',
|
|
71
|
-
name: 'User'
|
|
72
|
-
}]);
|
|
73
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey), [{
|
|
74
|
-
id: '1',
|
|
75
|
-
name: 'User'
|
|
76
|
-
}]);
|
|
77
|
-
dataManager.queryNormalizer.clear();
|
|
78
|
-
var data = dataManager.queryNormalizer.getNormalizedData();
|
|
79
|
-
expect(Object.keys(data.objects)).toHaveLength(0);
|
|
80
|
-
});
|
|
81
|
-
it('getObjectById should return object by ID', function () {
|
|
82
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
83
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
84
|
-
var queryKey = ['users'];
|
|
85
|
-
var userData = [{
|
|
86
|
-
id: '1',
|
|
87
|
-
name: 'User 1'
|
|
88
|
-
}];
|
|
89
|
-
|
|
90
|
-
// Add to normalizer
|
|
91
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey), userData);
|
|
92
|
-
|
|
93
|
-
// Get normalized data
|
|
94
|
-
var normalized = dataManager.queryNormalizer.getNormalizedData();
|
|
95
|
-
expect(Object.keys(normalized.objects).length).toBeGreaterThan(0);
|
|
96
|
-
|
|
97
|
-
// getObjectById should be defined and available
|
|
98
|
-
expect(dataManager.queryNormalizer.getObjectById).toBeDefined();
|
|
99
|
-
expect((0, _typeof2.default)(dataManager.queryNormalizer.getObjectById)).toBe('function');
|
|
100
|
-
});
|
|
101
|
-
it('getDependentQueries should return dependent queries', function () {
|
|
102
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
103
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
104
|
-
var queryKey1 = ['users'];
|
|
105
|
-
var queryKey2 = ['user', '1'];
|
|
106
|
-
dataManager.queryClient.setQueryData(queryKey1, [{
|
|
107
|
-
id: '1',
|
|
108
|
-
name: 'User'
|
|
109
|
-
}]);
|
|
110
|
-
dataManager.queryClient.setQueryData(queryKey2, {
|
|
111
|
-
id: '1',
|
|
112
|
-
name: 'User'
|
|
113
|
-
});
|
|
114
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey1), [{
|
|
115
|
-
id: '1',
|
|
116
|
-
name: 'User'
|
|
117
|
-
}]);
|
|
118
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey2), {
|
|
119
|
-
id: '1',
|
|
120
|
-
name: 'User'
|
|
121
|
-
});
|
|
122
|
-
var dependentQueries = dataManager.queryNormalizer.getDependentQueries({
|
|
123
|
-
id: '1',
|
|
124
|
-
name: 'Updated'
|
|
125
|
-
});
|
|
126
|
-
expect(dependentQueries.length).toBeGreaterThan(0);
|
|
127
|
-
});
|
|
128
|
-
it('getDependentQueriesByIds should be available', function () {
|
|
129
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
130
|
-
|
|
131
|
-
// getDependentQueriesByIds should be defined and available
|
|
132
|
-
expect(dataManager.queryNormalizer.getDependentQueriesByIds).toBeDefined();
|
|
133
|
-
expect((0, _typeof2.default)(dataManager.queryNormalizer.getDependentQueriesByIds)).toBe('function');
|
|
134
|
-
|
|
135
|
-
// Call with empty array should not throw
|
|
136
|
-
var result = dataManager.queryNormalizer.getDependentQueriesByIds([]);
|
|
137
|
-
expect(Array.isArray(result)).toBe(true);
|
|
138
|
-
});
|
|
139
|
-
it('should not create queryNormalizer when normalizerConfig is false', function () {
|
|
140
|
-
var dmWithoutNormalizer = new _ClientDataManager.ClientDataManager({
|
|
141
|
-
normalizerConfig: false
|
|
142
|
-
});
|
|
143
|
-
expect(dmWithoutNormalizer.normalizer).toBeUndefined();
|
|
144
|
-
expect(dmWithoutNormalizer.queryNormalizer).toBeUndefined();
|
|
145
|
-
});
|
|
146
|
-
it('should not create queryNormalizer when normalizerConfig is undefined', function () {
|
|
147
|
-
var dmWithoutNormalizer = new _ClientDataManager.ClientDataManager({});
|
|
148
|
-
expect(dmWithoutNormalizer.normalizer).toBeUndefined();
|
|
149
|
-
expect(dmWithoutNormalizer.queryNormalizer).toBeUndefined();
|
|
150
|
-
});
|
|
151
|
-
it('should create queryNormalizer when normalizerConfig is true', function () {
|
|
152
|
-
var dmWithNormalizer = new _ClientDataManager.ClientDataManager({
|
|
153
|
-
normalizerConfig: true
|
|
154
|
-
});
|
|
155
|
-
expect(dmWithNormalizer.normalizer).toBeDefined();
|
|
156
|
-
expect(dmWithNormalizer.queryNormalizer).toBeDefined();
|
|
157
|
-
});
|
|
158
|
-
it('should work correctly with optimisticUpdate via setNormalizedData', function () {
|
|
159
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
160
|
-
expect(dataManager.queryNormalizer).toBeDefined();
|
|
161
|
-
var queryKey = ['users'];
|
|
162
|
-
var initialData = [{
|
|
163
|
-
id: '1',
|
|
164
|
-
name: 'Old Name'
|
|
165
|
-
}];
|
|
166
|
-
dataManager.queryClient.setQueryData(queryKey, initialData);
|
|
167
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey), initialData);
|
|
168
|
-
var mutationData = {
|
|
169
|
-
id: '1',
|
|
170
|
-
name: 'New Name'
|
|
171
|
-
};
|
|
172
|
-
dataManager.queryNormalizer.setNormalizedData(mutationData);
|
|
173
|
-
var updatedData = dataManager.queryClient.getQueryData(queryKey);
|
|
174
|
-
expect(updatedData[0].name).toBe('New Name');
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
// #sourceMappingURL=createQueryNormalizer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_ClientDataManager","require","_interopRequireDefault","e","__esModule","default","describe","dataManager","beforeEach","ClientDataManager","defaultOptions","queries","retry","mutations","normalizerConfig","devLogging","afterEach","queryClient","clear","it","_dataManager$queryNor","_dataManager$queryNor2","_dataManager$queryNor3","_dataManager$queryNor4","_dataManager$queryNor5","_dataManager$queryNor6","_dataManager$queryNor7","_dataManager$queryNor8","_dataManager$queryNor9","expect","queryNormalizer","toBeDefined","getNormalizedData","setNormalizedData","getObjectById","getQueryFragment","getDependentQueries","getDependentQueriesByIds","subscribe","unsubscribe","data","objects","normalizer","queryKey","setQueryData","id","name","setQuery","JSON","stringify","getQueryData","toBe","Object","keys","toHaveLength","userData","normalized","length","toBeGreaterThan","_typeof","queryKey1","queryKey2","dependentQueries","result","Array","isArray","dmWithoutNormalizer","toBeUndefined","dmWithNormalizer","initialData","mutationData","updatedData"],"sources":["createQueryNormalizer.test.tsx"],"sourcesContent":["import type {Data} from '@normy/core';\n\nimport {ClientDataManager} from '../ClientDataManager';\n\ndescribe('QueryNormalizer API', () => {\n let dataManager: ClientDataManager;\n\n beforeEach(() => {\n dataManager = new ClientDataManager({\n defaultOptions: {\n queries: {retry: false},\n mutations: {retry: false},\n },\n normalizerConfig: {\n devLogging: false,\n },\n });\n });\n\n afterEach(() => {\n dataManager.queryClient.clear();\n });\n\n it('should create queryNormalizer with required methods', () => {\n expect(dataManager.queryNormalizer).toBeDefined();\n expect(dataManager.queryNormalizer?.getNormalizedData).toBeDefined();\n expect(dataManager.queryNormalizer?.setNormalizedData).toBeDefined();\n expect(dataManager.queryNormalizer?.clear).toBeDefined();\n expect(dataManager.queryNormalizer?.getObjectById).toBeDefined();\n expect(dataManager.queryNormalizer?.getQueryFragment).toBeDefined();\n expect(dataManager.queryNormalizer?.getDependentQueries).toBeDefined();\n expect(dataManager.queryNormalizer?.getDependentQueriesByIds).toBeDefined();\n expect(dataManager.queryNormalizer?.subscribe).toBeDefined();\n expect(dataManager.queryNormalizer?.unsubscribe).toBeDefined();\n });\n\n it('getNormalizedData should return normalized data', () => {\n expect(dataManager.queryNormalizer).toBeDefined();\n\n const data = dataManager.queryNormalizer!.getNormalizedData();\n expect(data).toBeDefined();\n expect(data.objects).toBeDefined();\n expect(data.queries).toBeDefined();\n });\n\n it('setNormalizedData should update queries', () => {\n expect(dataManager.normalizer).toBeDefined();\n expect(dataManager.queryNormalizer).toBeDefined();\n\n const queryKey = ['users'];\n dataManager.queryClient.setQueryData(queryKey, [{id: '1', name: 'Old'}]);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), [{id: '1', name: 'Old'}]);\n\n dataManager.queryNormalizer!.setNormalizedData({id: '1', name: 'New'});\n\n const data = dataManager.queryClient.getQueryData(queryKey) as Array<{\n id: string;\n name: string;\n }>;\n expect(data[0].name).toBe('New');\n });\n\n it('clear should clear normalized data', () => {\n expect(dataManager.normalizer).toBeDefined();\n expect(dataManager.queryNormalizer).toBeDefined();\n\n const queryKey = ['users'];\n dataManager.queryClient.setQueryData(queryKey, [{id: '1', name: 'User'}]);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), [{id: '1', name: 'User'}]);\n\n dataManager.queryNormalizer!.clear();\n\n const data = dataManager.queryNormalizer!.getNormalizedData();\n expect(Object.keys(data.objects)).toHaveLength(0);\n });\n\n it('getObjectById should return object by ID', () => {\n expect(dataManager.normalizer).toBeDefined();\n expect(dataManager.queryNormalizer).toBeDefined();\n\n const queryKey = ['users'];\n const userData = [{id: '1', name: 'User 1'}];\n\n // Add to normalizer\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), userData);\n\n // Get normalized data\n const normalized = dataManager.queryNormalizer!.getNormalizedData();\n expect(Object.keys(normalized.objects).length).toBeGreaterThan(0);\n\n // getObjectById should be defined and available\n expect(dataManager.queryNormalizer!.getObjectById).toBeDefined();\n expect(typeof dataManager.queryNormalizer!.getObjectById).toBe('function');\n });\n\n it('getDependentQueries should return dependent queries', () => {\n expect(dataManager.normalizer).toBeDefined();\n expect(dataManager.queryNormalizer).toBeDefined();\n\n const queryKey1 = ['users'];\n const queryKey2 = ['user', '1'];\n\n dataManager.queryClient.setQueryData(queryKey1, [{id: '1', name: 'User'}]);\n dataManager.queryClient.setQueryData(queryKey2, {id: '1', name: 'User'});\n\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey1), [{id: '1', name: 'User'}]);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey2), {id: '1', name: 'User'});\n\n const dependentQueries = dataManager.queryNormalizer!.getDependentQueries({\n id: '1',\n name: 'Updated',\n });\n expect(dependentQueries.length).toBeGreaterThan(0);\n });\n\n it('getDependentQueriesByIds should be available', () => {\n expect(dataManager.queryNormalizer).toBeDefined();\n\n // getDependentQueriesByIds should be defined and available\n expect(dataManager.queryNormalizer!.getDependentQueriesByIds).toBeDefined();\n expect(typeof dataManager.queryNormalizer!.getDependentQueriesByIds).toBe('function');\n\n // Call with empty array should not throw\n const result = dataManager.queryNormalizer!.getDependentQueriesByIds([]);\n expect(Array.isArray(result)).toBe(true);\n });\n\n it('should not create queryNormalizer when normalizerConfig is false', () => {\n const dmWithoutNormalizer = new ClientDataManager({\n normalizerConfig: false,\n });\n\n expect(dmWithoutNormalizer.normalizer).toBeUndefined();\n expect(dmWithoutNormalizer.queryNormalizer).toBeUndefined();\n });\n\n it('should not create queryNormalizer when normalizerConfig is undefined', () => {\n const dmWithoutNormalizer = new ClientDataManager({});\n\n expect(dmWithoutNormalizer.normalizer).toBeUndefined();\n expect(dmWithoutNormalizer.queryNormalizer).toBeUndefined();\n });\n\n it('should create queryNormalizer when normalizerConfig is true', () => {\n const dmWithNormalizer = new ClientDataManager({\n normalizerConfig: true,\n });\n\n expect(dmWithNormalizer.normalizer).toBeDefined();\n expect(dmWithNormalizer.queryNormalizer).toBeDefined();\n });\n\n it('should work correctly with optimisticUpdate via setNormalizedData', () => {\n expect(dataManager.normalizer).toBeDefined();\n expect(dataManager.queryNormalizer).toBeDefined();\n\n const queryKey = ['users'];\n const initialData = [{id: '1', name: 'Old Name'}];\n\n dataManager.queryClient.setQueryData(queryKey, initialData);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), initialData);\n\n const mutationData: Data = {id: '1', name: 'New Name'};\n dataManager.queryNormalizer!.setNormalizedData(mutationData);\n\n const updatedData = dataManager.queryClient.getQueryData(queryKey) as Array<{\n id: string;\n name: string;\n }>;\n expect(updatedData[0].name).toBe('New Name');\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _ClientDataManager = require("../ClientDataManager");
|
|
4
|
-
describe('normalization edge cases', function () {
|
|
5
|
-
var dataManager;
|
|
6
|
-
beforeEach(function () {
|
|
7
|
-
dataManager = new _ClientDataManager.ClientDataManager({
|
|
8
|
-
defaultOptions: {
|
|
9
|
-
queries: {
|
|
10
|
-
retry: false
|
|
11
|
-
},
|
|
12
|
-
mutations: {
|
|
13
|
-
retry: false
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
normalizerConfig: {
|
|
17
|
-
devLogging: false
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
afterEach(function () {
|
|
22
|
-
dataManager.queryClient.clear();
|
|
23
|
-
});
|
|
24
|
-
it('should work correctly with empty data', function () {
|
|
25
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
26
|
-
var queryKey = ['empty'];
|
|
27
|
-
dataManager.queryClient.setQueryData(queryKey, []);
|
|
28
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey), []);
|
|
29
|
-
var mutationData = {
|
|
30
|
-
id: '1',
|
|
31
|
-
name: 'New'
|
|
32
|
-
};
|
|
33
|
-
expect(function () {
|
|
34
|
-
dataManager.optimisticUpdate(mutationData);
|
|
35
|
-
}).not.toThrow();
|
|
36
|
-
});
|
|
37
|
-
it('should work correctly with null data', function () {
|
|
38
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
39
|
-
var queryKey = ['null'];
|
|
40
|
-
dataManager.queryClient.setQueryData(queryKey, null);
|
|
41
|
-
var mutationData = {
|
|
42
|
-
id: '1',
|
|
43
|
-
name: 'New'
|
|
44
|
-
};
|
|
45
|
-
expect(function () {
|
|
46
|
-
dataManager.optimisticUpdate(mutationData);
|
|
47
|
-
}).not.toThrow();
|
|
48
|
-
});
|
|
49
|
-
it('should work correctly with undefined data', function () {
|
|
50
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
51
|
-
var queryKey = ['undefined'];
|
|
52
|
-
dataManager.queryClient.setQueryData(queryKey, undefined);
|
|
53
|
-
var mutationData = {
|
|
54
|
-
id: '1',
|
|
55
|
-
name: 'New'
|
|
56
|
-
};
|
|
57
|
-
expect(function () {
|
|
58
|
-
dataManager.optimisticUpdate(mutationData);
|
|
59
|
-
}).not.toThrow();
|
|
60
|
-
});
|
|
61
|
-
it('should work correctly with arrays of objects', function () {
|
|
62
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
63
|
-
var queryKey = ['array'];
|
|
64
|
-
var data = [{
|
|
65
|
-
id: '1',
|
|
66
|
-
name: 'Item 1'
|
|
67
|
-
}, {
|
|
68
|
-
id: '2',
|
|
69
|
-
name: 'Item 2'
|
|
70
|
-
}];
|
|
71
|
-
dataManager.queryClient.setQueryData(queryKey, data);
|
|
72
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey), data);
|
|
73
|
-
var mutationData = {
|
|
74
|
-
id: '1',
|
|
75
|
-
name: 'Updated Item 1'
|
|
76
|
-
};
|
|
77
|
-
dataManager.optimisticUpdate(mutationData);
|
|
78
|
-
var updatedData = dataManager.queryClient.getQueryData(queryKey);
|
|
79
|
-
expect(updatedData[0].name).toBe('Updated Item 1');
|
|
80
|
-
expect(updatedData[1].name).toBe('Item 2');
|
|
81
|
-
});
|
|
82
|
-
it('should work correctly with single objects', function () {
|
|
83
|
-
expect(dataManager.normalizer).toBeDefined();
|
|
84
|
-
var queryKey = ['single'];
|
|
85
|
-
var data = {
|
|
86
|
-
id: '1',
|
|
87
|
-
name: 'Item'
|
|
88
|
-
};
|
|
89
|
-
dataManager.queryClient.setQueryData(queryKey, data);
|
|
90
|
-
dataManager.normalizer.setQuery(JSON.stringify(queryKey), data);
|
|
91
|
-
var mutationData = {
|
|
92
|
-
id: '1',
|
|
93
|
-
name: 'Updated Item'
|
|
94
|
-
};
|
|
95
|
-
dataManager.optimisticUpdate(mutationData);
|
|
96
|
-
var updatedData = dataManager.queryClient.getQueryData(queryKey);
|
|
97
|
-
expect(updatedData.name).toBe('Updated Item');
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
// #sourceMappingURL=normalizationEdgeCases.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_ClientDataManager","require","describe","dataManager","beforeEach","ClientDataManager","defaultOptions","queries","retry","mutations","normalizerConfig","devLogging","afterEach","queryClient","clear","it","expect","normalizer","toBeDefined","queryKey","setQueryData","setQuery","JSON","stringify","mutationData","id","name","optimisticUpdate","not","toThrow","undefined","data","updatedData","getQueryData","toBe"],"sources":["normalizationEdgeCases.test.tsx"],"sourcesContent":["import type {Data} from '@normy/core';\n\nimport {ClientDataManager} from '../ClientDataManager';\n\ndescribe('normalization edge cases', () => {\n let dataManager: ClientDataManager;\n\n beforeEach(() => {\n dataManager = new ClientDataManager({\n defaultOptions: {\n queries: {retry: false},\n mutations: {retry: false},\n },\n normalizerConfig: {\n devLogging: false,\n },\n });\n });\n\n afterEach(() => {\n dataManager.queryClient.clear();\n });\n\n it('should work correctly with empty data', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['empty'];\n dataManager.queryClient.setQueryData(queryKey, []);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), []);\n\n const mutationData: Data = {id: '1', name: 'New'};\n expect(() => {\n dataManager.optimisticUpdate(mutationData);\n }).not.toThrow();\n });\n\n it('should work correctly with null data', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['null'];\n dataManager.queryClient.setQueryData(queryKey, null);\n\n const mutationData: Data = {id: '1', name: 'New'};\n expect(() => {\n dataManager.optimisticUpdate(mutationData);\n }).not.toThrow();\n });\n\n it('should work correctly with undefined data', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['undefined'];\n dataManager.queryClient.setQueryData(queryKey, undefined);\n\n const mutationData: Data = {id: '1', name: 'New'};\n expect(() => {\n dataManager.optimisticUpdate(mutationData);\n }).not.toThrow();\n });\n\n it('should work correctly with arrays of objects', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['array'];\n const data = [\n {id: '1', name: 'Item 1'},\n {id: '2', name: 'Item 2'},\n ];\n\n dataManager.queryClient.setQueryData(queryKey, data);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), data);\n\n const mutationData: Data = {id: '1', name: 'Updated Item 1'};\n dataManager.optimisticUpdate(mutationData);\n\n const updatedData = dataManager.queryClient.getQueryData(queryKey) as Array<{\n id: string;\n name: string;\n }>;\n expect(updatedData[0].name).toBe('Updated Item 1');\n expect(updatedData[1].name).toBe('Item 2');\n });\n\n it('should work correctly with single objects', () => {\n expect(dataManager.normalizer).toBeDefined();\n\n const queryKey = ['single'];\n const data = {id: '1', name: 'Item'};\n\n dataManager.queryClient.setQueryData(queryKey, data);\n dataManager.normalizer!.setQuery(JSON.stringify(queryKey), data);\n\n const mutationData: Data = {id: '1', name: 'Updated Item'};\n dataManager.optimisticUpdate(mutationData);\n\n const updatedData = dataManager.queryClient.getQueryData(queryKey) as {\n id: string;\n name: string;\n };\n expect(updatedData.name).toBe('Updated Item');\n });\n});\n"],"mappings":"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","ignoreList":[]}
|