@gravity-ui/data-source 0.6.1 → 0.7.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.
Files changed (177) hide show
  1. package/build/cjs/core/index.d.ts +2 -1
  2. package/build/cjs/core/index.js +7 -0
  3. package/build/cjs/core/index.js.map +1 -1
  4. package/build/cjs/core/types/DataSource.d.ts +15 -19
  5. package/build/cjs/core/types/DataSource.js.map +1 -1
  6. package/build/cjs/core/utils/__tests__/composeFullKey.test.js +34 -0
  7. package/build/cjs/core/utils/__tests__/composeFullKey.test.js.map +1 -0
  8. package/build/cjs/core/utils/__tests__/composeKey.test.js +32 -0
  9. package/build/cjs/core/utils/__tests__/composeKey.test.js.map +1 -0
  10. package/build/cjs/core/utils/__tests__/getError.test.js +31 -0
  11. package/build/cjs/core/utils/__tests__/getError.test.js.map +1 -0
  12. package/build/cjs/core/utils/__tests__/getStatus.test.js +49 -0
  13. package/build/cjs/core/utils/__tests__/getStatus.test.js.map +1 -0
  14. package/build/cjs/core/utils/__tests__/hasTag.test.js +31 -0
  15. package/build/cjs/core/utils/__tests__/hasTag.test.js.map +1 -0
  16. package/build/cjs/core/utils/__tests__/mergeStatuses.test.js +25 -0
  17. package/build/cjs/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
  18. package/build/cjs/core/utils/__tests__/skipContext.test.js +70 -0
  19. package/build/cjs/core/utils/__tests__/skipContext.test.js.map +1 -0
  20. package/build/cjs/core/utils/__tests__/withCancellation.test.js +106 -0
  21. package/build/cjs/core/utils/__tests__/withCancellation.test.js.map +1 -0
  22. package/build/cjs/core/utils/__tests__/withCatch.test.js +208 -0
  23. package/build/cjs/core/utils/__tests__/withCatch.test.js.map +1 -0
  24. package/build/cjs/core/utils/withCatch.d.ts +26 -0
  25. package/build/cjs/core/utils/withCatch.js +37 -0
  26. package/build/cjs/core/utils/withCatch.js.map +1 -0
  27. package/build/cjs/react/__tests__/DataManagerContext.test.js +46 -0
  28. package/build/cjs/react/__tests__/DataManagerContext.test.js.map +1 -0
  29. package/build/cjs/react/__tests__/withDataManager.test.js +58 -0
  30. package/build/cjs/react/__tests__/withDataManager.test.js.map +1 -0
  31. package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +187 -0
  32. package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
  33. package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js +119 -0
  34. package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
  35. package/build/cjs/react/withDataManager.d.ts +1 -1
  36. package/build/cjs/react/withDataManager.js +3 -3
  37. package/build/cjs/react/withDataManager.js.map +1 -1
  38. package/build/cjs/react-query/constants.d.ts +2 -0
  39. package/build/cjs/react-query/constants.js +9 -0
  40. package/build/cjs/react-query/constants.js.map +1 -0
  41. package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js +55 -0
  42. package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
  43. package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js +97 -0
  44. package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
  45. package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js +77 -0
  46. package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
  47. package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js +79 -0
  48. package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
  49. package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js +117 -0
  50. package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
  51. package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js +156 -0
  52. package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
  53. package/build/cjs/react-query/hooks/useRefetchInterval.d.ts +1 -1
  54. package/build/cjs/react-query/impl/infinite/factory.d.ts +1 -1
  55. package/build/cjs/react-query/impl/infinite/factory.js.map +1 -1
  56. package/build/cjs/react-query/impl/infinite/types.d.ts +7 -7
  57. package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
  58. package/build/cjs/react-query/impl/infinite/utils.js +11 -22
  59. package/build/cjs/react-query/impl/infinite/utils.js.map +1 -1
  60. package/build/cjs/react-query/impl/plain/factory.d.ts +1 -1
  61. package/build/cjs/react-query/impl/plain/factory.js.map +1 -1
  62. package/build/cjs/react-query/impl/plain/types.d.ts +4 -4
  63. package/build/cjs/react-query/impl/plain/types.js.map +1 -1
  64. package/build/cjs/react-query/impl/plain/utils.js +12 -23
  65. package/build/cjs/react-query/impl/plain/utils.js.map +1 -1
  66. package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js +27 -0
  67. package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
  68. package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js +76 -0
  69. package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
  70. package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js +30 -0
  71. package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
  72. package/build/cjs/react-query/utils/__tests__/notReachable.test.js +35 -0
  73. package/build/cjs/react-query/utils/__tests__/notReachable.test.js.map +1 -0
  74. package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js +27 -0
  75. package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
  76. package/build/cjs/react-query/utils/formatNullableValue.d.ts +2 -0
  77. package/build/cjs/react-query/utils/formatNullableValue.js +17 -0
  78. package/build/cjs/react-query/utils/formatNullableValue.js.map +1 -0
  79. package/build/cjs/react-query/utils/getProgressiveRefetch.d.ts +2 -2
  80. package/build/cjs/react-query/utils/parseNullableValue.d.ts +2 -0
  81. package/build/cjs/react-query/utils/parseNullableValue.js +17 -0
  82. package/build/cjs/react-query/utils/parseNullableValue.js.map +1 -0
  83. package/build/cjs/setupTests.d.ts +1 -0
  84. package/build/cjs/setupTests.js +4 -0
  85. package/build/cjs/setupTests.js.map +1 -0
  86. package/build/esm/core/index.d.ts +2 -1
  87. package/build/esm/core/index.js +1 -0
  88. package/build/esm/core/index.js.map +1 -1
  89. package/build/esm/core/types/DataSource.d.ts +15 -19
  90. package/build/esm/core/types/DataSource.js.map +1 -1
  91. package/build/esm/core/utils/__tests__/composeFullKey.test.js +32 -0
  92. package/build/esm/core/utils/__tests__/composeFullKey.test.js.map +1 -0
  93. package/build/esm/core/utils/__tests__/composeKey.test.js +30 -0
  94. package/build/esm/core/utils/__tests__/composeKey.test.js.map +1 -0
  95. package/build/esm/core/utils/__tests__/getError.test.js +29 -0
  96. package/build/esm/core/utils/__tests__/getError.test.js.map +1 -0
  97. package/build/esm/core/utils/__tests__/getStatus.test.js +47 -0
  98. package/build/esm/core/utils/__tests__/getStatus.test.js.map +1 -0
  99. package/build/esm/core/utils/__tests__/hasTag.test.js +29 -0
  100. package/build/esm/core/utils/__tests__/hasTag.test.js.map +1 -0
  101. package/build/esm/core/utils/__tests__/mergeStatuses.test.js +23 -0
  102. package/build/esm/core/utils/__tests__/mergeStatuses.test.js.map +1 -0
  103. package/build/esm/core/utils/__tests__/skipContext.test.js +67 -0
  104. package/build/esm/core/utils/__tests__/skipContext.test.js.map +1 -0
  105. package/build/esm/core/utils/__tests__/withCancellation.test.js +104 -0
  106. package/build/esm/core/utils/__tests__/withCancellation.test.js.map +1 -0
  107. package/build/esm/core/utils/__tests__/withCatch.test.js +205 -0
  108. package/build/esm/core/utils/__tests__/withCatch.test.js.map +1 -0
  109. package/build/esm/core/utils/withCatch.d.ts +26 -0
  110. package/build/esm/core/utils/withCatch.js +31 -0
  111. package/build/esm/core/utils/withCatch.js.map +1 -0
  112. package/build/esm/react/__tests__/DataManagerContext.test.js +43 -0
  113. package/build/esm/react/__tests__/DataManagerContext.test.js.map +1 -0
  114. package/build/esm/react/__tests__/withDataManager.test.js +55 -0
  115. package/build/esm/react/__tests__/withDataManager.test.js.map +1 -0
  116. package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +184 -0
  117. package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +1 -0
  118. package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js +116 -0
  119. package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js.map +1 -0
  120. package/build/esm/react/withDataManager.d.ts +1 -1
  121. package/build/esm/react/withDataManager.js +3 -3
  122. package/build/esm/react/withDataManager.js.map +1 -1
  123. package/build/esm/react-query/constants.d.ts +2 -0
  124. package/build/esm/react-query/constants.js +3 -0
  125. package/build/esm/react-query/constants.js.map +1 -0
  126. package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js +52 -0
  127. package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js.map +1 -0
  128. package/build/esm/react-query/hooks/__tests__/useQueryData.test.js +95 -0
  129. package/build/esm/react-query/hooks/__tests__/useQueryData.test.js.map +1 -0
  130. package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js +74 -0
  131. package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js.map +1 -0
  132. package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js +77 -0
  133. package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js.map +1 -0
  134. package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js +115 -0
  135. package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js.map +1 -0
  136. package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js +154 -0
  137. package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js.map +1 -0
  138. package/build/esm/react-query/hooks/useRefetchInterval.d.ts +1 -1
  139. package/build/esm/react-query/impl/infinite/factory.d.ts +1 -1
  140. package/build/esm/react-query/impl/infinite/factory.js.map +1 -1
  141. package/build/esm/react-query/impl/infinite/types.d.ts +7 -7
  142. package/build/esm/react-query/impl/infinite/types.js.map +1 -1
  143. package/build/esm/react-query/impl/infinite/utils.js +9 -20
  144. package/build/esm/react-query/impl/infinite/utils.js.map +1 -1
  145. package/build/esm/react-query/impl/plain/factory.d.ts +1 -1
  146. package/build/esm/react-query/impl/plain/factory.js.map +1 -1
  147. package/build/esm/react-query/impl/plain/types.d.ts +4 -4
  148. package/build/esm/react-query/impl/plain/types.js.map +1 -1
  149. package/build/esm/react-query/impl/plain/utils.js +10 -21
  150. package/build/esm/react-query/impl/plain/utils.js.map +1 -1
  151. package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js +25 -0
  152. package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js.map +1 -0
  153. package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js +74 -0
  154. package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +1 -0
  155. package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js +28 -0
  156. package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js.map +1 -0
  157. package/build/esm/react-query/utils/__tests__/notReachable.test.js +33 -0
  158. package/build/esm/react-query/utils/__tests__/notReachable.test.js.map +1 -0
  159. package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js +25 -0
  160. package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js.map +1 -0
  161. package/build/esm/react-query/utils/formatNullableValue.d.ts +2 -0
  162. package/build/esm/react-query/utils/formatNullableValue.js +11 -0
  163. package/build/esm/react-query/utils/formatNullableValue.js.map +1 -0
  164. package/build/esm/react-query/utils/getProgressiveRefetch.d.ts +2 -2
  165. package/build/esm/react-query/utils/parseNullableValue.d.ts +2 -0
  166. package/build/esm/react-query/utils/parseNullableValue.js +11 -0
  167. package/build/esm/react-query/utils/parseNullableValue.js.map +1 -0
  168. package/build/esm/setupTests.d.ts +1 -0
  169. package/build/esm/setupTests.js +2 -0
  170. package/build/esm/setupTests.js.map +1 -0
  171. package/package.json +17 -13
  172. package/build/cjs/react-query/impl/utils.d.ts +0 -4
  173. package/build/cjs/react-query/impl/utils.js +0 -27
  174. package/build/cjs/react-query/impl/utils.js.map +0 -1
  175. package/build/esm/react-query/impl/utils.d.ts +0 -4
  176. package/build/esm/react-query/impl/utils.js +0 -21
  177. package/build/esm/react-query/impl/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_react2","_DataInfiniteLoader","_jsxRuntime","e","__esModule","default","MockLoadingView","_jsx","children","MockErrorView","_ref","error","action","_jsxs","concat","message","onClick","handler","MockMoreView","_ref2","isLoading","describe","renderDataInfiniteLoader","props","arguments","length","undefined","fetchNextPage","jest","fn","defaultProps","status","hasNextPage","isFetchingNextPage","LoadingView","ErrorView","MoreView","_objectSpread","render","DataInfiniteLoader","it","expect","screen","getByTestId","toBeInTheDocument","queryByTestId","not","Error","getByText","_renderDataInfiniteLo","fireEvent","click","toHaveBeenCalledTimes","errorAction","loadingViewProps","customProp","toHaveBeenCalledWith","objectContaining","errorViewProps","moreViewProps"],"sources":["DataInfiniteLoader.test.tsx"],"sourcesContent":["import React from 'react';\n\nimport {fireEvent, render, screen} from '@testing-library/react';\n\nimport type {ErrorViewProps} from '../../types';\nimport {DataInfiniteLoader} from '../DataInfiniteLoader';\nimport type {DataInfiniteLoaderProps, MoreViewProps} 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);\nconst MockMoreView: React.FC<MoreViewProps> = ({isLoading, onClick}) => (\n <div data-testid=\"more-view\">\n {isLoading ? (\n <span data-testid=\"more-view-loading\">Loading more...</span>\n ) : (\n <button data-testid=\"more-view-button\" onClick={onClick}>\n Load more\n </button>\n )}\n </div>\n);\n\ndescribe('DataInfiniteLoader', () => {\n const renderDataInfiniteLoader = (props: Partial<DataInfiniteLoaderProps<Error>> = {}) => {\n const fetchNextPage = jest.fn();\n const defaultProps: DataInfiniteLoaderProps<Error> = {\n status: 'success',\n error: null,\n hasNextPage: true,\n fetchNextPage,\n isFetchingNextPage: false,\n LoadingView: MockLoadingView,\n ErrorView: MockErrorView,\n MoreView: MockMoreView,\n children: <div data-testid=\"content\">Content</div>,\n };\n\n return {\n ...render(<DataInfiniteLoader {...defaultProps} {...props} />),\n fetchNextPage,\n };\n };\n\n it('should render children and MoreView when status is success and hasNextPage is true', () => {\n renderDataInfiniteLoader({status: 'success', hasNextPage: true});\n expect(screen.getByTestId('content')).toBeInTheDocument();\n expect(screen.getByTestId('more-view')).toBeInTheDocument();\n expect(screen.queryByTestId('loading-view')).not.toBeInTheDocument();\n expect(screen.queryByTestId('error-view')).not.toBeInTheDocument();\n });\n\n it('should render only children when status is success and hasNextPage is false', () => {\n renderDataInfiniteLoader({status: 'success', hasNextPage: false});\n expect(screen.getByTestId('content')).toBeInTheDocument();\n expect(screen.queryByTestId('more-view')).not.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 renderDataInfiniteLoader({status: 'loading'});\n expect(screen.getByTestId('loading-view')).toBeInTheDocument();\n expect(screen.queryByTestId('content')).not.toBeInTheDocument();\n expect(screen.queryByTestId('more-view')).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 renderDataInfiniteLoader({status: 'error', error});\n expect(screen.getByTestId('error-view')).toBeInTheDocument();\n expect(screen.queryByTestId('content')).not.toBeInTheDocument();\n expect(screen.queryByTestId('more-view')).not.toBeInTheDocument();\n expect(screen.queryByTestId('loading-view')).not.toBeInTheDocument();\n expect(screen.getByText(/Test error/)).toBeInTheDocument();\n });\n\n it('should call fetchNextPage when clicking on load more button', () => {\n const {fetchNextPage} = renderDataInfiniteLoader({\n status: 'success',\n hasNextPage: true,\n isFetchingNextPage: false,\n });\n fireEvent.click(screen.getByTestId('more-view-button'));\n expect(fetchNextPage).toHaveBeenCalledTimes(1);\n });\n\n it('should show loading state in MoreView when isFetchingNextPage is true', () => {\n renderDataInfiniteLoader({\n status: 'success',\n hasNextPage: true,\n isFetchingNextPage: true,\n });\n expect(screen.getByTestId('more-view-loading')).toBeInTheDocument();\n expect(screen.queryByTestId('more-view-button')).not.toBeInTheDocument();\n });\n\n it('should pass errorAction to ErrorView', () => {\n const error = new Error('Test error');\n const errorAction = jest.fn();\n renderDataInfiniteLoader({\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 renderDataInfiniteLoader({\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 renderDataInfiniteLoader({\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 renderDataInfiniteLoader({\n status: 'error',\n error,\n ErrorView,\n errorViewProps,\n });\n expect(ErrorView).toHaveBeenCalledWith(expect.objectContaining(errorViewProps), undefined);\n });\n\n it('should pass moreViewProps to MoreView', () => {\n const MoreView = jest.fn(MockMoreView);\n const moreViewProps = {customProp: 'test'};\n renderDataInfiniteLoader({\n status: 'success',\n hasNextPage: true,\n MoreView,\n moreViewProps,\n });\n expect(MoreView).toHaveBeenCalledWith(expect.objectContaining(moreViewProps), undefined);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,119 @@
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
@@ -0,0 +1 @@
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":[]}
@@ -3,4 +3,4 @@ import type { DataManager } from '../core';
3
3
  export interface WithDataManagerProps {
4
4
  dataManager: DataManager;
5
5
  }
6
- export declare const withDataManager: <T extends WithDataManagerProps>(WrappedComponent: React.ComponentType<WithDataManagerProps>) => React.FC<T>;
6
+ export declare const withDataManager: <T>(Component: React.ComponentType<T & WithDataManagerProps>) => React.FC<T>;
@@ -9,14 +9,14 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _DataManagerContext = require("./DataManagerContext");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- var withDataManager = exports.withDataManager = function withDataManager(WrappedComponent) {
12
+ var withDataManager = exports.withDataManager = function withDataManager(Component) {
13
13
  var ComponentWithDataManager = function ComponentWithDataManager(props) {
14
14
  var dataManager = (0, _DataManagerContext.useDataManager)();
15
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
16
16
  dataManager: dataManager
17
17
  }));
18
18
  };
