@gravity-ui/data-source 0.8.2 → 0.9.1-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.
Files changed (272) hide show
  1. package/build/cjs/core/types/DataSource.d.ts +8 -8
  2. package/build/cjs/core/types/DataSource.js.map +1 -1
  3. package/build/cjs/core/utils/withCatch.d.ts +4 -1
  4. package/build/cjs/core/utils/withCatch.js +2 -0
  5. package/build/cjs/core/utils/withCatch.js.map +1 -1
  6. package/build/cjs/react/components/AsyncBoundary/AsyncBoundary.d.ts +3 -0
  7. package/build/cjs/react/components/AsyncBoundary/AsyncBoundary.js +35 -0
  8. package/build/cjs/react/components/AsyncBoundary/AsyncBoundary.js.map +1 -0
  9. package/build/cjs/react/components/AsyncBoundary/index.d.ts +3 -0
  10. package/build/cjs/react/components/AsyncBoundary/index.js +20 -0
  11. package/build/cjs/react/components/AsyncBoundary/index.js.map +1 -0
  12. package/build/cjs/react/components/AsyncBoundary/types.d.ts +13 -0
  13. package/build/cjs/react/components/AsyncBoundary/types.js +6 -0
  14. package/build/cjs/react/components/AsyncBoundary/types.js.map +1 -0
  15. package/build/cjs/react/components/AsyncBoundary/withAsyncBoundary.d.ts +3 -0
  16. package/build/cjs/react/components/AsyncBoundary/withAsyncBoundary.js +26 -0
  17. package/build/cjs/react/components/AsyncBoundary/withAsyncBoundary.js.map +1 -0
  18. package/build/cjs/react/components/EmptyView/EmptyView.d.ts +2 -0
  19. package/build/cjs/react/components/EmptyView/EmptyView.js +10 -0
  20. package/build/cjs/react/components/EmptyView/EmptyView.js.map +1 -0
  21. package/build/cjs/react/components/EmptyView/index.d.ts +1 -0
  22. package/build/cjs/react/components/EmptyView/index.js +13 -0
  23. package/build/cjs/react/components/EmptyView/index.js.map +1 -0
  24. package/build/cjs/react/components/types.d.ts +1 -1
  25. package/build/cjs/react/components/types.js.map +1 -1
  26. package/build/cjs/react/index.d.ts +5 -3
  27. package/build/cjs/react/index.js +27 -3
  28. package/build/cjs/react/index.js.map +1 -1
  29. package/build/cjs/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.d.ts +3 -0
  30. package/build/cjs/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js +23 -0
  31. package/build/cjs/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js.map +1 -0
  32. package/build/cjs/react-query/components/QueryAsyncBoundary/index.d.ts +3 -0
  33. package/build/cjs/react-query/components/QueryAsyncBoundary/index.js +20 -0
  34. package/build/cjs/react-query/components/QueryAsyncBoundary/index.js.map +1 -0
  35. package/build/cjs/react-query/components/QueryAsyncBoundary/types.d.ts +8 -0
  36. package/build/cjs/react-query/components/QueryAsyncBoundary/types.js +6 -0
  37. package/build/cjs/react-query/components/QueryAsyncBoundary/types.js.map +1 -0
  38. package/build/cjs/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.d.ts +3 -0
  39. package/build/cjs/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js +26 -0
  40. package/build/cjs/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js.map +1 -0
  41. package/build/cjs/react-query/hooks/useSuspenseQueryData.d.ts +9 -0
  42. package/build/cjs/react-query/hooks/useSuspenseQueryData.js +22 -0
  43. package/build/cjs/react-query/hooks/useSuspenseQueryData.js.map +1 -0
  44. package/build/cjs/react-query/impl/infinite/hooks.js +5 -1
  45. package/build/cjs/react-query/impl/infinite/hooks.js.map +1 -1
  46. package/build/cjs/react-query/impl/infinite/types.d.ts +1 -0
  47. package/build/cjs/react-query/impl/infinite/types.js.map +1 -1
  48. package/build/cjs/react-query/impl/plain/hooks.js +5 -1
  49. package/build/cjs/react-query/impl/plain/hooks.js.map +1 -1
  50. package/build/cjs/react-query/impl/plain/types.d.ts +1 -0
  51. package/build/cjs/react-query/impl/plain/types.js.map +1 -1
  52. package/build/cjs/react-query/index.d.ts +2 -0
  53. package/build/cjs/react-query/index.js +35 -0
  54. package/build/cjs/react-query/index.js.map +1 -1
  55. package/build/cjs/react-query/types/options.d.ts +5 -0
  56. package/build/cjs/react-query/types/options.js.map +1 -1
  57. package/build/cjs/react-query/utils/warn.d.ts +1 -0
  58. package/build/cjs/react-query/utils/warn.js +15 -0
  59. package/build/cjs/react-query/utils/warn.js.map +1 -0
  60. package/build/cjs/react-query/utils/warnDisabledRefetch.d.ts +1 -0
  61. package/build/cjs/react-query/utils/warnDisabledRefetch.js +27 -0
  62. package/build/cjs/react-query/utils/warnDisabledRefetch.js.map +1 -0
  63. package/build/cjs/react-query/utils/wrapRefetch.d.ts +2 -0
  64. package/build/cjs/react-query/utils/wrapRefetch.js +29 -0
  65. package/build/cjs/react-query/utils/wrapRefetch.js.map +1 -0
  66. package/build/esm/core/types/DataSource.d.ts +8 -8
  67. package/build/esm/core/types/DataSource.js.map +1 -1
  68. package/build/esm/core/utils/withCatch.d.ts +4 -1
  69. package/build/esm/core/utils/withCatch.js +2 -0
  70. package/build/esm/core/utils/withCatch.js.map +1 -1
  71. package/build/esm/react/components/AsyncBoundary/AsyncBoundary.d.ts +3 -0
  72. package/build/esm/react/components/AsyncBoundary/AsyncBoundary.js +28 -0
  73. package/build/esm/react/components/AsyncBoundary/AsyncBoundary.js.map +1 -0
  74. package/build/esm/react/components/AsyncBoundary/index.d.ts +3 -0
  75. package/build/esm/react/components/AsyncBoundary/index.js +3 -0
  76. package/build/esm/react/components/AsyncBoundary/index.js.map +1 -0
  77. package/build/esm/react/components/AsyncBoundary/types.d.ts +13 -0
  78. package/build/esm/react/components/AsyncBoundary/types.js +2 -0
  79. package/build/esm/react/components/AsyncBoundary/types.js.map +1 -0
  80. package/build/esm/react/components/AsyncBoundary/withAsyncBoundary.d.ts +3 -0
  81. package/build/esm/react/components/AsyncBoundary/withAsyncBoundary.js +19 -0
  82. package/build/esm/react/components/AsyncBoundary/withAsyncBoundary.js.map +1 -0
  83. package/build/esm/react/components/EmptyView/EmptyView.d.ts +2 -0
  84. package/build/esm/react/components/EmptyView/EmptyView.js +4 -0
  85. package/build/esm/react/components/EmptyView/EmptyView.js.map +1 -0
  86. package/build/esm/react/components/EmptyView/index.d.ts +1 -0
  87. package/build/esm/react/components/EmptyView/index.js +2 -0
  88. package/build/esm/react/components/EmptyView/index.js.map +1 -0
  89. package/build/esm/react/components/types.d.ts +1 -1
  90. package/build/esm/react/components/types.js.map +1 -1
  91. package/build/esm/react/index.d.ts +5 -3
  92. package/build/esm/react/index.js +4 -2
  93. package/build/esm/react/index.js.map +1 -1
  94. package/build/esm/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.d.ts +3 -0
  95. package/build/esm/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js +16 -0
  96. package/build/esm/react-query/components/QueryAsyncBoundary/QueryAsyncBoundary.js.map +1 -0
  97. package/build/esm/react-query/components/QueryAsyncBoundary/index.d.ts +3 -0
  98. package/build/esm/react-query/components/QueryAsyncBoundary/index.js +3 -0
  99. package/build/esm/react-query/components/QueryAsyncBoundary/index.js.map +1 -0
  100. package/build/esm/react-query/components/QueryAsyncBoundary/types.d.ts +8 -0
  101. package/build/esm/react-query/components/QueryAsyncBoundary/types.js +2 -0
  102. package/build/esm/react-query/components/QueryAsyncBoundary/types.js.map +1 -0
  103. package/build/esm/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.d.ts +3 -0
  104. package/build/esm/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js +19 -0
  105. package/build/esm/react-query/components/QueryAsyncBoundary/withQueryAsyncBoundary.js.map +1 -0
  106. package/build/esm/react-query/hooks/useSuspenseQueryData.d.ts +9 -0
  107. package/build/esm/react-query/hooks/useSuspenseQueryData.js +15 -0
  108. package/build/esm/react-query/hooks/useSuspenseQueryData.js.map +1 -0
  109. package/build/esm/react-query/impl/infinite/hooks.js +6 -2
  110. package/build/esm/react-query/impl/infinite/hooks.js.map +1 -1
  111. package/build/esm/react-query/impl/infinite/types.d.ts +1 -0
  112. package/build/esm/react-query/impl/infinite/types.js.map +1 -1
  113. package/build/esm/react-query/impl/plain/hooks.js +6 -2
  114. package/build/esm/react-query/impl/plain/hooks.js.map +1 -1
  115. package/build/esm/react-query/impl/plain/types.d.ts +1 -0
  116. package/build/esm/react-query/impl/plain/types.js.map +1 -1
  117. package/build/esm/react-query/index.d.ts +2 -0
  118. package/build/esm/react-query/index.js +2 -0
  119. package/build/esm/react-query/index.js.map +1 -1
  120. package/build/esm/react-query/types/options.d.ts +5 -0
  121. package/build/esm/react-query/types/options.js.map +1 -1
  122. package/build/esm/react-query/utils/warn.d.ts +1 -0
  123. package/build/esm/react-query/utils/warn.js +9 -0
  124. package/build/esm/react-query/utils/warn.js.map +1 -0
  125. package/build/esm/react-query/utils/warnDisabledRefetch.d.ts +1 -0
  126. package/build/esm/react-query/utils/warnDisabledRefetch.js +20 -0
  127. package/build/esm/react-query/utils/warnDisabledRefetch.js.map +1 -0
  128. package/build/esm/react-query/utils/wrapRefetch.d.ts +2 -0
  129. package/build/esm/react-query/utils/wrapRefetch.js +22 -0
  130. package/build/esm/react-query/utils/wrapRefetch.js.map +1 -0
  131. package/build/plugin/esbuild.d.mts +7 -0
  132. package/build/plugin/esbuild.mjs +6 -0
  133. package/build/plugin/factory-2tSt4Rte.mjs +513 -0
  134. package/build/plugin/index-mY40Sgl5.d.mts +24 -0
  135. package/build/plugin/index.d.mts +7 -0
  136. package/build/plugin/index.mjs +6 -0
  137. package/build/plugin/rollup.d.mts +6 -0
  138. package/build/plugin/rollup.mjs +6 -0
  139. package/build/plugin/rspack.d.mts +7 -0
  140. package/build/plugin/rspack.mjs +6 -0
  141. package/build/plugin/typings/client.d.ts +11 -0
  142. package/build/plugin/vite.d.mts +6 -0
  143. package/build/plugin/vite.mjs +6 -0
  144. package/build/plugin/webpack.d.mts +7 -0
  145. package/build/plugin/webpack.mjs +6 -0
  146. package/package.json +54 -5
  147. package/build/cjs/core/utils/__tests__/composeFullKey.test.js +0 -34
  148. package/build/cjs/core/utils/__tests__/composeFullKey.test.js.map +0 -1
  149. package/build/cjs/core/utils/__tests__/composeKey.test.js +0 -32
  150. package/build/cjs/core/utils/__tests__/composeKey.test.js.map +0 -1
  151. package/build/cjs/core/utils/__tests__/getError.test.js +0 -31
  152. package/build/cjs/core/utils/__tests__/getError.test.js.map +0 -1
  153. package/build/cjs/core/utils/__tests__/getStatus.test.js +0 -49
  154. package/build/cjs/core/utils/__tests__/getStatus.test.js.map +0 -1
  155. package/build/cjs/core/utils/__tests__/hasTag.test.js +0 -31
  156. package/build/cjs/core/utils/__tests__/hasTag.test.js.map +0 -1
  157. package/build/cjs/core/utils/__tests__/mergeStatuses.test.js +0 -25
  158. package/build/cjs/core/utils/__tests__/mergeStatuses.test.js.map +0 -1
  159. package/build/cjs/core/utils/__tests__/skipContext.test.js +0 -70
  160. package/build/cjs/core/utils/__tests__/skipContext.test.js.map +0 -1
  161. package/build/cjs/core/utils/__tests__/withCancellation.test.js +0 -106
  162. package/build/cjs/core/utils/__tests__/withCancellation.test.js.map +0 -1
  163. package/build/cjs/core/utils/__tests__/withCatch.test.js +0 -208
  164. package/build/cjs/core/utils/__tests__/withCatch.test.js.map +0 -1
  165. package/build/cjs/react/__tests__/DataManagerContext.test.js +0 -47
  166. package/build/cjs/react/__tests__/DataManagerContext.test.js.map +0 -1
  167. package/build/cjs/react/__tests__/withDataManager.test.js +0 -61
  168. package/build/cjs/react/__tests__/withDataManager.test.js.map +0 -1
  169. package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +0 -187
  170. package/build/cjs/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +0 -1
  171. package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js +0 -119
  172. package/build/cjs/react/components/DataLoader/__tests__/DataLoader.test.js.map +0 -1
  173. package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js +0 -177
  174. package/build/cjs/react-query/__tests__/createQueryNormalizer.test.js.map +0 -1
  175. package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js +0 -100
  176. package/build/cjs/react-query/__tests__/normalizationEdgeCases.test.js.map +0 -1
  177. package/build/cjs/react-query/__tests__/subscriptions.test.js +0 -1180
  178. package/build/cjs/react-query/__tests__/subscriptions.test.js.map +0 -1
  179. package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js +0 -659
  180. package/build/cjs/react-query/__tests__/threeLevelIntegration.test.js.map +0 -1
  181. package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js +0 -229
  182. package/build/cjs/react-query/__tests__/updateQueriesFromMutationData.test.js.map +0 -1
  183. package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js +0 -55
  184. package/build/cjs/react-query/hooks/__tests__/useQueryContext.test.js.map +0 -1
  185. package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js +0 -97
  186. package/build/cjs/react-query/hooks/__tests__/useQueryData.test.js.map +0 -1
  187. package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js +0 -77
  188. package/build/cjs/react-query/hooks/__tests__/useQueryResponses.test.js.map +0 -1
  189. package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js +0 -79
  190. package/build/cjs/react-query/hooks/__tests__/useRefetchAll.test.js.map +0 -1
  191. package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js +0 -117
  192. package/build/cjs/react-query/hooks/__tests__/useRefetchErrored.test.js.map +0 -1
  193. package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js +0 -156
  194. package/build/cjs/react-query/hooks/__tests__/useRefetchInterval.test.js.map +0 -1
  195. package/build/cjs/react-query/utils/__tests__/checkMutationObjectsKeys.test.js +0 -295
  196. package/build/cjs/react-query/utils/__tests__/checkMutationObjectsKeys.test.js.map +0 -1
  197. package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js +0 -27
  198. package/build/cjs/react-query/utils/__tests__/formatNullableValue.test.js.map +0 -1
  199. package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js +0 -76
  200. package/build/cjs/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +0 -1
  201. package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js +0 -30
  202. package/build/cjs/react-query/utils/__tests__/normalizeStatus.test.js.map +0 -1
  203. package/build/cjs/react-query/utils/__tests__/notReachable.test.js +0 -35
  204. package/build/cjs/react-query/utils/__tests__/notReachable.test.js.map +0 -1
  205. package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js +0 -27
  206. package/build/cjs/react-query/utils/__tests__/parseNullableValue.test.js.map +0 -1
  207. package/build/cjs/setupTests.d.ts +0 -1
  208. package/build/cjs/setupTests.js +0 -4
  209. package/build/cjs/setupTests.js.map +0 -1
  210. package/build/esm/core/utils/__tests__/composeFullKey.test.js +0 -32
  211. package/build/esm/core/utils/__tests__/composeFullKey.test.js.map +0 -1
  212. package/build/esm/core/utils/__tests__/composeKey.test.js +0 -30
  213. package/build/esm/core/utils/__tests__/composeKey.test.js.map +0 -1
  214. package/build/esm/core/utils/__tests__/getError.test.js +0 -29
  215. package/build/esm/core/utils/__tests__/getError.test.js.map +0 -1
  216. package/build/esm/core/utils/__tests__/getStatus.test.js +0 -47
  217. package/build/esm/core/utils/__tests__/getStatus.test.js.map +0 -1
  218. package/build/esm/core/utils/__tests__/hasTag.test.js +0 -29
  219. package/build/esm/core/utils/__tests__/hasTag.test.js.map +0 -1
  220. package/build/esm/core/utils/__tests__/mergeStatuses.test.js +0 -23
  221. package/build/esm/core/utils/__tests__/mergeStatuses.test.js.map +0 -1
  222. package/build/esm/core/utils/__tests__/skipContext.test.js +0 -67
  223. package/build/esm/core/utils/__tests__/skipContext.test.js.map +0 -1
  224. package/build/esm/core/utils/__tests__/withCancellation.test.js +0 -104
  225. package/build/esm/core/utils/__tests__/withCancellation.test.js.map +0 -1
  226. package/build/esm/core/utils/__tests__/withCatch.test.js +0 -205
  227. package/build/esm/core/utils/__tests__/withCatch.test.js.map +0 -1
  228. package/build/esm/react/__tests__/DataManagerContext.test.js +0 -44
  229. package/build/esm/react/__tests__/DataManagerContext.test.js.map +0 -1
  230. package/build/esm/react/__tests__/withDataManager.test.js +0 -58
  231. package/build/esm/react/__tests__/withDataManager.test.js.map +0 -1
  232. package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js +0 -184
  233. package/build/esm/react/components/DataInfiniteLoader/__tests__/DataInfiniteLoader.test.js.map +0 -1
  234. package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js +0 -116
  235. package/build/esm/react/components/DataLoader/__tests__/DataLoader.test.js.map +0 -1
  236. package/build/esm/react-query/__tests__/createQueryNormalizer.test.js +0 -174
  237. package/build/esm/react-query/__tests__/createQueryNormalizer.test.js.map +0 -1
  238. package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js +0 -98
  239. package/build/esm/react-query/__tests__/normalizationEdgeCases.test.js.map +0 -1
  240. package/build/esm/react-query/__tests__/subscriptions.test.js +0 -1176
  241. package/build/esm/react-query/__tests__/subscriptions.test.js.map +0 -1
  242. package/build/esm/react-query/__tests__/threeLevelIntegration.test.js +0 -656
  243. package/build/esm/react-query/__tests__/threeLevelIntegration.test.js.map +0 -1
  244. package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js +0 -227
  245. package/build/esm/react-query/__tests__/updateQueriesFromMutationData.test.js.map +0 -1
  246. package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js +0 -52
  247. package/build/esm/react-query/hooks/__tests__/useQueryContext.test.js.map +0 -1
  248. package/build/esm/react-query/hooks/__tests__/useQueryData.test.js +0 -95
  249. package/build/esm/react-query/hooks/__tests__/useQueryData.test.js.map +0 -1
  250. package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js +0 -74
  251. package/build/esm/react-query/hooks/__tests__/useQueryResponses.test.js.map +0 -1
  252. package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js +0 -77
  253. package/build/esm/react-query/hooks/__tests__/useRefetchAll.test.js.map +0 -1
  254. package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js +0 -115
  255. package/build/esm/react-query/hooks/__tests__/useRefetchErrored.test.js.map +0 -1
  256. package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js +0 -154
  257. package/build/esm/react-query/hooks/__tests__/useRefetchInterval.test.js.map +0 -1
  258. package/build/esm/react-query/utils/__tests__/checkMutationObjectsKeys.test.js +0 -292
  259. package/build/esm/react-query/utils/__tests__/checkMutationObjectsKeys.test.js.map +0 -1
  260. package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js +0 -25
  261. package/build/esm/react-query/utils/__tests__/formatNullableValue.test.js.map +0 -1
  262. package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js +0 -74
  263. package/build/esm/react-query/utils/__tests__/getProgressiveRefetch.test.js.map +0 -1
  264. package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js +0 -28
  265. package/build/esm/react-query/utils/__tests__/normalizeStatus.test.js.map +0 -1
  266. package/build/esm/react-query/utils/__tests__/notReachable.test.js +0 -33
  267. package/build/esm/react-query/utils/__tests__/notReachable.test.js.map +0 -1
  268. package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js +0 -25
  269. package/build/esm/react-query/utils/__tests__/parseNullableValue.test.js.map +0 -1
  270. package/build/esm/setupTests.d.ts +0 -1
  271. package/build/esm/setupTests.js +0 -2
  272. package/build/esm/setupTests.js.map +0 -1