19
- ComponentWithDataManager.displayName = "WithDataManager".concat(WrappedComponent.displayName || WrappedComponent.name || 'Component');
19
+ ComponentWithDataManager.displayName = "WithDataManager".concat(Component.displayName || Component.name || 'Component');
20
20
  return ComponentWithDataManager;
21
21
  };
22
22
  // #sourceMappingURL=withDataManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_DataManagerContext","_jsxRuntime","e","__esModule","default","withDataManager","exports","WrappedComponent","ComponentWithDataManager","props","dataManager","useDataManager","_jsx","_objectSpread","displayName","concat","name"],"sources":["withDataManager.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {DataManager} from '../core';\n\nimport {useDataManager} from './DataManagerContext';\n\nexport interface WithDataManagerProps {\n dataManager: DataManager;\n}\n\nexport const withDataManager = <T extends WithDataManagerProps>(\n WrappedComponent: React.ComponentType<WithDataManagerProps>,\n) => {\n const ComponentWithDataManager: React.FC<T> = (props) => {\n const dataManager = useDataManager();\n\n return <WrappedComponent {...props} dataManager={dataManager} />;\n };\n\n ComponentWithDataManager.displayName = `WithDataManager${\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n }`;\n\n return ComponentWithDataManager;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAAoD,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM7C,IAAMG,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,SAAlBA,eAAeA,CACxBE,gBAA2D,EAC1D;EACD,IAAMC,wBAAqC,GAAG,SAAxCA,wBAAqCA,CAAIC,KAAK,EAAK;IACrD,IAAMC,WAAW,GAAG,IAAAC,kCAAc,EAAC,CAAC;IAEpC,oBAAO,IAAAC,eAAA,EAACL,gBAAgB,MAAAM,sBAAA,MAAAA,sBAAA,MAAKJ,KAAK;MAAEC,WAAW,EAAEA;IAAY,EAAE,CAAC;EACpE,CAAC;EAEDF,wBAAwB,CAACM,WAAW,qBAAAC,MAAA,CAChCR,gBAAgB,CAACO,WAAW,IAAIP,gBAAgB,CAACS,IAAI,IAAI,WAAW,CACtE;EAEF,OAAOR,wBAAwB;AACnC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_DataManagerContext","_jsxRuntime","e","__esModule","default","withDataManager","exports","Component","ComponentWithDataManager","props","dataManager","useDataManager","_jsx","_objectSpread","displayName","concat","name"],"sources":["withDataManager.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {DataManager} from '../core';\n\nimport {useDataManager} from './DataManagerContext';\n\nexport interface WithDataManagerProps {\n dataManager: DataManager;\n}\n\nexport const withDataManager = <T,>(Component: React.ComponentType<T & WithDataManagerProps>) => {\n const ComponentWithDataManager: React.FC<T> = (props) => {\n const dataManager = useDataManager();\n\n return <Component {...props} dataManager={dataManager} />;\n };\n\n ComponentWithDataManager.displayName = `WithDataManager${\n Component.displayName || Component.name || 'Component'\n }`;\n\n return ComponentWithDataManager;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,mBAAA,GAAAD,OAAA;AAAoD,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM7C,IAAMG,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,SAAlBA,eAAeA,CAAQE,SAAwD,EAAK;EAC7F,IAAMC,wBAAqC,GAAG,SAAxCA,wBAAqCA,CAAIC,KAAK,EAAK;IACrD,IAAMC,WAAW,GAAG,IAAAC,kCAAc,EAAC,CAAC;IAEpC,oBAAO,IAAAC,eAAA,EAACL,SAAS,MAAAM,sBAAA,MAAAA,sBAAA,MAAKJ,KAAK;MAAEC,WAAW,EAAEA;IAAY,EAAE,CAAC;EAC7D,CAAC;EAEDF,wBAAwB,CAACM,WAAW,qBAAAC,MAAA,CAChCR,SAAS,CAACO,WAAW,IAAIP,SAAS,CAACS,IAAI,IAAI,WAAW,CACxD;EAEF,OAAOR,wBAAwB;AACnC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare const undefinedSymbol: unique symbol;
2
+ export declare const nullSymbol: unique symbol;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.undefinedSymbol = exports.nullSymbol = void 0;
7
+ var undefinedSymbol = exports.undefinedSymbol = Symbol('undefined');
8
+ var nullSymbol = exports.nullSymbol = Symbol('null');
9
+ // #sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["undefinedSymbol","exports","Symbol","nullSymbol"],"sources":["constants.ts"],"sourcesContent":["export const undefinedSymbol = Symbol('undefined');\nexport const nullSymbol = Symbol('null');\n"],"mappings":";;;;;;AAAO,IAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAGE,MAAM,CAAC,WAAW,CAAC;AAC3C,IAAMC,UAAU,GAAAF,OAAA,CAAAE,UAAA,GAAGD,MAAM,CAAC,MAAM,CAAC","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
4
+ var _reactQuery = require("@tanstack/react-query");
5
+ var _react = require("@testing-library/react");
6
+ var _useQueryContext = require("../useQueryContext");
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ jest.mock('@tanstack/react-query', function () {
9
+ var originalModule = jest.requireActual('@tanstack/react-query');
10
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalModule), {}, {
11
+ useQueryClient: jest.fn()
12
+ });
13
+ });
14
+ describe('useQueryContext', function () {
15
+ var mockQueryClient = new _reactQuery.QueryClient();
16
+ beforeEach(function () {
17
+ jest.clearAllMocks();
18
+ _reactQuery.useQueryClient.mockReturnValue(mockQueryClient);
19
+ });
20
+ it('should return context with queryClient', function () {
21
+ var _renderHook = (0, _react.renderHook)(function () {
22
+ return (0, _useQueryContext.useQueryContext)();
23
+ }),
24
+ result = _renderHook.result;
25
+ expect(result.current).toEqual({
26
+ queryClient: mockQueryClient
27
+ });
28
+ });
29
+ it('should memoize the context', function () {
30
+ var _renderHook2 = (0, _react.renderHook)(function () {
31
+ return (0, _useQueryContext.useQueryContext)();
32
+ }),
33
+ result = _renderHook2.result,
34
+ rerender = _renderHook2.rerender;
35
+ var firstResult = result.current;
36
+ rerender();
37
+ expect(result.current).toBe(firstResult);
38
+ });
39
+ it('should update context when queryClient changes', function () {
40
+ var _renderHook3 = (0, _react.renderHook)(function () {
41
+ return (0, _useQueryContext.useQueryContext)();
42
+ }),
43
+ result = _renderHook3.result,
44
+ rerender = _renderHook3.rerender;
45
+ var firstResult = result.current;
46
+ var newMockQueryClient = new _reactQuery.QueryClient();
47
+ _reactQuery.useQueryClient.mockReturnValue(newMockQueryClient);
48
+ rerender();
49
+ expect(result.current).not.toBe(firstResult);
50
+ expect(result.current).toEqual({
51
+ queryClient: newMockQueryClient
52
+ });
53
+ });
54
+ });
55
+ // #sourceMappingURL=useQueryContext.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","_react","_useQueryContext","_interopRequireDefault","e","__esModule","default","jest","mock","originalModule","requireActual","_objectSpread","useQueryClient","fn","describe","mockQueryClient","QueryClient","beforeEach","clearAllMocks","mockReturnValue","it","_renderHook","renderHook","useQueryContext","result","expect","current","toEqual","queryClient","_renderHook2","rerender","firstResult","toBe","_renderHook3","newMockQueryClient","not"],"sources":["useQueryContext.test.ts"],"sourcesContent":["import {QueryClient, useQueryClient} from '@tanstack/react-query';\nimport {renderHook} from '@testing-library/react';\n\nimport {useQueryContext} from '../useQueryContext';\n\njest.mock('@tanstack/react-query', () => {\n const originalModule = jest.requireActual('@tanstack/react-query');\n return {\n ...originalModule,\n useQueryClient: jest.fn(),\n };\n});\n\ndescribe('useQueryContext', () => {\n const mockQueryClient = new QueryClient();\n\n beforeEach(() => {\n jest.clearAllMocks();\n\n (useQueryClient as jest.Mock).mockReturnValue(mockQueryClient);\n });\n\n it('should return context with queryClient', () => {\n const {result} = renderHook(() => useQueryContext());\n\n expect(result.current).toEqual({queryClient: mockQueryClient});\n });\n\n it('should memoize the context', () => {\n const {result, rerender} = renderHook(() => useQueryContext());\n\n const firstResult = result.current;\n\n rerender();\n\n expect(result.current).toBe(firstResult);\n });\n\n it('should update context when queryClient changes', () => {\n const {result, rerender} = renderHook(() => useQueryContext());\n\n const firstResult = result.current;\n\n const newMockQueryClient = new QueryClient();\n\n (useQueryClient as jest.Mock).mockReturnValue(newMockQueryClient);\n\n rerender();\n\n expect(result.current).not.toBe(firstResult);\n expect(result.current).toEqual({queryClient: newMockQueryClient});\n });\n});\n"],"mappings":";;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,gBAAA,GAAAF,OAAA;AAAkD,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAElDG,IAAI,CAACC,IAAI,CAAC,uBAAuB,EAAE,YAAM;EACrC,IAAMC,cAAc,GAAGF,IAAI,CAACG,aAAa,CAAC,uBAAuB,CAAC;EAClE,WAAAC,sBAAA,MAAAA,sBAAA,MACOF,cAAc;IACjBG,cAAc,EAAEL,IAAI,CAACM,EAAE,CAAC;EAAC;AAEjC,CAAC,CAAC;AAEFC,QAAQ,CAAC,iBAAiB,EAAE,YAAM;EAC9B,IAAMC,eAAe,GAAG,IAAIC,uBAAW,CAAC,CAAC;EAEzCC,UAAU,CAAC,YAAM;IACbV,IAAI,CAACW,aAAa,CAAC,CAAC;IAEnBN,0BAAc,CAAeO,eAAe,CAACJ,eAAe,CAAC;EAClE,CAAC,CAAC;EAEFK,EAAE,CAAC,wCAAwC,EAAE,YAAM;IAC/C,IAAAC,WAAA,GAAiB,IAAAC,iBAAU,EAAC;QAAA,OAAM,IAAAC,gCAAe,EAAC,CAAC;MAAA,EAAC;MAA7CC,MAAM,GAAAH,WAAA,CAANG,MAAM;IAEbC,MAAM,CAACD,MAAM,CAACE,OAAO,CAAC,CAACC,OAAO,CAAC;MAACC,WAAW,EAAEb;IAAe,CAAC,CAAC;EAClE,CAAC,CAAC;EAEFK,EAAE,CAAC,4BAA4B,EAAE,YAAM;IACnC,IAAAS,YAAA,GAA2B,IAAAP,iBAAU,EAAC;QAAA,OAAM,IAAAC,gCAAe,EAAC,CAAC;MAAA,EAAC;MAAvDC,MAAM,GAAAK,YAAA,CAANL,MAAM;MAAEM,QAAQ,GAAAD,YAAA,CAARC,QAAQ;IAEvB,IAAMC,WAAW,GAAGP,MAAM,CAACE,OAAO;IAElCI,QAAQ,CAAC,CAAC;IAEVL,MAAM,CAACD,MAAM,CAACE,OAAO,CAAC,CAACM,IAAI,CAACD,WAAW,CAAC;EAC5C,CAAC,CAAC;EAEFX,EAAE,CAAC,gDAAgD,EAAE,YAAM;IACvD,IAAAa,YAAA,GAA2B,IAAAX,iBAAU,EAAC;QAAA,OAAM,IAAAC,gCAAe,EAAC,CAAC;MAAA,EAAC;MAAvDC,MAAM,GAAAS,YAAA,CAANT,MAAM;MAAEM,QAAQ,GAAAG,YAAA,CAARH,QAAQ;IAEvB,IAAMC,WAAW,GAAGP,MAAM,CAACE,OAAO;IAElC,IAAMQ,kBAAkB,GAAG,IAAIlB,uBAAW,CAAC,CAAC;IAE3CJ,0BAAc,CAAeO,eAAe,CAACe,kBAAkB,CAAC;IAEjEJ,QAAQ,CAAC,CAAC;IAEVL,MAAM,CAACD,MAAM,CAACE,OAAO,CAAC,CAACS,GAAG,CAACH,IAAI,CAACD,WAAW,CAAC;IAC5CN,MAAM,CAACD,MAAM,CAACE,OAAO,CAAC,CAACC,OAAO,CAAC;MAACC,WAAW,EAAEM;IAAkB,CAAC,CAAC;EACrE,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _reactQuery = require("@tanstack/react-query");
4
+ var _react = require("@testing-library/react");
5
+ var _hooks = require("../../impl/infinite/hooks");
6
+ var _hooks2 = require("../../impl/plain/hooks");
7
+ var _notReachable = require("../../utils/notReachable");
8
+ var _useQueryContext = require("../useQueryContext");
9
+ var _useQueryData = require("../useQueryData");
10
+ jest.mock('../useQueryContext');
11
+ jest.mock('../../impl/plain/hooks');
12
+ jest.mock('../../impl/infinite/hooks');
13
+ jest.mock('../../utils/notReachable');
14
+ describe('useQueryData', function () {
15
+ var mockQueryClient = new _reactQuery.QueryClient();
16
+ var mockContext = {
17
+ queryClient: mockQueryClient
18
+ };
19
+ var mockPlainState = {
20
+ status: 'success',
21
+ data: 'plain data'
22
+ };
23
+ var mockInfiniteState = {
24
+ status: 'success',
25
+ data: ['infinite data']
26
+ };
27
+ beforeEach(function () {
28
+ jest.clearAllMocks();
29
+ _useQueryContext.useQueryContext.mockReturnValue(mockContext);
30
+ _hooks2.usePlainQueryData.mockReturnValue(mockPlainState);
31
+ _hooks.useInfiniteQueryData.mockReturnValue(mockInfiniteState);
32
+ _notReachable.notReachable.mockReturnValue('not reachable');
33
+ });
34
+ it('should call usePlainQueryData for plain data source', function () {
35
+ var dataSource = {
36
+ type: 'plain',
37
+ name: 'test',
38
+ fetch: jest.fn()
39
+ };
40
+ var params = {
41
+ id: 1
42
+ };
43
+ var options = {
44
+ refetchInterval: 1000
45
+ };
46
+ var _renderHook = (0, _react.renderHook)(function () {
47
+ return (0, _useQueryData.useQueryData)(dataSource, params, options);
48
+ }),
49
+ result = _renderHook.result;
50
+ expect(_useQueryContext.useQueryContext).toHaveBeenCalled();
51
+ expect(_hooks2.usePlainQueryData).toHaveBeenCalledWith(mockContext, dataSource, params, options);
52
+ expect(_hooks.useInfiniteQueryData).not.toHaveBeenCalled();
53
+ expect(result.current).toBe(mockPlainState);
54
+ });
55
+ it('should call useInfiniteQueryData for infinite data source', function () {
56
+ var dataSource = {
57
+ type: 'infinite',
58
+ name: 'test',
59
+ fetch: jest.fn(),
60
+ next: jest.fn()
61
+ };
62
+ var params = {
63
+ id: 1
64
+ };
65
+ var options = {
66
+ refetchInterval: 1000
67
+ };
68
+ var _renderHook2 = (0, _react.renderHook)(function () {
69
+ return (0, _useQueryData.useQueryData)(dataSource, params, options);
70
+ }),
71
+ result = _renderHook2.result;
72
+ expect(_useQueryContext.useQueryContext).toHaveBeenCalled();
73
+ expect(_hooks.useInfiniteQueryData).toHaveBeenCalledWith(mockContext, dataSource, params, options);
74
+ expect(_hooks2.usePlainQueryData).not.toHaveBeenCalled();
75
+ expect(result.current).toBe(mockInfiniteState);
76
+ });
77
+ it('should call notReachable for unknown data source type', function () {
78
+ var dataSource = {
79
+ type: 'unknown',
80
+ name: 'test',
81
+ fetch: jest.fn()
82
+ };
83
+ var params = {
84
+ id: 1
85
+ };
86
+ _notReachable.notReachable.mockImplementation(function () {
87
+ return 'not reachable';
88
+ });
89
+ (0, _react.renderHook)(function () {
90
+ return (0, _useQueryData.useQueryData)(dataSource, params);
91
+ });
92
+ expect(_hooks2.usePlainQueryData).not.toHaveBeenCalled();
93
+ expect(_hooks.useInfiniteQueryData).not.toHaveBeenCalled();
94
+ expect(_notReachable.notReachable).toHaveBeenCalledWith('unknown', expect.any(String));
95
+ });
96
+ });
97
+ // #sourceMappingURL=useQueryData.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactQuery","require","_react","_hooks","_hooks2","_notReachable","_useQueryContext","_useQueryData","jest","mock","describe","mockQueryClient","QueryClient","mockContext","queryClient","mockPlainState","status","data","mockInfiniteState","beforeEach","clearAllMocks","useQueryContext","mockReturnValue","usePlainQueryData","useInfiniteQueryData","notReachable","it","dataSource","type","name","fetch","fn","params","id","options","refetchInterval","_renderHook","renderHook","useQueryData","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,77 @@
1
+ "use strict";
2
+
3
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
4
+ var _react = require("@testing-library/react");
5
+ var _core = require("../../../core");
6
+ var _useQueryResponses = require("../useQueryResponses");
7
+ var _useRefetchAll = require("../useRefetchAll");
8
+ var _useRefetchErrored = require("../useRefetchErrored");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ jest.mock('../useRefetchAll');
11
+ jest.mock('../useRefetchErrored');
12
+ jest.mock('../../../core', function () {
13
+ var originalModule = jest.requireActual('../../../core');
14
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalModule), {}, {
15
+ getStatus: jest.fn(),
16
+ getError: jest.fn()
17
+ });
18
+ });
19
+ describe('useQueryResponses', function () {
20
+ var mockRefetchAll = jest.fn();
21
+ var mockRefetchErrored = jest.fn();
22
+ beforeEach(function () {
23
+ jest.clearAllMocks();
24
+ _useRefetchAll.useRefetchAll.mockReturnValue(mockRefetchAll);
25
+ _useRefetchErrored.useRefetchErrored.mockReturnValue(mockRefetchErrored);
26
+ _core.getStatus.mockReturnValue('success');
27
+ _core.getError.mockReturnValue(null);
28
+ });
29
+ it('should return combined status, error, and refetch functions', function () {
30
+ var responses = [{
31
+ status: 'loading',
32
+ error: null,
33
+ refetch: jest.fn()
34
+ }, {
35
+ status: 'success',
36
+ error: null,
37
+ refetch: jest.fn()
38
+ }, {
39
+ status: 'error',
40
+ error: {
41
+ message: 'Error'
42
+ },
43
+ refetch: jest.fn()
44
+ }];
45
+ var _renderHook = (0, _react.renderHook)(function () {
46
+ return (0, _useQueryResponses.useQueryResponses)(responses);
47
+ }),
48
+ result = _renderHook.result;
49
+ expect(_core.getStatus).toHaveBeenCalledWith(responses);
50
+ expect(_core.getError).toHaveBeenCalledWith(responses);
51
+ expect(_useRefetchAll.useRefetchAll).toHaveBeenCalledWith(responses);
52
+ expect(_useRefetchErrored.useRefetchErrored).toHaveBeenCalledWith(responses);
53
+ expect(result.current).toEqual({
54
+ status: 'success',
55
+ error: null,
56
+ refetch: mockRefetchAll,
57
+ refetchErrored: mockRefetchErrored
58
+ });
59
+ });
60
+ it('should handle empty responses array', function () {
61
+ var _renderHook2 = (0, _react.renderHook)(function () {
62
+ return (0, _useQueryResponses.useQueryResponses)([]);
63
+ }),
64
+ result = _renderHook2.result;
65
+ expect(_core.getStatus).toHaveBeenCalledWith([]);
66
+ expect(_core.getError).toHaveBeenCalledWith([]);
67
+ expect(_useRefetchAll.useRefetchAll).toHaveBeenCalledWith([]);
68
+ expect(_useRefetchErrored.useRefetchErrored).toHaveBeenCalledWith([]);
69
+ expect(result.current).toEqual({
70
+ status: 'success',
71
+ error: null,
72
+ refetch: mockRefetchAll,
73
+ refetchErrored: mockRefetchErrored
74
+ });
75
+ });
76
+ });
77
+ // #sourceMappingURL=useQueryResponses.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_core","_useQueryResponses","_useRefetchAll","_useRefetchErrored","_interopRequireDefault","e","__esModule","default","jest","mock","originalModule","requireActual","_objectSpread","getStatus","fn","getError","describe","mockRefetchAll","mockRefetchErrored","beforeEach","clearAllMocks","useRefetchAll","mockReturnValue","useRefetchErrored","it","responses","status","error","refetch","message","_renderHook","renderHook","useQueryResponses","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":"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","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _react = require("@testing-library/react");
4
+ var _useRefetchAll = require("../useRefetchAll");
5
+ describe('useRefetchAll', function () {
6
+ it('should return a function that calls refetch on all states', function () {
7
+ var refetch1 = jest.fn();
8
+ var refetch2 = jest.fn();
9
+ var refetch3 = jest.fn();
10
+ var states = [{
11
+ refetch: refetch1
12
+ }, {
13
+ refetch: refetch2
14
+ }, {
15
+ refetch: refetch3
16
+ }];
17
+ var _renderHook = (0, _react.renderHook)(function () {
18
+ return (0, _useRefetchAll.useRefetchAll)(states);
19
+ }),
20
+ result = _renderHook.result;
21
+ expect(result.current).toEqual(expect.any(Function));
22
+ (0, _react.act)(function () {
23
+ result.current();
24
+ });
25
+ expect(refetch1).toHaveBeenCalledTimes(1);
26
+ expect(refetch2).toHaveBeenCalledTimes(1);
27
+ expect(refetch3).toHaveBeenCalledTimes(1);
28
+ });
29
+ it('should handle empty states array', function () {
30
+ var _renderHook2 = (0, _react.renderHook)(function () {
31
+ return (0, _useRefetchAll.useRefetchAll)([]);
32
+ }),
33
+ result = _renderHook2.result;
34
+ (0, _react.act)(function () {
35
+ result.current();
36
+ });
37
+ });
38
+ it('should memoize the refetch function when dependencies do not change', function () {
39
+ var refetch1 = jest.fn();
40
+ var refetch2 = jest.fn();
41
+ var states = [{
42
+ refetch: refetch1
43
+ }, {
44
+ refetch: refetch2
45
+ }];
46
+ var _renderHook3 = (0, _react.renderHook)(function () {
47
+ return (0, _useRefetchAll.useRefetchAll)(states);
48
+ }),
49
+ result = _renderHook3.result,
50
+ rerender = _renderHook3.rerender;
51
+ var firstRefetchAll = result.current;
52
+ rerender();
53
+ expect(result.current).toBe(firstRefetchAll);
54
+ });
55
+ it('should create a new refetch function when dependencies change', function () {
56
+ var refetch1 = jest.fn();
57
+ var refetch2 = jest.fn();
58
+ var refetch3 = jest.fn();
59
+ var states = [{
60
+ refetch: refetch1
61
+ }, {
62
+ refetch: refetch2
63
+ }];
64
+ var _renderHook4 = (0, _react.renderHook)(function () {
65
+ return (0, _useRefetchAll.useRefetchAll)(states);
66
+ }),
67
+ result = _renderHook4.result,
68
+ rerender = _renderHook4.rerender;
69
+ var firstRefetchAll = result.current;
70
+ states = [{
71
+ refetch: refetch1
72
+ }, {
73
+ refetch: refetch3
74
+ }];
75
+ rerender();
76
+ expect(result.current).not.toBe(firstRefetchAll);
77
+ });
78
+ });
79
+ // #sourceMappingURL=useRefetchAll.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_useRefetchAll","describe","it","refetch1","jest","fn","refetch2","refetch3","states","refetch","_renderHook","renderHook","useRefetchAll","result","expect","current","toEqual","any","Function","act","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":[]}