@@ -1,1180 +0,0 @@
1
- "use strict";
2
-
3
- var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
4
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
5
- var _react = _interopRequireDefault(require("react"));
6
- var _reactQuery = require("@tanstack/react-query");
7
- var _react2 = require("@testing-library/react");
8
- var _ClientDataManager = require("../ClientDataManager");
9
- var _DataSourceProvider = require("../DataSourceProvider");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- describe('subscriptions', function () {
13
- var dataManager;
14
- beforeEach(function () {
15
- dataManager = new _ClientDataManager.ClientDataManager({
16
- defaultOptions: {
17
- queries: {
18
- retry: false
19
- },
20
- mutations: {
21
- retry: false
22
- }
23
- },
24
- normalizerConfig: {
25
- devLogging: false
26
- }
27
- });
28
- });
29
- afterEach(function () {
30
- var _dataManager$queryNor;
31
- (_dataManager$queryNor = dataManager.queryNormalizer) === null || _dataManager$queryNor === void 0 || _dataManager$queryNor.unsubscribe();
32
- dataManager.queryClient.clear();
33
- });
34
- describe('QueryCache subscription', function () {
35
- it('should add query to normalizer when added to QueryCache', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
36
- var normalized;
37
- return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
38
- while (1) switch (_context2.prev = _context2.next) {
39
- case 0:
40
- expect(dataManager.queryNormalizer).toBeDefined();
41
- dataManager.queryNormalizer.subscribe();
42
-
43
- // Add query with normalize: true option
44
- _context2.next = 4;
45
- return dataManager.queryClient.fetchQuery({
46
- queryKey: ['users'],
47
- queryFn: function () {
48
- var _queryFn = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
49
- return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
50
- while (1) switch (_context.prev = _context.next) {
51
- case 0:
52
- return _context.abrupt("return", [{
53
- id: '1',
54
- name: 'User 1'
55
- }]);
56
- case 1:
57
- case "end":
58
- return _context.stop();
59
- }
60
- }, _callee);
61
- }));
62
- function queryFn() {
63
- return _queryFn.apply(this, arguments);
64
- }
65
- return queryFn;
66
- }(),
67
- normalize: true
68
- });
69
- case 4:
70
- normalized = dataManager.queryNormalizer.getNormalizedData();
71
- expect(normalized.objects['@@1']).toBeDefined();
72
- case 6:
73
- case "end":
74
- return _context2.stop();
75
- }
76
- }, _callee2);
77
- })));
78
- it('should update query in normalizer on update', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee5() {
79
- var queryKey, normalizedBefore, objectCountBefore, normalizedAfter;
80
- return (0, _regeneratorRuntime2.default)().wrap(function _callee5$(_context5) {
81
- while (1) switch (_context5.prev = _context5.next) {
82
- case 0:
83
- expect(dataManager.queryNormalizer).toBeDefined();
84
- dataManager.queryNormalizer.subscribe();
85
- queryKey = ['users']; // Initial data with normalize: true
86
- _context5.next = 5;
87
- return dataManager.queryClient.fetchQuery({
88
- queryKey: queryKey,
89
- queryFn: function () {
90
- var _queryFn2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee3() {
91
- return (0, _regeneratorRuntime2.default)().wrap(function _callee3$(_context3) {
92
- while (1) switch (_context3.prev = _context3.next) {
93
- case 0:
94
- return _context3.abrupt("return", [{
95
- id: '1',
96
- name: 'Old'
97
- }]);
98
- case 1:
99
- case "end":
100
- return _context3.stop();
101
- }
102
- }, _callee3);
103
- }));
104
- function queryFn() {
105
- return _queryFn2.apply(this, arguments);
106
- }
107
- return queryFn;
108
- }(),
109
- normalize: true
110
- });
111
- case 5:
112
- normalizedBefore = dataManager.queryNormalizer.getNormalizedData();
113
- objectCountBefore = Object.keys(normalizedBefore.objects).length; // Update data
114
- _context5.next = 9;
115
- return dataManager.queryClient.fetchQuery({
116
- queryKey: queryKey,
117
- queryFn: function () {
118
- var _queryFn3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee4() {
119
- return (0, _regeneratorRuntime2.default)().wrap(function _callee4$(_context4) {
120
- while (1) switch (_context4.prev = _context4.next) {
121
- case 0:
122
- return _context4.abrupt("return", [{
123
- id: '1',
124
- name: 'New'
125
- }]);
126
- case 1:
127
- case "end":
128
- return _context4.stop();
129
- }
130
- }, _callee4);
131
- }));
132
- function queryFn() {
133
- return _queryFn3.apply(this, arguments);
134
- }
135
- return queryFn;
136
- }(),
137
- normalize: true
138
- });
139
- case 9:
140
- // Verify that normalized data was updated
141
- normalizedAfter = dataManager.queryNormalizer.getNormalizedData();
142
- expect(Object.keys(normalizedAfter.objects).length).toBe(objectCountBefore);
143
- expect(normalizedAfter.queries[JSON.stringify(queryKey)]).toBeDefined();
144
- case 12:
145
- case "end":
146
- return _context5.stop();
147
- }
148
- }, _callee5);
149
- })));
150
- it('should remove query from normalizer when removed from QueryCache', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee7() {
151
- var queryKey, normalized;
152
- return (0, _regeneratorRuntime2.default)().wrap(function _callee7$(_context7) {
153
- while (1) switch (_context7.prev = _context7.next) {
154
- case 0:
155
- expect(dataManager.queryNormalizer).toBeDefined();
156
- dataManager.queryNormalizer.subscribe();
157
- queryKey = ['users']; // Add query
158
- _context7.next = 5;
159
- return dataManager.queryClient.fetchQuery({
160
- queryKey: queryKey,
161
- queryFn: function () {
162
- var _queryFn4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee6() {
163
- return (0, _regeneratorRuntime2.default)().wrap(function _callee6$(_context6) {
164
- while (1) switch (_context6.prev = _context6.next) {
165
- case 0:
166
- return _context6.abrupt("return", [{
167
- id: '1',
168
- name: 'User 1'
169
- }]);
170
- case 1:
171
- case "end":
172
- return _context6.stop();
173
- }
174
- }, _callee6);
175
- }));
176
- function queryFn() {
177
- return _queryFn4.apply(this, arguments);
178
- }
179
- return queryFn;
180
- }(),
181
- normalize: true
182
- });
183
- case 5:
184
- // Remove query
185
- dataManager.queryClient.removeQueries({
186
- queryKey: queryKey
187
- });
188
-
189
- // Give time to process event
190
- _context7.next = 8;
191
- return new Promise(function (resolve) {
192
- return setTimeout(resolve, 10);
193
- });
194
- case 8:
195
- normalized = dataManager.queryNormalizer.getNormalizedData(); // Query should be removed from queries
196
- expect(normalized.queries[JSON.stringify(queryKey)]).toBeUndefined();
197
- case 10:
198
- case "end":
199
- return _context7.stop();
200
- }
201
- }, _callee7);
202
- })));
203
- it('should support meta configuration for queries', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee8() {
204
- var normalized;
205
- return (0, _regeneratorRuntime2.default)().wrap(function _callee8$(_context8) {
206
- while (1) switch (_context8.prev = _context8.next) {
207
- case 0:
208
- expect(dataManager.queryNormalizer).toBeDefined();
209
- dataManager.queryNormalizer.subscribe();
210
-
211
- // Check that we can use meta for configuration
212
- // Real check for disabling via meta is already tested in integration tests
213
- normalized = dataManager.queryNormalizer.getNormalizedData();
214
- expect(normalized).toBeDefined();
215
- expect(normalized.objects).toBeDefined();
216
- expect(normalized.queries).toBeDefined();
217
- case 6:
218
- case "end":
219
- return _context8.stop();
220
- }
221
- }, _callee8);
222
- })));
223
- it('should unsubscribe correctly', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee10() {
224
- var normalized;
225
- return (0, _regeneratorRuntime2.default)().wrap(function _callee10$(_context10) {
226
- while (1) switch (_context10.prev = _context10.next) {
227
- case 0:
228
- expect(dataManager.queryNormalizer).toBeDefined();
229
- dataManager.queryNormalizer.subscribe();
230
- dataManager.queryNormalizer.unsubscribe();
231
-
232
- // After unsubscribing, adding query should not affect normalizer
233
- _context10.next = 5;
234
- return dataManager.queryClient.fetchQuery({
235
- queryKey: ['users'],
236
- queryFn: function () {
237
- var _queryFn5 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee9() {
238
- return (0, _regeneratorRuntime2.default)().wrap(function _callee9$(_context9) {
239
- while (1) switch (_context9.prev = _context9.next) {
240
- case 0:
241
- return _context9.abrupt("return", [{
242
- id: '1',
243
- name: 'User 1'
244
- }]);
245
- case 1:
246
- case "end":
247
- return _context9.stop();
248
- }
249
- }, _callee9);
250
- }));
251
- function queryFn() {
252
- return _queryFn5.apply(this, arguments);
253
- }
254
- return queryFn;
255
- }(),
256
- normalize: true
257
- });
258
- case 5:
259
- normalized = dataManager.queryNormalizer.getNormalizedData();
260
- expect(Object.keys(normalized.objects)).toHaveLength(0);
261
- case 7:
262
- case "end":
263
- return _context10.stop();
264
- }
265
- }, _callee10);
266
- })));
267
- it('should allow multiple unsubscribe calls', function () {
268
- expect(dataManager.queryNormalizer).toBeDefined();
269
- dataManager.queryNormalizer.subscribe();
270
- dataManager.queryNormalizer.unsubscribe();
271
-
272
- // Repeated call should not throw error
273
- expect(function () {
274
- return dataManager.queryNormalizer.unsubscribe();
275
- }).not.toThrow();
276
- });
277
- });
278
- describe('MutationCache subscription', function () {
279
- var dataManagerWithOptimistic;
280
- beforeEach(function () {
281
- dataManagerWithOptimistic = new _ClientDataManager.ClientDataManager({
282
- defaultOptions: {
283
- queries: {
284
- retry: false
285
- },
286
- mutations: {
287
- retry: false
288
- }
289
- },
290
- normalizerConfig: {
291
- devLogging: false,
292
- optimistic: {
293
- autoCalculateRollback: true
294
- }
295
- }
296
- });
297
- });
298
- afterEach(function () {
299
- var _dataManagerWithOptim;
300
- (_dataManagerWithOptim = dataManagerWithOptimistic.queryNormalizer) === null || _dataManagerWithOptim === void 0 || _dataManagerWithOptim.unsubscribe();
301
- dataManagerWithOptimistic.queryClient.clear();
302
- });
303
- it('should update queries on successful mutation', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee13() {
304
- var queryKey, wrapper, _renderHook, mutationResult, data;
305
- return (0, _regeneratorRuntime2.default)().wrap(function _callee13$(_context13) {
306
- while (1) switch (_context13.prev = _context13.next) {
307
- case 0:
308
- expect(dataManagerWithOptimistic.queryNormalizer).toBeDefined();
309
- dataManagerWithOptimistic.queryNormalizer.subscribe();
310
- queryKey = ['users']; // Initial data
311
- _context13.next = 5;
312
- return dataManagerWithOptimistic.queryClient.fetchQuery({
313
- queryKey: queryKey,
314
- queryFn: function () {
315
- var _queryFn6 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee11() {
316
- return (0, _regeneratorRuntime2.default)().wrap(function _callee11$(_context11) {
317
- while (1) switch (_context11.prev = _context11.next) {
318
- case 0:
319
- return _context11.abrupt("return", [{
320
- id: '1',
321
- name: 'Old'
322
- }]);
323
- case 1:
324
- case "end":
325
- return _context11.stop();
326
- }
327
- }, _callee11);
328
- }));
329
- function queryFn() {
330
- return _queryFn6.apply(this, arguments);
331
- }
332
- return queryFn;
333
- }(),
334
- normalize: true
335
- });
336
- case 5:
337
- // Create wrapper for hooks
338
- wrapper = function wrapper(_ref7) {
339
- var children = _ref7.children;
340
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
341
- dataManager: dataManagerWithOptimistic,
342
- children: children
343
- });
344
- }; // Mutation via useMutation
345
- _renderHook = (0, _react2.renderHook)(function () {
346
- return (0, _reactQuery.useMutation)({
347
- mutationFn: function () {
348
- var _mutationFn = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee12() {
349
- return (0, _regeneratorRuntime2.default)().wrap(function _callee12$(_context12) {
350
- while (1) switch (_context12.prev = _context12.next) {
351
- case 0:
352
- return _context12.abrupt("return", {
353
- id: '1',
354
- name: 'New'
355
- });
356
- case 1:
357
- case "end":
358
- return _context12.stop();
359
- }
360
- }, _callee12);
361
- }));
362
- function mutationFn() {
363
- return _mutationFn.apply(this, arguments);
364
- }
365
- return mutationFn;
366
- }(),
367
- normalize: true,
368
- optimistic: true
369
- });
370
- }, {
371
- wrapper: wrapper
372
- }), mutationResult = _renderHook.result;
373
- mutationResult.current.mutate(undefined);
374
- _context13.next = 10;
375
- return (0, _react2.waitFor)(function () {
376
- return expect(mutationResult.current.isSuccess).toBe(true);
377
- });
378
- case 10:
379
- data = dataManagerWithOptimistic.queryClient.getQueryData(queryKey);
380
- expect(data[0].name).toBe('New');
381
- case 12:
382
- case "end":
383
- return _context13.stop();
384
- }
385
- }, _callee13);
386
- })));
387
- it('should apply optimistic updates', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee16() {
388
- var queryKey, wrapper, _renderHook2, mutationResult, dataFinal;
389
- return (0, _regeneratorRuntime2.default)().wrap(function _callee16$(_context16) {
390
- while (1) switch (_context16.prev = _context16.next) {
391
- case 0:
392
- expect(dataManagerWithOptimistic.queryNormalizer).toBeDefined();
393
- dataManagerWithOptimistic.queryNormalizer.subscribe();
394
- queryKey = ['users']; // Initial data
395
- _context16.next = 5;
396
- return dataManagerWithOptimistic.queryClient.fetchQuery({
397
- queryKey: queryKey,
398
- queryFn: function () {
399
- var _queryFn7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee14() {
400
- return (0, _regeneratorRuntime2.default)().wrap(function _callee14$(_context14) {
401
- while (1) switch (_context14.prev = _context14.next) {
402
- case 0:
403
- return _context14.abrupt("return", [{
404
- id: '1',
405
- name: 'Original'
406
- }]);
407
- case 1:
408
- case "end":
409
- return _context14.stop();
410
- }
411
- }, _callee14);
412
- }));
413
- function queryFn() {
414
- return _queryFn7.apply(this, arguments);
415
- }
416
- return queryFn;
417
- }(),
418
- normalize: true
419
- });
420
- case 5:
421
- wrapper = function wrapper(_ref9) {
422
- var children = _ref9.children;
423
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
424
- dataManager: dataManagerWithOptimistic,
425
- children: children
426
- });
427
- }; // Mutation with optimistic data
428
- _renderHook2 = (0, _react2.renderHook)(function () {
429
- return (0, _reactQuery.useMutation)({
430
- mutationFn: function () {
431
- var _mutationFn2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee15() {
432
- return (0, _regeneratorRuntime2.default)().wrap(function _callee15$(_context15) {
433
- while (1) switch (_context15.prev = _context15.next) {
434
- case 0:
435
- _context15.next = 2;
436
- return new Promise(function (resolve) {
437
- return setTimeout(resolve, 50);
438
- });
439
- case 2:
440
- return _context15.abrupt("return", {
441
- id: '1',
442
- name: 'Final'
443
- });
444
- case 3:
445
- case "end":
446
- return _context15.stop();
447
- }
448
- }, _callee15);
449
- }));
450
- function mutationFn() {
451
- return _mutationFn2.apply(this, arguments);
452
- }
453
- return mutationFn;
454
- }(),
455
- onMutate: function onMutate() {
456
- return {
457
- optimisticData: {
458
- id: '1',
459
- name: 'Optimistic'
460
- }
461
- };
462
- },
463
- normalize: true,
464
- optimistic: true
465
- });
466
- }, {
467
- wrapper: wrapper
468
- }), mutationResult = _renderHook2.result;
469
- mutationResult.current.mutate(undefined);
470
-
471
- // Check optimistic data
472
- _context16.next = 10;
473
- return (0, _react2.waitFor)(function () {
474
- var data = dataManagerWithOptimistic.queryClient.getQueryData(queryKey);
475
- expect(data[0].name).toBe('Optimistic');
476
- });
477
- case 10:
478
- _context16.next = 12;
479
- return (0, _react2.waitFor)(function () {
480
- return expect(mutationResult.current.isSuccess).toBe(true);
481
- });
482
- case 12:
483
- dataFinal = dataManagerWithOptimistic.queryClient.getQueryData(queryKey);
484
- expect(dataFinal[0].name).toBe('Final');
485
- case 14:
486
- case "end":
487
- return _context16.stop();
488
- }
489
- }, _callee16);
490
- })));
491
- it('should automatically calculate rollbackData', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee19() {
492
- var queryKey, wrapper, _renderHook3, mutationResult, data;
493
- return (0, _regeneratorRuntime2.default)().wrap(function _callee19$(_context19) {
494
- while (1) switch (_context19.prev = _context19.next) {
495
- case 0:
496
- expect(dataManagerWithOptimistic.queryNormalizer).toBeDefined();
497
- dataManagerWithOptimistic.queryNormalizer.subscribe();
498
- queryKey = ['users']; // Initial data
499
- _context19.next = 5;
500
- return dataManagerWithOptimistic.queryClient.fetchQuery({
501
- queryKey: queryKey,
502
- queryFn: function () {
503
- var _queryFn8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee17() {
504
- return (0, _regeneratorRuntime2.default)().wrap(function _callee17$(_context17) {
505
- while (1) switch (_context17.prev = _context17.next) {
506
- case 0:
507
- return _context17.abrupt("return", [{
508
- id: '1',
509
- name: 'Original'
510
- }]);
511
- case 1:
512
- case "end":
513
- return _context17.stop();
514
- }
515
- }, _callee17);
516
- }));
517
- function queryFn() {
518
- return _queryFn8.apply(this, arguments);
519
- }
520
- return queryFn;
521
- }(),
522
- normalize: true
523
- });
524
- case 5:
525
- wrapper = function wrapper(_ref11) {
526
- var children = _ref11.children;
527
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
528
- dataManager: dataManagerWithOptimistic,
529
- children: children
530
- });
531
- }; // Mutation with optimistic data that will fail
532
- _renderHook3 = (0, _react2.renderHook)(function () {
533
- return (0, _reactQuery.useMutation)({
534
- mutationFn: function () {
535
- var _mutationFn3 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee18() {
536
- return (0, _regeneratorRuntime2.default)().wrap(function _callee18$(_context18) {
537
- while (1) switch (_context18.prev = _context18.next) {
538
- case 0:
539
- _context18.next = 2;
540
- return new Promise(function (resolve) {
541
- return setTimeout(resolve, 50);
542
- });
543
- case 2:
544
- throw new Error('Mutation failed');
545
- case 3:
546
- case "end":
547
- return _context18.stop();
548
- }
549
- }, _callee18);
550
- }));
551
- function mutationFn() {
552
- return _mutationFn3.apply(this, arguments);
553
- }
554
- return mutationFn;
555
- }(),
556
- onMutate: function onMutate() {
557
- return {
558
- optimisticData: {
559
- id: '1',
560
- name: 'Optimistic'
561
- }
562
- };
563
- },
564
- normalize: true,
565
- optimistic: true
566
- });
567
- }, {
568
- wrapper: wrapper
569
- }), mutationResult = _renderHook3.result;
570
- mutationResult.current.mutate(undefined);
571
- _context19.next = 10;
572
- return (0, _react2.waitFor)(function () {
573
- return expect(mutationResult.current.isError).toBe(true);
574
- });
575
- case 10:
576
- // Data should be rolled back to original
577
- data = dataManagerWithOptimistic.queryClient.getQueryData(queryKey);
578
- expect(data[0].name).toBe('Original');
579
- case 12:
580
- case "end":
581
- return _context19.stop();
582
- }
583
- }, _callee19);
584
- })));
585
- it('should rollback changes on mutation error', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee22() {
586
- var queryKey, wrapper, _renderHook4, mutationResult, data;
587
- return (0, _regeneratorRuntime2.default)().wrap(function _callee22$(_context22) {
588
- while (1) switch (_context22.prev = _context22.next) {
589
- case 0:
590
- expect(dataManagerWithOptimistic.queryNormalizer).toBeDefined();
591
- dataManagerWithOptimistic.queryNormalizer.subscribe();
592
- queryKey = ['users']; // Initial data
593
- _context22.next = 5;
594
- return dataManagerWithOptimistic.queryClient.fetchQuery({
595
- queryKey: queryKey,
596
- queryFn: function () {
597
- var _queryFn9 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee20() {
598
- return (0, _regeneratorRuntime2.default)().wrap(function _callee20$(_context20) {
599
- while (1) switch (_context20.prev = _context20.next) {
600
- case 0:
601
- return _context20.abrupt("return", [{
602
- id: '1',
603
- name: 'Original'
604
- }]);
605
- case 1:
606
- case "end":
607
- return _context20.stop();
608
- }
609
- }, _callee20);
610
- }));
611
- function queryFn() {
612
- return _queryFn9.apply(this, arguments);
613
- }
614
- return queryFn;
615
- }(),
616
- normalize: true
617
- });
618
- case 5:
619
- wrapper = function wrapper(_ref13) {
620
- var children = _ref13.children;
621
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
622
- dataManager: dataManagerWithOptimistic,
623
- children: children
624
- });
625
- }; // Mutation with error
626
- _renderHook4 = (0, _react2.renderHook)(function () {
627
- return (0, _reactQuery.useMutation)({
628
- mutationFn: function () {
629
- var _mutationFn4 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee21() {
630
- return (0, _regeneratorRuntime2.default)().wrap(function _callee21$(_context21) {
631
- while (1) switch (_context21.prev = _context21.next) {
632
- case 0:
633
- _context21.next = 2;
634
- return new Promise(function (resolve) {
635
- return setTimeout(resolve, 50);
636
- });
637
- case 2:
638
- throw new Error('Failed');
639
- case 3:
640
- case "end":
641
- return _context21.stop();
642
- }
643
- }, _callee21);
644
- }));
645
- function mutationFn() {
646
- return _mutationFn4.apply(this, arguments);
647
- }
648
- return mutationFn;
649
- }(),
650
- onMutate: function onMutate() {
651
- return {
652
- optimisticData: {
653
- id: '1',
654
- name: 'Optimistic'
655
- }
656
- };
657
- },
658
- normalize: true,
659
- optimistic: true
660
- });
661
- }, {
662
- wrapper: wrapper
663
- }), mutationResult = _renderHook4.result;
664
- mutationResult.current.mutate(undefined);
665
- _context22.next = 10;
666
- return (0, _react2.waitFor)(function () {
667
- return expect(mutationResult.current.isError).toBe(true);
668
- });
669
- case 10:
670
- data = dataManagerWithOptimistic.queryClient.getQueryData(queryKey);
671
- expect(data[0].name).toBe('Original');
672
- case 12:
673
- case "end":
674
- return _context22.stop();
675
- }
676
- }, _callee22);
677
- })));
678
- it('should ignore mutations with normalize: false', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee24() {
679
- var dmNoNormalize, queryKey, wrapper, _renderHook5, mutationResult, data;
680
- return (0, _regeneratorRuntime2.default)().wrap(function _callee24$(_context24) {
681
- while (1) switch (_context24.prev = _context24.next) {
682
- case 0:
683
- dmNoNormalize = new _ClientDataManager.ClientDataManager({
684
- defaultOptions: {
685
- queries: {
686
- retry: false
687
- },
688
- mutations: {
689
- retry: false
690
- }
691
- },
692
- normalizerConfig: {
693
- devLogging: false
694
- }
695
- });
696
- expect(dmNoNormalize.queryNormalizer).toBeDefined();
697
- queryKey = ['users'];
698
- dmNoNormalize.queryClient.setQueryData(queryKey, [{
699
- id: '1',
700
- name: 'Original'
701
- }]);
702
- wrapper = function wrapper(_ref15) {
703
- var children = _ref15.children;
704
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
705
- dataManager: dmNoNormalize,
706
- children: children
707
- });
708
- }; // Mutation should not update data automatically (no normalize option)
709
- _renderHook5 = (0, _react2.renderHook)(function () {
710
- return (0, _reactQuery.useMutation)({
711
- mutationFn: function () {
712
- var _mutationFn5 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee23() {
713
- return (0, _regeneratorRuntime2.default)().wrap(function _callee23$(_context23) {
714
- while (1) switch (_context23.prev = _context23.next) {
715
- case 0:
716
- return _context23.abrupt("return", {
717
- id: '1',
718
- name: 'New'
719
- });
720
- case 1:
721
- case "end":
722
- return _context23.stop();
723
- }
724
- }, _callee23);
725
- }));
726
- function mutationFn() {
727
- return _mutationFn5.apply(this, arguments);
728
- }
729
- return mutationFn;
730
- }()
731
- });
732
- }, {
733
- wrapper: wrapper
734
- }), mutationResult = _renderHook5.result;
735
- mutationResult.current.mutate(undefined);
736
- _context24.next = 9;
737
- return (0, _react2.waitFor)(function () {
738
- return expect(mutationResult.current.isSuccess).toBe(true);
739
- });
740
- case 9:
741
- data = dmNoNormalize.queryClient.getQueryData(queryKey);
742
- expect(data[0].name).toBe('Original');
743
- // Not changed
744
- case 11:
745
- case "end":
746
- return _context24.stop();
747
- }
748
- }, _callee24);
749
- })));
750
- it('should support devLogging for optimistic updates', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee27() {
751
- var dmWithLogging, consoleSpy, queryKey, wrapper, _renderHook6, mutationResult;
752
- return (0, _regeneratorRuntime2.default)().wrap(function _callee27$(_context27) {
753
- while (1) switch (_context27.prev = _context27.next) {
754
- case 0:
755
- dmWithLogging = new _ClientDataManager.ClientDataManager({
756
- defaultOptions: {
757
- queries: {
758
- retry: false
759
- },
760
- mutations: {
761
- retry: false
762
- }
763
- },
764
- normalizerConfig: {
765
- devLogging: false,
766
- optimistic: {
767
- autoCalculateRollback: true,
768
- devLogging: true
769
- }
770
- }
771
- });
772
- expect(dmWithLogging.queryNormalizer).toBeDefined();
773
- consoleSpy = jest.spyOn(console, 'log').mockImplementation();
774
- dmWithLogging.queryNormalizer.subscribe();
775
- queryKey = ['users'];
776
- _context27.next = 7;
777
- return dmWithLogging.queryClient.fetchQuery({
778
- queryKey: queryKey,
779
- queryFn: function () {
780
- var _queryFn10 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee25() {
781
- return (0, _regeneratorRuntime2.default)().wrap(function _callee25$(_context25) {
782
- while (1) switch (_context25.prev = _context25.next) {
783
- case 0:
784
- return _context25.abrupt("return", [{
785
- id: '1',
786
- name: 'Original'
787
- }]);
788
- case 1:
789
- case "end":
790
- return _context25.stop();
791
- }
792
- }, _callee25);
793
- }));
794
- function queryFn() {
795
- return _queryFn10.apply(this, arguments);
796
- }
797
- return queryFn;
798
- }(),
799
- normalize: true
800
- });
801
- case 7:
802
- wrapper = function wrapper(_ref17) {
803
- var children = _ref17.children;
804
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
805
- dataManager: dmWithLogging,
806
- children: children
807
- });
808
- };
809
- _renderHook6 = (0, _react2.renderHook)(function () {
810
- return (0, _reactQuery.useMutation)({
811
- mutationFn: function () {
812
- var _mutationFn6 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee26() {
813
- return (0, _regeneratorRuntime2.default)().wrap(function _callee26$(_context26) {
814
- while (1) switch (_context26.prev = _context26.next) {
815
- case 0:
816
- _context26.next = 2;
817
- return new Promise(function (resolve) {
818
- return setTimeout(resolve, 50);
819
- });
820
- case 2:
821
- throw new Error('Failed');
822
- case 3:
823
- case "end":
824
- return _context26.stop();
825
- }
826
- }, _callee26);
827
- }));
828
- function mutationFn() {
829
- return _mutationFn6.apply(this, arguments);
830
- }
831
- return mutationFn;
832
- }(),
833
- onMutate: function onMutate() {
834
- return {
835
- optimisticData: {
836
- id: '1',
837
- name: 'Optimistic'
838
- }
839
- };
840
- },
841
- normalize: true,
842
- optimistic: true
843
- });
844
- }, {
845
- wrapper: wrapper
846
- }), mutationResult = _renderHook6.result;
847
- mutationResult.current.mutate(undefined);
848
- _context27.next = 12;
849
- return (0, _react2.waitFor)(function () {
850
- return expect(mutationResult.current.isError).toBe(true);
851
- });
852
- case 12:
853
- // Verify that logging was called
854
- expect(consoleSpy).toHaveBeenCalledWith('[OptimisticUpdate] Auto-calculated rollbackData:', expect.any(Object));
855
- expect(consoleSpy).toHaveBeenCalledWith('[OptimisticUpdate] Rolling back changes');
856
- consoleSpy.mockRestore();
857
- case 15:
858
- case "end":
859
- return _context27.stop();
860
- }
861
- }, _callee27);
862
- })));
863
- it('should support manual rollbackData', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee30() {
864
- var dmNoAutoRollback, queryKey, wrapper, _renderHook7, mutationResult, data;
865
- return (0, _regeneratorRuntime2.default)().wrap(function _callee30$(_context30) {
866
- while (1) switch (_context30.prev = _context30.next) {
867
- case 0:
868
- dmNoAutoRollback = new _ClientDataManager.ClientDataManager({
869
- defaultOptions: {
870
- queries: {
871
- retry: false
872
- },
873
- mutations: {
874
- retry: false
875
- }
876
- },
877
- normalizerConfig: {
878
- devLogging: false,
879
- optimistic: {
880
- autoCalculateRollback: false
881
- }
882
- }
883
- });
884
- expect(dmNoAutoRollback.queryNormalizer).toBeDefined();
885
- dmNoAutoRollback.queryNormalizer.subscribe();
886
- queryKey = ['users'];
887
- _context30.next = 6;
888
- return dmNoAutoRollback.queryClient.fetchQuery({
889
- queryKey: queryKey,
890
- queryFn: function () {
891
- var _queryFn11 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee28() {
892
- return (0, _regeneratorRuntime2.default)().wrap(function _callee28$(_context28) {
893
- while (1) switch (_context28.prev = _context28.next) {
894
- case 0:
895
- return _context28.abrupt("return", [{
896
- id: '1',
897
- name: 'Original'
898
- }]);
899
- case 1:
900
- case "end":
901
- return _context28.stop();
902
- }
903
- }, _callee28);
904
- }));
905
- function queryFn() {
906
- return _queryFn11.apply(this, arguments);
907
- }
908
- return queryFn;
909
- }(),
910
- normalize: true
911
- });
912
- case 6:
913
- wrapper = function wrapper(_ref19) {
914
- var children = _ref19.children;
915
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
916
- dataManager: dmNoAutoRollback,
917
- children: children
918
- });
919
- };
920
- _renderHook7 = (0, _react2.renderHook)(function () {
921
- return (0, _reactQuery.useMutation)({
922
- mutationFn: function () {
923
- var _mutationFn7 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee29() {
924
- return (0, _regeneratorRuntime2.default)().wrap(function _callee29$(_context29) {
925
- while (1) switch (_context29.prev = _context29.next) {
926
- case 0:
927
- _context29.next = 2;
928
- return new Promise(function (resolve) {
929
- return setTimeout(resolve, 50);
930
- });
931
- case 2:
932
- throw new Error('Failed');
933
- case 3:
934
- case "end":
935
- return _context29.stop();
936
- }
937
- }, _callee29);
938
- }));
939
- function mutationFn() {
940
- return _mutationFn7.apply(this, arguments);
941
- }
942
- return mutationFn;
943
- }(),
944
- onMutate: function onMutate() {
945
- return {
946
- optimisticData: {
947
- id: '1',
948
- name: 'Optimistic'
949
- },
950
- rollbackData: {
951
- id: '1',
952
- name: 'Manual Rollback'
953
- }
954
- };
955
- },
956
- normalize: true,
957
- optimistic: true
958
- });
959
- }, {
960
- wrapper: wrapper
961
- }), mutationResult = _renderHook7.result;
962
- mutationResult.current.mutate(undefined);
963
- _context30.next = 11;
964
- return (0, _react2.waitFor)(function () {
965
- return expect(mutationResult.current.isError).toBe(true);
966
- });
967
- case 11:
968
- data = dmNoAutoRollback.queryClient.getQueryData(queryKey);
969
- expect(data[0].name).toBe('Manual Rollback');
970
- dmNoAutoRollback.queryNormalizer.unsubscribe();
971
- dmNoAutoRollback.queryClient.clear();
972
- case 15:
973
- case "end":
974
- return _context30.stop();
975
- }
976
- }, _callee30);
977
- })));
978
- it('should invalidate queries when invalidate option is enabled', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee33() {
979
- var dmWithInvalidate, queryKey, invalidateSpy, wrapper, _renderHook8, mutationResult;
980
- return (0, _regeneratorRuntime2.default)().wrap(function _callee33$(_context33) {
981
- while (1) switch (_context33.prev = _context33.next) {
982
- case 0:
983
- dmWithInvalidate = new _ClientDataManager.ClientDataManager({
984
- defaultOptions: {
985
- queries: {
986
- retry: false
987
- },
988
- mutations: {
989
- retry: false
990
- }
991
- },
992
- normalizerConfig: {
993
- devLogging: false,
994
- invalidate: true
995
- }
996
- });
997
- expect(dmWithInvalidate.queryNormalizer).toBeDefined();
998
- dmWithInvalidate.queryNormalizer.subscribe();
999
- queryKey = ['users']; // Initial data
1000
- _context33.next = 6;
1001
- return dmWithInvalidate.queryClient.fetchQuery({
1002
- queryKey: queryKey,
1003
- queryFn: function () {
1004
- var _queryFn12 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee31() {
1005
- return (0, _regeneratorRuntime2.default)().wrap(function _callee31$(_context31) {
1006
- while (1) switch (_context31.prev = _context31.next) {
1007
- case 0:
1008
- return _context31.abrupt("return", [{
1009
- id: '1',
1010
- name: 'Original'
1011
- }]);
1012
- case 1:
1013
- case "end":
1014
- return _context31.stop();
1015
- }
1016
- }, _callee31);
1017
- }));
1018
- function queryFn() {
1019
- return _queryFn12.apply(this, arguments);
1020
- }
1021
- return queryFn;
1022
- }()
1023
- });
1024
- case 6:
1025
- // Spy on invalidateQueries
1026
- invalidateSpy = jest.spyOn(dmWithInvalidate.queryClient, 'invalidateQueries');
1027
- wrapper = function wrapper(_ref21) {
1028
- var children = _ref21.children;
1029
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
1030
- dataManager: dmWithInvalidate,
1031
- children: children
1032
- });
1033
- };
1034
- _renderHook8 = (0, _react2.renderHook)(function () {
1035
- return (0, _reactQuery.useMutation)({
1036
- mutationFn: function () {
1037
- var _mutationFn8 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee32() {
1038
- return (0, _regeneratorRuntime2.default)().wrap(function _callee32$(_context32) {
1039
- while (1) switch (_context32.prev = _context32.next) {
1040
- case 0:
1041
- return _context32.abrupt("return", {
1042
- id: '1',
1043
- name: 'Updated'
1044
- });
1045
- case 1:
1046
- case "end":
1047
- return _context32.stop();
1048
- }
1049
- }, _callee32);
1050
- }));
1051
- function mutationFn() {
1052
- return _mutationFn8.apply(this, arguments);
1053
- }
1054
- return mutationFn;
1055
- }(),
1056
- normalize: true
1057
- });
1058
- }, {
1059
- wrapper: wrapper
1060
- }), mutationResult = _renderHook8.result;
1061
- mutationResult.current.mutate(undefined);
1062
- _context33.next = 12;
1063
- return (0, _react2.waitFor)(function () {
1064
- return expect(mutationResult.current.isSuccess).toBe(true);
1065
- });
1066
- case 12:
1067
- // Verify that invalidateQueries was called
1068
- expect(invalidateSpy).toHaveBeenCalled();
1069
- invalidateSpy.mockRestore();
1070
- dmWithInvalidate.queryNormalizer.unsubscribe();
1071
- dmWithInvalidate.queryClient.clear();
1072
- case 16:
1073
- case "end":
1074
- return _context33.stop();
1075
- }
1076
- }, _callee33);
1077
- })));
1078
- it('should not invalidate queries when invalidate: false is set on mutation', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee36() {
1079
- var dmWithInvalidate, queryKey, invalidateSpy, wrapper, _renderHook9, mutationResult;
1080
- return (0, _regeneratorRuntime2.default)().wrap(function _callee36$(_context36) {
1081
- while (1) switch (_context36.prev = _context36.next) {
1082
- case 0:
1083
- dmWithInvalidate = new _ClientDataManager.ClientDataManager({
1084
- defaultOptions: {
1085
- queries: {
1086
- retry: false
1087
- },
1088
- mutations: {
1089
- retry: false
1090
- }
1091
- },
1092
- normalizerConfig: {
1093
- devLogging: false,
1094
- invalidate: true // Globally enabled
1095
- }
1096
- });
1097
- expect(dmWithInvalidate.queryNormalizer).toBeDefined();
1098
- dmWithInvalidate.queryNormalizer.subscribe();
1099
- queryKey = ['users'];
1100
- _context36.next = 6;
1101
- return dmWithInvalidate.queryClient.fetchQuery({
1102
- queryKey: queryKey,
1103
- queryFn: function () {
1104
- var _queryFn13 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee34() {
1105
- return (0, _regeneratorRuntime2.default)().wrap(function _callee34$(_context34) {
1106
- while (1) switch (_context34.prev = _context34.next) {
1107
- case 0:
1108
- return _context34.abrupt("return", [{
1109
- id: '1',
1110
- name: 'Original'
1111
- }]);
1112
- case 1:
1113
- case "end":
1114
- return _context34.stop();
1115
- }
1116
- }, _callee34);
1117
- }));
1118
- function queryFn() {
1119
- return _queryFn13.apply(this, arguments);
1120
- }
1121
- return queryFn;
1122
- }()
1123
- });
1124
- case 6:
1125
- invalidateSpy = jest.spyOn(dmWithInvalidate.queryClient, 'invalidateQueries');
1126
- wrapper = function wrapper(_ref23) {
1127
- var children = _ref23.children;
1128
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataSourceProvider.DataSourceProvider, {
1129
- dataManager: dmWithInvalidate,
1130
- children: children
1131
- });
1132
- };
1133
- _renderHook9 = (0, _react2.renderHook)(function () {
1134
- return (0, _reactQuery.useMutation)({
1135
- mutationFn: function () {
1136
- var _mutationFn9 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee35() {
1137
- return (0, _regeneratorRuntime2.default)().wrap(function _callee35$(_context35) {
1138
- while (1) switch (_context35.prev = _context35.next) {
1139
- case 0:
1140
- return _context35.abrupt("return", {
1141
- id: '1',
1142
- name: 'Updated'
1143
- });
1144
- case 1:
1145
- case "end":
1146
- return _context35.stop();
1147
- }
1148
- }, _callee35);
1149
- }));
1150
- function mutationFn() {
1151
- return _mutationFn9.apply(this, arguments);
1152
- }
1153
- return mutationFn;
1154
- }(),
1155
- normalize: true,
1156
- invalidate: false // Disable for this mutation
1157
- });
1158
- }, {
1159
- wrapper: wrapper
1160
- }), mutationResult = _renderHook9.result;
1161
- mutationResult.current.mutate(undefined);
1162
- _context36.next = 12;
1163
- return (0, _react2.waitFor)(function () {
1164
- return expect(mutationResult.current.isSuccess).toBe(true);
1165
- });
1166
- case 12:
1167
- // Verify that invalidateQueries was NOT called
1168
- expect(invalidateSpy).not.toHaveBeenCalled();
1169
- invalidateSpy.mockRestore();
1170
- dmWithInvalidate.queryNormalizer.unsubscribe();
1171
- dmWithInvalidate.queryClient.clear();
1172
- case 16:
1173
- case "end":
1174
- return _context36.stop();
1175
- }
1176
- }, _callee36);
1177
- })));
1178
- });
1179
- });
1180
- // #sourceMappingURL=subscriptions.test.js.map