@graphitation/apollo-react-relay-duct-tape 0.7.3 → 1.0.0-alpha.1

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 (202) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/README.md +122 -0
  3. package/graphitation-apollo-react-relay-duct-tape-0.5.0-store-observation.8.tgz +0 -0
  4. package/lib/convertFetchPolicy.d.ts +9 -0
  5. package/lib/convertFetchPolicy.d.ts.map +1 -0
  6. package/lib/convertFetchPolicy.js +20 -0
  7. package/lib/convertFetchPolicy.js.map +7 -0
  8. package/lib/convertFetchPolicy.mjs +14 -0
  9. package/lib/convertFetchPolicy.mjs.map +7 -0
  10. package/lib/hooks.d.ts +15 -5
  11. package/lib/hooks.d.ts.map +1 -1
  12. package/lib/hooks.js +28 -3
  13. package/lib/hooks.js.map +7 -0
  14. package/lib/hooks.mjs +33 -3
  15. package/lib/hooks.mjs.map +7 -0
  16. package/lib/index.d.ts +1 -0
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +1 -0
  19. package/lib/index.js.map +7 -0
  20. package/lib/index.mjs +1 -0
  21. package/lib/index.mjs.map +7 -0
  22. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.d.ts +18 -0
  23. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.d.ts.map +1 -0
  24. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.js +4 -0
  25. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.js.map +7 -0
  26. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.mjs +0 -0
  27. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.mjs.map +7 -0
  28. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.d.ts +17 -0
  29. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.d.ts.map +1 -0
  30. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.js +654 -0
  31. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.js.map +7 -0
  32. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.mjs +647 -0
  33. package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.mjs.map +7 -0
  34. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.d.ts +11 -0
  35. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.d.ts.map +1 -0
  36. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.js +4 -0
  37. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.js.map +7 -0
  38. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.mjs +0 -0
  39. package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.mjs.map +7 -0
  40. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.d.ts +2 -0
  41. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.d.ts.map +1 -0
  42. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.js +173 -0
  43. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.js.map +7 -0
  44. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.mjs +166 -0
  45. package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.mjs.map +7 -0
  46. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.d.ts +21 -0
  47. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.d.ts.map +1 -0
  48. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.js +4 -0
  49. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.js.map +7 -0
  50. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.mjs +0 -0
  51. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.mjs.map +7 -0
  52. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.d.ts +20 -0
  53. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.d.ts.map +1 -0
  54. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.js +1059 -0
  55. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.js.map +7 -0
  56. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.mjs +1052 -0
  57. package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.mjs.map +7 -0
  58. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.d.ts +13 -0
  59. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.d.ts.map +1 -0
  60. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.js +4 -0
  61. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.js.map +7 -0
  62. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.mjs +0 -0
  63. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.mjs.map +7 -0
  64. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.d.ts +2 -0
  65. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.d.ts.map +1 -0
  66. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.js +98 -0
  67. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.js.map +7 -0
  68. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.mjs +91 -0
  69. package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.mjs.map +7 -0
  70. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.d.ts +13 -0
  71. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.d.ts.map +1 -0
  72. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.js +4 -0
  73. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.js.map +7 -0
  74. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.mjs +0 -0
  75. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.mjs.map +7 -0
  76. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.d.ts +16 -0
  77. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.d.ts.map +1 -0
  78. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.js +381 -0
  79. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.js.map +7 -0
  80. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.mjs +374 -0
  81. package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.mjs.map +7 -0
  82. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.d.ts +20 -0
  83. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.d.ts.map +1 -0
  84. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.js +871 -0
  85. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.js.map +7 -0
  86. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.mjs +864 -0
  87. package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.mjs.map +7 -0
  88. package/lib/storeObservation/compiledHooks/index.d.ts +7 -0
  89. package/lib/storeObservation/compiledHooks/index.d.ts.map +1 -0
  90. package/lib/storeObservation/compiledHooks/index.js +33 -0
  91. package/lib/storeObservation/compiledHooks/index.js.map +7 -0
  92. package/lib/storeObservation/compiledHooks/index.mjs +11 -0
  93. package/lib/storeObservation/compiledHooks/index.mjs.map +7 -0
  94. package/lib/storeObservation/compiledHooks/types.d.ts +15 -0
  95. package/lib/storeObservation/compiledHooks/types.d.ts.map +1 -0
  96. package/lib/storeObservation/compiledHooks/types.js +3 -0
  97. package/lib/storeObservation/compiledHooks/types.js.map +7 -0
  98. package/lib/storeObservation/compiledHooks/types.mjs +0 -0
  99. package/lib/storeObservation/compiledHooks/types.mjs.map +7 -0
  100. package/lib/storeObservation/compiledHooks/useCompiledFragment.d.ts +9 -0
  101. package/lib/storeObservation/compiledHooks/useCompiledFragment.d.ts.map +1 -0
  102. package/lib/storeObservation/compiledHooks/useCompiledFragment.js +80 -0
  103. package/lib/storeObservation/compiledHooks/useCompiledFragment.js.map +7 -0
  104. package/lib/storeObservation/compiledHooks/useCompiledFragment.mjs +61 -0
  105. package/lib/storeObservation/compiledHooks/useCompiledFragment.mjs.map +7 -0
  106. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.d.ts +16 -0
  107. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.d.ts.map +1 -0
  108. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.js +92 -0
  109. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.js.map +7 -0
  110. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.mjs +73 -0
  111. package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.mjs.map +7 -0
  112. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.d.ts +15 -0
  113. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.d.ts.map +1 -0
  114. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.js +176 -0
  115. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.js.map +7 -0
  116. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.mjs +157 -0
  117. package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.mjs.map +7 -0
  118. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.d.ts +23 -0
  119. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.d.ts.map +1 -0
  120. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.js +131 -0
  121. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.js.map +7 -0
  122. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.mjs +112 -0
  123. package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.mjs.map +7 -0
  124. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.d.ts +12 -0
  125. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.d.ts.map +1 -0
  126. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.js +37 -0
  127. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.js.map +7 -0
  128. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.mjs +15 -0
  129. package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.mjs.map +7 -0
  130. package/lib/storeObservation/compiledHooks/useForceUpdate.d.ts +3 -0
  131. package/lib/storeObservation/compiledHooks/useForceUpdate.d.ts.map +1 -0
  132. package/lib/storeObservation/compiledHooks/useForceUpdate.js +31 -0
  133. package/lib/storeObservation/compiledHooks/useForceUpdate.js.map +7 -0
  134. package/lib/storeObservation/compiledHooks/useForceUpdate.mjs +9 -0
  135. package/lib/storeObservation/compiledHooks/useForceUpdate.mjs.map +7 -0
  136. package/lib/storeObservation/compiledHooks.test.d.ts +2 -0
  137. package/lib/storeObservation/compiledHooks.test.d.ts.map +1 -0
  138. package/lib/storeObservation/compiledHooks.test.js +945 -0
  139. package/lib/storeObservation/compiledHooks.test.js.map +7 -0
  140. package/lib/storeObservation/compiledHooks.test.mjs +947 -0
  141. package/lib/storeObservation/compiledHooks.test.mjs.map +7 -0
  142. package/lib/storeObservation/createImportDocumentsTransform.d.ts +9 -0
  143. package/lib/storeObservation/createImportDocumentsTransform.d.ts.map +1 -0
  144. package/lib/storeObservation/createImportDocumentsTransform.js +107 -0
  145. package/lib/storeObservation/createImportDocumentsTransform.js.map +7 -0
  146. package/lib/storeObservation/createImportDocumentsTransform.mjs +99 -0
  147. package/lib/storeObservation/createImportDocumentsTransform.mjs.map +7 -0
  148. package/lib/storeObservation/createImportDocumentsTransform.test.d.ts +2 -0
  149. package/lib/storeObservation/createImportDocumentsTransform.test.d.ts.map +1 -0
  150. package/lib/storeObservation/createImportDocumentsTransform.test.js +62 -0
  151. package/lib/storeObservation/createImportDocumentsTransform.test.js.map +7 -0
  152. package/lib/storeObservation/createImportDocumentsTransform.test.mjs +50 -0
  153. package/lib/storeObservation/createImportDocumentsTransform.test.mjs.map +7 -0
  154. package/lib/storeObservation/fragmentReferencesFieldPolicy.d.ts +3 -0
  155. package/lib/storeObservation/fragmentReferencesFieldPolicy.d.ts.map +1 -0
  156. package/lib/storeObservation/fragmentReferencesFieldPolicy.js +13 -0
  157. package/lib/storeObservation/fragmentReferencesFieldPolicy.js.map +7 -0
  158. package/lib/storeObservation/fragmentReferencesFieldPolicy.mjs +7 -0
  159. package/lib/storeObservation/fragmentReferencesFieldPolicy.mjs.map +7 -0
  160. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.d.ts +2 -0
  161. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.d.ts.map +1 -0
  162. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.js +123 -0
  163. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.js.map +7 -0
  164. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.mjs +109 -0
  165. package/lib/storeObservation/fragmentReferencesFieldPolicy.test.mjs.map +7 -0
  166. package/lib/storeObservation/index.d.ts +5 -0
  167. package/lib/storeObservation/index.d.ts.map +1 -0
  168. package/lib/storeObservation/index.js +23 -0
  169. package/lib/storeObservation/index.js.map +7 -0
  170. package/lib/storeObservation/index.mjs +5 -0
  171. package/lib/storeObservation/index.mjs.map +7 -0
  172. package/lib/storeObservation/nodeFromCacheFieldPolicy.d.ts +9 -0
  173. package/lib/storeObservation/nodeFromCacheFieldPolicy.d.ts.map +1 -0
  174. package/lib/storeObservation/nodeFromCacheFieldPolicy.js +48 -0
  175. package/lib/storeObservation/nodeFromCacheFieldPolicy.js.map +7 -0
  176. package/lib/storeObservation/nodeFromCacheFieldPolicy.mjs +26 -0
  177. package/lib/storeObservation/nodeFromCacheFieldPolicy.mjs.map +7 -0
  178. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.d.ts +2 -0
  179. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.d.ts.map +1 -0
  180. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.js +112 -0
  181. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.js.map +7 -0
  182. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.mjs +96 -0
  183. package/lib/storeObservation/nodeFromCacheFieldPolicy.test.mjs.map +7 -0
  184. package/lib/storeObservation/shallowCompareFragmentReferences.d.ts +23 -0
  185. package/lib/storeObservation/shallowCompareFragmentReferences.d.ts.map +1 -0
  186. package/lib/storeObservation/shallowCompareFragmentReferences.js +50 -0
  187. package/lib/storeObservation/shallowCompareFragmentReferences.js.map +7 -0
  188. package/lib/storeObservation/shallowCompareFragmentReferences.mjs +28 -0
  189. package/lib/storeObservation/shallowCompareFragmentReferences.mjs.map +7 -0
  190. package/lib/storeObservation/typePolicies.d.ts +3 -0
  191. package/lib/storeObservation/typePolicies.d.ts.map +1 -0
  192. package/lib/storeObservation/typePolicies.js +47 -0
  193. package/lib/storeObservation/typePolicies.js.map +7 -0
  194. package/lib/storeObservation/typePolicies.mjs +25 -0
  195. package/lib/storeObservation/typePolicies.mjs.map +7 -0
  196. package/lib/types.d.ts +8 -0
  197. package/lib/types.d.ts.map +1 -1
  198. package/lib/types.js.map +7 -0
  199. package/lib/types.mjs.map +7 -0
  200. package/package.json +23 -18
  201. package/.eslintcache +0 -1
  202. package/CHANGELOG.json +0 -405
@@ -0,0 +1,945 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
10
+ var __objSpread = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
22
+ var __reExport = (target, module2, desc) => {
23
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
24
+ for (let key of __getOwnPropNames(module2))
25
+ if (!__hasOwnProp.call(target, key) && key !== "default")
26
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
27
+ }
28
+ return target;
29
+ };
30
+ var __toModule = (module2) => {
31
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
32
+ };
33
+ var __async = (__this, __arguments, generator) => {
34
+ return new Promise((resolve, reject) => {
35
+ var fulfilled = (value) => {
36
+ try {
37
+ step(generator.next(value));
38
+ } catch (e) {
39
+ reject(e);
40
+ }
41
+ };
42
+ var rejected = (value) => {
43
+ try {
44
+ step(generator.throw(value));
45
+ } catch (e) {
46
+ reject(e);
47
+ }
48
+ };
49
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
50
+ step((generator = generator.apply(__this, __arguments)).next());
51
+ });
52
+ };
53
+ var import_react = __toModule(require("react"));
54
+ var import_client = __toModule(require("@apollo/client"));
55
+ var import_react_test_renderer = __toModule(require("react-test-renderer"));
56
+ var import_graphql = __toModule(require("graphql"));
57
+ var import_graphql_js_tag = __toModule(require("@graphitation/graphql-js-tag"));
58
+ var import_apollo_mock_client = __toModule(require("@graphitation/apollo-mock-client"));
59
+ var MockPayloadGenerator = __toModule(require("@graphitation/graphql-js-operation-payload-generator"));
60
+ var fs = __toModule(require("fs"));
61
+ var path = __toModule(require("path"));
62
+ var import_compiledHooks = __toModule(require("./compiledHooks"));
63
+ var import_typePolicies = __toModule(require("./typePolicies"));
64
+ var import_compiledHooks_Root_executionQuery = __toModule(require("./__generated__/compiledHooks_Root_executionQuery.graphql"));
65
+ var import_compiledHooks_ChildWatchNodeQuery = __toModule(require("./__generated__/compiledHooks_ChildWatchNodeQuery.graphql"));
66
+ var import_compiledHooks_RefetchableFragment_RefetchQuery = __toModule(require("./__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql"));
67
+ var import_compiledHooks_QueryTypeWatchNodeQuery = __toModule(require("./__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql"));
68
+ var import_compiledHooks_ForwardPaginationFragment_PaginationQuery = __toModule(require("./__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql"));
69
+ var import_compiledHooks_BackwardPaginationFragment_PaginationQuery = __toModule(require("./__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql"));
70
+ const schema = (0, import_graphql.buildSchema)(fs.readFileSync(path.resolve(__dirname, "../__tests__/schema.graphql"), "utf8"));
71
+ const Child_fragment = import_graphql_js_tag.graphql`
72
+ fragment compiledHooks_ChildFragment on User {
73
+ petName
74
+ }
75
+ `;
76
+ const Refetchable_fragment = import_graphql_js_tag.graphql`
77
+ fragment compiledHooks_RefetchableFragment on User
78
+ @refetchable(queryName: "compiledHooks_RefetchableFragment_RefetchQuery") {
79
+ petName
80
+ avatarUrl(size: $avatarSize)
81
+ }
82
+ `;
83
+ const QueryType_fragment = import_graphql_js_tag.graphql`
84
+ fragment compiledHooks_QueryTypeFragment on Query {
85
+ nonNode {
86
+ id
87
+ }
88
+ }
89
+ `;
90
+ const ForwardPagination_fragment = import_graphql_js_tag.graphql`
91
+ fragment compiledHooks_ForwardPaginationFragment on User
92
+ @refetchable(
93
+ queryName: "compiledHooks_ForwardPaginationFragment_PaginationQuery"
94
+ )
95
+ @argumentDefinitions(
96
+ conversationsForwardCount: { type: "Int!", defaultValue: 1 }
97
+ conversationsAfterCursor: { type: "String!", defaultValue: "" }
98
+ ) {
99
+ petName
100
+ avatarUrl(size: $avatarSize)
101
+ conversations(
102
+ first: $conversationsForwardCount
103
+ after: $conversationsAfterCursor
104
+ ) @connection(key: "compiledHooks_user_conversations") {
105
+ edges {
106
+ node {
107
+ title
108
+ ...compiledHooks_BackwardPaginationFragment
109
+ }
110
+ }
111
+ }
112
+ }
113
+ `;
114
+ const BackwardPagination_fragment = import_graphql_js_tag.graphql`
115
+ fragment compiledHooks_BackwardPaginationFragment on Conversation
116
+ @refetchable(
117
+ queryName: "compiledHooks_BackwardPaginationFragment_PaginationQuery"
118
+ ) {
119
+ messages(last: $messagesBackwardCount, before: $messagesBeforeCursor)
120
+ @connection(key: "compiledHooks_conversation_messages") {
121
+ edges {
122
+ node {
123
+ text
124
+ }
125
+ }
126
+ }
127
+ }
128
+ `;
129
+ const Root_executionQueryDocument = import_graphql_js_tag.graphql`
130
+ query compiledHooks_Root_executionQuery(
131
+ $userId: Int!
132
+ $avatarSize: Int = 21
133
+ $messagesBackwardCount: Int!
134
+ $messagesBeforeCursor: String!
135
+ ) {
136
+ user(id: $userId) {
137
+ name
138
+ ...compiledHooks_ChildFragment
139
+ ...compiledHooks_RefetchableFragment
140
+ ...compiledHooks_ForwardPaginationFragment
141
+ }
142
+ ...compiledHooks_QueryTypeFragment
143
+ }
144
+ `;
145
+ describe("compiledHooks", () => {
146
+ let client;
147
+ let testRenderer;
148
+ let useFragmentResult;
149
+ let useRefetchableFragmentResult;
150
+ let forwardUsePaginationFragmentResult;
151
+ let backwardUsePaginationFragmentResult;
152
+ let useLazyLoadQueryResult = null;
153
+ let componentOnQueryTypeResult;
154
+ const ChildComponent = (props) => {
155
+ const result = (0, import_compiledHooks.useCompiledFragment)(import_compiledHooks_ChildWatchNodeQuery.documents, props.user);
156
+ useFragmentResult.push(result);
157
+ return null;
158
+ };
159
+ const ChildRefetchableComponent = (props) => {
160
+ const result = (0, import_compiledHooks.useCompiledRefetchableFragment)(import_compiledHooks_RefetchableFragment_RefetchQuery.documents, props.user);
161
+ useRefetchableFragmentResult.push(result);
162
+ return null;
163
+ };
164
+ const ComponentOnQueryType = (props) => {
165
+ const result = (0, import_compiledHooks.useCompiledFragment)(import_compiledHooks_QueryTypeWatchNodeQuery.documents, props.query);
166
+ componentOnQueryTypeResult.push(result);
167
+ return null;
168
+ };
169
+ const ChildForwardPaginationComponent = (props) => {
170
+ const result = (0, import_compiledHooks.useCompiledPaginationFragment)(import_compiledHooks_ForwardPaginationFragment_PaginationQuery.documents, props.user);
171
+ forwardUsePaginationFragmentResult.push(result);
172
+ return result.data.conversations.edges.map((edge, index) => {
173
+ return /* @__PURE__ */ import_react.default.createElement(ChildBackwardPaginationComponent, {
174
+ conversation: edge.node,
175
+ key: index
176
+ });
177
+ });
178
+ };
179
+ const ChildBackwardPaginationComponent = (props) => {
180
+ const result = (0, import_compiledHooks.useCompiledPaginationFragment)(import_compiledHooks_BackwardPaginationFragment_PaginationQuery.documents, props.conversation);
181
+ backwardUsePaginationFragmentResult.push(result);
182
+ return null;
183
+ };
184
+ const RootComponent = (props) => {
185
+ const result = (0, import_compiledHooks.useCompiledLazyLoadQuery)(import_compiledHooks_Root_executionQuery.documents, {variables: props.variables});
186
+ useLazyLoadQueryResult = result;
187
+ return result.data ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(ChildComponent, {
188
+ user: result.data.user
189
+ }), /* @__PURE__ */ import_react.default.createElement(ChildRefetchableComponent, {
190
+ user: result.data.user
191
+ }), /* @__PURE__ */ import_react.default.createElement(ChildForwardPaginationComponent, {
192
+ user: result.data.user
193
+ }), /* @__PURE__ */ import_react.default.createElement(ComponentOnQueryType, {
194
+ query: result.data
195
+ })) : null;
196
+ };
197
+ beforeEach(() => {
198
+ useLazyLoadQueryResult = null;
199
+ useFragmentResult = [];
200
+ useRefetchableFragmentResult = [];
201
+ forwardUsePaginationFragmentResult = [];
202
+ backwardUsePaginationFragmentResult = [];
203
+ componentOnQueryTypeResult = [];
204
+ client = (0, import_apollo_mock_client.createMockClient)(schema, {
205
+ cache: {
206
+ possibleTypes: {
207
+ Node: ["User"]
208
+ },
209
+ typePolicies: import_typePolicies.typePolicies
210
+ }
211
+ });
212
+ (0, import_react_test_renderer.act)(() => {
213
+ testRenderer = (0, import_react_test_renderer.create)(/* @__PURE__ */ import_react.default.createElement(import_client.ApolloProvider, {
214
+ client
215
+ }, /* @__PURE__ */ import_react.default.createElement(ErrorBoundary, null, /* @__PURE__ */ import_react.default.createElement(RootComponent, {
216
+ variables: {
217
+ userId: 42,
218
+ messagesBackwardCount: 1,
219
+ messagesBeforeCursor: ""
220
+ }
221
+ }))));
222
+ });
223
+ });
224
+ describe(import_compiledHooks.useCompiledLazyLoadQuery, () => {
225
+ it("correctly returns loading state", () => __async(void 0, null, function* () {
226
+ expect(useLazyLoadQueryResult).toEqual({
227
+ data: void 0,
228
+ error: void 0
229
+ });
230
+ yield (0, import_react_test_renderer.act)(() => client.mock.resolveMostRecentOperation((operation) => MockPayloadGenerator.generate(operation)));
231
+ expect(useLazyLoadQueryResult).toEqual({
232
+ data: expect.objectContaining({}),
233
+ error: void 0
234
+ });
235
+ }));
236
+ it("cancels the execution query while in-flight on unmount", () => __async(void 0, null, function* () {
237
+ expect(activeQueries(client).map((query) => query.queryName)).toEqual([
238
+ "compiledHooks_Root_executionQuery"
239
+ ]);
240
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
241
+ testRenderer.unmount();
242
+ return new Promise((resolve) => setTimeout(resolve, 0));
243
+ }));
244
+ expect(client.getObservableQueries().size).toBe(0);
245
+ }));
246
+ describe("once loaded", () => {
247
+ let executionQueryId;
248
+ beforeEach(() => __async(void 0, null, function* () {
249
+ executionQueryId = last(activeQueries(client)).queryId;
250
+ yield (0, import_react_test_renderer.act)(() => client.mock.resolveMostRecentOperation((operation) => MockPayloadGenerator.generate(operation, {
251
+ User: (options, generateId) => {
252
+ return {
253
+ id: options.parentType === "Query" ? operation.request.variables.userId : generateId()
254
+ };
255
+ },
256
+ Conversation: () => ({
257
+ id: "first-paged-conversation"
258
+ }),
259
+ Message: () => ({
260
+ id: "first-paged-message"
261
+ })
262
+ })));
263
+ }));
264
+ it("unsubscribes from the execution query", () => __async(void 0, null, function* () {
265
+ expect(activeQueries(client).map((query) => query.queryId)).not.toContain(executionQueryId);
266
+ }));
267
+ it("loads all data of the execution query into the store", () => {
268
+ expect(client.cache.extract()).toMatchInlineSnapshot(`
269
+ Object {
270
+ "Conversation:first-paged-conversation": Object {
271
+ "__typename": "Conversation",
272
+ "id": "first-paged-conversation",
273
+ "messages:compiledHooks_conversation_messages": Object {
274
+ "__typename": "ConversationMessagesConnection",
275
+ "edges": Array [
276
+ Object {
277
+ "__typename": "ConversationMessagesConnectionEdge",
278
+ "cursor": "<mock-value-for-field-\\"cursor\\">",
279
+ "node": Object {
280
+ "__ref": "Message:first-paged-message",
281
+ },
282
+ },
283
+ ],
284
+ "pageInfo": Object {
285
+ "__typename": "PageInfo",
286
+ "hasPreviousPage": false,
287
+ "startCursor": "<mock-value-for-field-\\"startCursor\\">",
288
+ },
289
+ },
290
+ "title": "<mock-value-for-field-\\"title\\">",
291
+ },
292
+ "Message:first-paged-message": Object {
293
+ "__typename": "Message",
294
+ "id": "first-paged-message",
295
+ "text": "<mock-value-for-field-\\"text\\">",
296
+ },
297
+ "NonNode:<mock-value-for-field-\\"id\\">": Object {
298
+ "__typename": "NonNode",
299
+ "id": "<mock-value-for-field-\\"id\\">",
300
+ },
301
+ "ROOT_QUERY": Object {
302
+ "__typename": "Query",
303
+ "nonNode": Object {
304
+ "__ref": "NonNode:<mock-value-for-field-\\"id\\">",
305
+ },
306
+ "user({\\"id\\":42})": Object {
307
+ "__ref": "User:42",
308
+ },
309
+ },
310
+ "User:42": Object {
311
+ "__typename": "User",
312
+ "avatarUrl({\\"size\\":21})": "<mock-value-for-field-\\"avatarUrl\\">",
313
+ "conversations:compiledHooks_user_conversations": Object {
314
+ "__typename": "ConversationsConnection",
315
+ "edges": Array [
316
+ Object {
317
+ "__typename": "ConversationsConnectionEdge",
318
+ "cursor": "<mock-value-for-field-\\"cursor\\">",
319
+ "node": Object {
320
+ "__ref": "Conversation:first-paged-conversation",
321
+ },
322
+ },
323
+ ],
324
+ "pageInfo": Object {
325
+ "__typename": "PageInfo",
326
+ "endCursor": "<mock-value-for-field-\\"endCursor\\">",
327
+ "hasNextPage": false,
328
+ },
329
+ },
330
+ "id": 42,
331
+ "name": "<mock-value-for-field-\\"name\\">",
332
+ "petName": "<mock-value-for-field-\\"petName\\">",
333
+ },
334
+ }
335
+ `);
336
+ });
337
+ it("only returns the fields selected in the watch query to the component", () => {
338
+ expect(useLazyLoadQueryResult.data).toMatchInlineSnapshot(`
339
+ Object {
340
+ "__fragments": Object {
341
+ "avatarSize": 21,
342
+ "messagesBackwardCount": 1,
343
+ "messagesBeforeCursor": "",
344
+ "userId": 42,
345
+ },
346
+ "user": Object {
347
+ "__fragments": Object {
348
+ "avatarSize": 21,
349
+ "messagesBackwardCount": 1,
350
+ "messagesBeforeCursor": "",
351
+ "userId": 42,
352
+ },
353
+ "__typename": "User",
354
+ "id": 42,
355
+ "name": "<mock-value-for-field-\\"name\\">",
356
+ },
357
+ }
358
+ `);
359
+ });
360
+ it("does not re-render when a field that was not selected in the watch query is updated in the store", () => __async(void 0, null, function* () {
361
+ const before = useLazyLoadQueryResult.data;
362
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
363
+ client.cache.modify({
364
+ id: "User:42",
365
+ fields: {
366
+ petName: () => "Phoenix"
367
+ }
368
+ });
369
+ return new Promise((resolve) => setTimeout(resolve, 0));
370
+ }));
371
+ expect(useLazyLoadQueryResult.data).toBe(before);
372
+ }));
373
+ it("does re-render when a field that was selected in the watch query is updated in the store", () => __async(void 0, null, function* () {
374
+ const before = useLazyLoadQueryResult.data;
375
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
376
+ client.cache.modify({
377
+ id: "User:42",
378
+ fields: {
379
+ name: () => "Satya"
380
+ }
381
+ });
382
+ return new Promise((resolve) => setTimeout(resolve, 0));
383
+ }));
384
+ expect(useLazyLoadQueryResult.data).not.toBe(before);
385
+ expect(useLazyLoadQueryResult.data).toMatchInlineSnapshot(`
386
+ Object {
387
+ "__fragments": Object {
388
+ "avatarSize": 21,
389
+ "messagesBackwardCount": 1,
390
+ "messagesBeforeCursor": "",
391
+ "userId": 42,
392
+ },
393
+ "user": Object {
394
+ "__fragments": Object {
395
+ "avatarSize": 21,
396
+ "messagesBackwardCount": 1,
397
+ "messagesBeforeCursor": "",
398
+ "userId": 42,
399
+ },
400
+ "__typename": "User",
401
+ "id": 42,
402
+ "name": "Satya",
403
+ },
404
+ }
405
+ `);
406
+ }));
407
+ it("fetches new data when variables change", () => __async(void 0, null, function* () {
408
+ (0, import_react_test_renderer.act)(() => {
409
+ testRenderer.update(/* @__PURE__ */ import_react.default.createElement(import_client.ApolloProvider, {
410
+ client
411
+ }, /* @__PURE__ */ import_react.default.createElement(ErrorBoundary, null, /* @__PURE__ */ import_react.default.createElement(RootComponent, {
412
+ variables: {
413
+ userId: 21,
414
+ messagesBackwardCount: 1,
415
+ messagesBeforeCursor: ""
416
+ }
417
+ }))));
418
+ });
419
+ yield (0, import_react_test_renderer.act)(() => client.mock.resolveMostRecentOperation((operation) => MockPayloadGenerator.generate(operation, {
420
+ User: () => ({id: operation.request.variables.userId})
421
+ })));
422
+ expect(client.cache.extract()["User:21"]).toMatchInlineSnapshot(`
423
+ Object {
424
+ "__typename": "User",
425
+ "avatarUrl({\\"size\\":21})": "<mock-value-for-field-\\"avatarUrl\\">",
426
+ "conversations:compiledHooks_user_conversations": Object {
427
+ "__typename": "ConversationsConnection",
428
+ "edges": Array [
429
+ Object {
430
+ "__typename": "ConversationsConnectionEdge",
431
+ "cursor": "<mock-value-for-field-\\"cursor\\">",
432
+ "node": Object {
433
+ "__ref": "Conversation:<Conversation-mock-id-5>",
434
+ },
435
+ },
436
+ ],
437
+ "pageInfo": Object {
438
+ "__typename": "PageInfo",
439
+ "endCursor": "<mock-value-for-field-\\"endCursor\\">",
440
+ "hasNextPage": false,
441
+ },
442
+ },
443
+ "id": 21,
444
+ "name": "<mock-value-for-field-\\"name\\">",
445
+ "petName": "<mock-value-for-field-\\"petName\\">",
446
+ }
447
+ `);
448
+ }));
449
+ it("does not try to kick-off a new query when the variables object deep equals the previous one", () => __async(void 0, null, function* () {
450
+ const spy = jest.spyOn(client, "query");
451
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
452
+ testRenderer.update(/* @__PURE__ */ import_react.default.createElement(import_client.ApolloProvider, {
453
+ client
454
+ }, /* @__PURE__ */ import_react.default.createElement(ErrorBoundary, null, /* @__PURE__ */ import_react.default.createElement(RootComponent, {
455
+ variables: {
456
+ userId: 42,
457
+ messagesBackwardCount: 1,
458
+ messagesBeforeCursor: ""
459
+ }
460
+ }))));
461
+ return new Promise((resolve) => setTimeout(resolve, 100));
462
+ }));
463
+ expect(spy).not.toHaveBeenCalled();
464
+ }));
465
+ it("removes all watch queries on unmount", () => __async(void 0, null, function* () {
466
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
467
+ testRenderer.unmount();
468
+ return new Promise((resolve) => setTimeout(resolve, 0));
469
+ }));
470
+ expect(client.getObservableQueries().size).toBe(0);
471
+ }));
472
+ });
473
+ });
474
+ function itBehavesLikeFragment(returnedResults, fragmentSpecificFieldSelections) {
475
+ beforeEach(() => __async(this, null, function* () {
476
+ yield (0, import_react_test_renderer.act)(() => client.mock.resolveMostRecentOperation((operation) => {
477
+ const result = MockPayloadGenerator.generate(operation, {
478
+ User: () => ({
479
+ id: 42
480
+ }),
481
+ Conversation: () => ({
482
+ id: "first-paged-conversation"
483
+ }),
484
+ Message: () => ({
485
+ id: "first-paged-message"
486
+ }),
487
+ PageInfo: () => ({
488
+ startCursor: "first-page-start-cursor",
489
+ endCursor: "first-page-end-cursor",
490
+ hasNextPage: true,
491
+ hasPreviousPage: true
492
+ })
493
+ });
494
+ return result;
495
+ }));
496
+ }));
497
+ it("only returns the fields selected in the watch query to the component", () => {
498
+ expect(last(returnedResults())).toEqual(__objSpread({
499
+ __fragments: {
500
+ avatarSize: 21,
501
+ messagesBackwardCount: 1,
502
+ messagesBeforeCursor: "",
503
+ userId: 42
504
+ },
505
+ __typename: "User",
506
+ id: 42,
507
+ petName: '<mock-value-for-field-"petName">'
508
+ }, fragmentSpecificFieldSelections));
509
+ });
510
+ it("returns the same object when a field that was not selected in the watch query is updated in the store", () => __async(this, null, function* () {
511
+ const before = last(returnedResults());
512
+ yield (0, import_react_test_renderer.act)(() => __async(this, null, function* () {
513
+ client.cache.modify({
514
+ id: "User:42",
515
+ fields: {
516
+ name: () => "Satya"
517
+ }
518
+ });
519
+ return new Promise((resolve) => setTimeout(resolve, 0));
520
+ }));
521
+ expect(last(returnedResults())).toBe(before);
522
+ }));
523
+ it("returns a new object when a field that was selected in the watch query is updated in the store", () => __async(this, null, function* () {
524
+ yield (0, import_react_test_renderer.act)(() => __async(this, null, function* () {
525
+ client.cache.modify({
526
+ id: "User:42",
527
+ fields: {
528
+ petName: () => "some new value"
529
+ }
530
+ });
531
+ return new Promise((resolve) => setTimeout(resolve, 0));
532
+ }));
533
+ expect(returnedResults().length).toBe(2);
534
+ expect(last(returnedResults())).toMatchObject({
535
+ petName: "some new value"
536
+ });
537
+ }));
538
+ it("returns data synchronously", () => {
539
+ expect(returnedResults().length).toBe(1);
540
+ });
541
+ it("fetches new data when variables change", () => __async(this, null, function* () {
542
+ (0, import_react_test_renderer.act)(() => {
543
+ testRenderer.update(/* @__PURE__ */ import_react.default.createElement(import_client.ApolloProvider, {
544
+ client
545
+ }, /* @__PURE__ */ import_react.default.createElement(ErrorBoundary, null, /* @__PURE__ */ import_react.default.createElement(RootComponent, {
546
+ variables: {
547
+ userId: 21,
548
+ messagesBackwardCount: 1,
549
+ messagesBeforeCursor: ""
550
+ }
551
+ }))));
552
+ });
553
+ yield (0, import_react_test_renderer.act)(() => client.mock.resolveMostRecentOperation((operation) => MockPayloadGenerator.generate(operation, {
554
+ User: () => ({id: operation.request.variables.userId})
555
+ })));
556
+ expect(last(returnedResults()).id).toBe(21);
557
+ }));
558
+ }
559
+ describe(import_compiledHooks.useCompiledFragment, () => {
560
+ itBehavesLikeFragment(() => useFragmentResult, {
561
+ petName: '<mock-value-for-field-"petName">'
562
+ });
563
+ it("also works with fragments on the Query type", () => {
564
+ expect(last(componentOnQueryTypeResult)).toMatchInlineSnapshot(`
565
+ Object {
566
+ "__fragments": Object {
567
+ "avatarSize": 21,
568
+ "messagesBackwardCount": 1,
569
+ "messagesBeforeCursor": "",
570
+ "userId": 42,
571
+ },
572
+ "nonNode": Object {
573
+ "__typename": "NonNode",
574
+ "id": "<mock-value-for-field-\\"id\\">",
575
+ },
576
+ }
577
+ `);
578
+ });
579
+ });
580
+ function itBehavesLikeRefetchableFragment(returnedResults) {
581
+ it.todo("supports variables with default values on either operations or with @argumentDefinitions");
582
+ describe("when refetching", () => {
583
+ let onCompleted;
584
+ let disposable;
585
+ beforeEach(() => {
586
+ const [_data, refetch] = last(returnedResults());
587
+ onCompleted = jest.fn();
588
+ disposable = refetch({avatarSize: 42}, {onCompleted});
589
+ });
590
+ it("can be cancelled", () => {
591
+ const query = last(activeQueries(client));
592
+ disposable.dispose();
593
+ expect(client.getObservableQueries().has(query.queryId)).toBeFalsy();
594
+ });
595
+ it("cancels when unmounting", () => __async(this, null, function* () {
596
+ yield (0, import_react_test_renderer.act)(() => __async(this, null, function* () {
597
+ const query = last(activeQueries(client));
598
+ testRenderer.unmount();
599
+ yield new Promise((resolve) => setTimeout(resolve, 0));
600
+ expect(client.getObservableQueries().has(query.queryId)).toBeFalsy();
601
+ }));
602
+ }));
603
+ describe("successfully", () => {
604
+ beforeEach(() => __async(this, null, function* () {
605
+ yield (0, import_react_test_renderer.act)(() => {
606
+ client.mock.resolveMostRecentOperation((operation) => MockPayloadGenerator.generate(operation, {
607
+ Node: () => ({
608
+ id: 42,
609
+ avatarUrl: `avatarUrl-with-size-${operation.request.variables.avatarSize}`
610
+ })
611
+ }));
612
+ return new Promise((resolve) => setTimeout(resolve, 0));
613
+ });
614
+ }));
615
+ it("returns a new object from the hook", () => {
616
+ expect(last(returnedResults())[0]).toMatchObject({
617
+ __typename: "User",
618
+ avatarUrl: "avatarUrl-with-size-42",
619
+ id: 42
620
+ });
621
+ });
622
+ it("updates the fragment reference request variables for future requests", () => {
623
+ expect(last(returnedResults())[0]).toMatchObject({
624
+ __fragments: {
625
+ avatarSize: 42,
626
+ userId: 42
627
+ }
628
+ });
629
+ });
630
+ it("invokes the onComplete callback without error", () => {
631
+ expect(onCompleted).toHaveBeenCalledWith(null);
632
+ });
633
+ });
634
+ describe("and an error occurs", () => {
635
+ const error = new Error("oh noes");
636
+ beforeEach(() => __async(this, null, function* () {
637
+ yield (0, import_react_test_renderer.act)(() => client.mock.rejectMostRecentOperation(error));
638
+ }));
639
+ it("invokes the onComplete callback when an error occurs", () => {
640
+ expect(onCompleted).toHaveBeenCalledWith(error);
641
+ });
642
+ it("does not update the fragment reference request variables for future requests", () => __async(this, null, function* () {
643
+ const [_data, refetch] = last(returnedResults());
644
+ refetch({});
645
+ expect(client.mock.getMostRecentOperation().request.variables.avatarSize).toBe(21);
646
+ }));
647
+ });
648
+ });
649
+ }
650
+ describe(import_compiledHooks.useCompiledRefetchableFragment, () => {
651
+ itBehavesLikeFragment(() => useRefetchableFragmentResult.map(([data, _refetch]) => data), {avatarUrl: '<mock-value-for-field-"avatarUrl">'});
652
+ itBehavesLikeRefetchableFragment(() => useRefetchableFragmentResult);
653
+ });
654
+ describe(import_compiledHooks.useCompiledPaginationFragment, () => {
655
+ itBehavesLikeFragment(() => forwardUsePaginationFragmentResult.map(({data}) => data), {
656
+ avatarUrl: '<mock-value-for-field-"avatarUrl">',
657
+ conversations: {
658
+ __typename: "ConversationsConnection",
659
+ edges: [
660
+ {
661
+ __typename: "ConversationsConnectionEdge",
662
+ cursor: '<mock-value-for-field-"cursor">',
663
+ node: {
664
+ __fragments: {
665
+ avatarSize: 21,
666
+ messagesBackwardCount: 1,
667
+ messagesBeforeCursor: "",
668
+ userId: 42
669
+ },
670
+ __typename: "Conversation",
671
+ id: "first-paged-conversation",
672
+ title: '<mock-value-for-field-"title">'
673
+ }
674
+ }
675
+ ],
676
+ pageInfo: {
677
+ __typename: "PageInfo",
678
+ endCursor: "first-page-end-cursor",
679
+ hasNextPage: true
680
+ }
681
+ }
682
+ });
683
+ itBehavesLikeRefetchableFragment(() => forwardUsePaginationFragmentResult.map(({data, refetch}) => [
684
+ data,
685
+ refetch
686
+ ]));
687
+ describe("when paginating forward", () => {
688
+ it("returns that next data is available", () => {
689
+ const {hasNext} = last(forwardUsePaginationFragmentResult);
690
+ expect(hasNext).toBeTruthy();
691
+ });
692
+ it("uses the correct count and cursor values", () => {
693
+ (0, import_react_test_renderer.act)(() => {
694
+ const {loadNext} = last(forwardUsePaginationFragmentResult);
695
+ loadNext(123);
696
+ });
697
+ const operation = client.mock.getMostRecentOperation();
698
+ expect(operation.request.variables).toMatchObject({
699
+ conversationsForwardCount: 123,
700
+ conversationsAfterCursor: "first-page-end-cursor"
701
+ });
702
+ });
703
+ it("returns that a pagination operation is in-flight", () => {
704
+ (0, import_react_test_renderer.act)(() => {
705
+ const {loadNext} = last(forwardUsePaginationFragmentResult);
706
+ loadNext(123);
707
+ });
708
+ const {isLoadingNext} = last(forwardUsePaginationFragmentResult);
709
+ expect(isLoadingNext).toBeTruthy();
710
+ });
711
+ it("can be cancelled", () => {
712
+ (0, import_react_test_renderer.act)(() => {
713
+ const {loadNext} = last(forwardUsePaginationFragmentResult);
714
+ const disposable = loadNext(123);
715
+ const query = last(activeQueries(client));
716
+ disposable.dispose();
717
+ expect(client.getObservableQueries().has(query.queryId)).toBeFalsy();
718
+ });
719
+ });
720
+ it("cancels when unmounting", () => __async(void 0, null, function* () {
721
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
722
+ const {loadNext} = last(forwardUsePaginationFragmentResult);
723
+ loadNext(123);
724
+ const query = last(activeQueries(client));
725
+ testRenderer.unmount();
726
+ yield new Promise((resolve) => setTimeout(resolve, 0));
727
+ expect(client.getObservableQueries().has(query.queryId)).toBeFalsy();
728
+ }));
729
+ }));
730
+ it("invokes the onComplete callback when an error occurs", () => __async(void 0, null, function* () {
731
+ const onCompleted = jest.fn();
732
+ const error = new Error("oh noes");
733
+ const {loadNext} = last(forwardUsePaginationFragmentResult);
734
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
735
+ loadNext(1, {onCompleted});
736
+ yield client.mock.rejectMostRecentOperation(error);
737
+ }));
738
+ expect(onCompleted).toHaveBeenCalledWith(error);
739
+ }));
740
+ describe("and having received the response", () => {
741
+ let onCompleted;
742
+ beforeEach(() => __async(void 0, null, function* () {
743
+ onCompleted = jest.fn();
744
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
745
+ const {loadNext} = last(forwardUsePaginationFragmentResult);
746
+ loadNext(1, {onCompleted});
747
+ yield new Promise((resolve) => setTimeout(resolve, 0));
748
+ client.mock.resolveMostRecentOperation((operation) => MockPayloadGenerator.generate(operation, {
749
+ Node: () => ({
750
+ id: 42
751
+ }),
752
+ Conversation: () => ({
753
+ id: "second-paged-conversation"
754
+ }),
755
+ PageInfo: () => ({
756
+ endCursor: "second-page-end-cursor",
757
+ hasNextPage: false
758
+ })
759
+ }));
760
+ return new Promise((resolve) => setTimeout(resolve, 0));
761
+ }));
762
+ }));
763
+ it("returns that no pagination operation is in-flight", () => {
764
+ const {isLoadingNext} = last(forwardUsePaginationFragmentResult);
765
+ expect(isLoadingNext).toBeFalsy();
766
+ });
767
+ it("loads the new data into the store", () => {
768
+ expect(client.cache.extract()).toMatchObject({
769
+ "Conversation:second-paged-conversation": {
770
+ id: "second-paged-conversation",
771
+ __typename: "Conversation",
772
+ title: '<mock-value-for-field-"title">'
773
+ }
774
+ });
775
+ });
776
+ it("returns the complete list data (previous+new) from the hook", () => {
777
+ const result = last(forwardUsePaginationFragmentResult);
778
+ expect(result.data.conversations.edges.map((edge) => edge.node.id)).toMatchInlineSnapshot(`
779
+ Array [
780
+ "first-paged-conversation",
781
+ "second-paged-conversation",
782
+ ]
783
+ `);
784
+ });
785
+ it("uses the new cursor value", () => {
786
+ (0, import_react_test_renderer.act)(() => {
787
+ const {loadNext} = last(forwardUsePaginationFragmentResult);
788
+ loadNext(123);
789
+ });
790
+ const operation = client.mock.getMostRecentOperation();
791
+ expect(operation.request.variables).toMatchObject({
792
+ conversationsAfterCursor: "second-page-end-cursor"
793
+ });
794
+ });
795
+ it("returns that no next data is available", () => {
796
+ const {hasNext} = last(forwardUsePaginationFragmentResult);
797
+ expect(hasNext).toBeFalsy();
798
+ });
799
+ it("invokes the onComplete callback without error", () => {
800
+ expect(onCompleted).toHaveBeenCalledWith(null);
801
+ });
802
+ });
803
+ });
804
+ describe("when paginating backward", () => {
805
+ it("returns that previous data is available", () => {
806
+ const {hasPrevious} = last(backwardUsePaginationFragmentResult);
807
+ expect(hasPrevious).toBeTruthy();
808
+ });
809
+ it("uses the correct count and cursor values", () => {
810
+ (0, import_react_test_renderer.act)(() => {
811
+ const {loadPrevious} = last(backwardUsePaginationFragmentResult);
812
+ loadPrevious(123);
813
+ });
814
+ const operation = client.mock.getMostRecentOperation();
815
+ expect(operation.request.variables).toMatchObject({
816
+ messagesBackwardCount: 123,
817
+ messagesBeforeCursor: "first-page-start-cursor"
818
+ });
819
+ });
820
+ it("returns that a pagination operation is in-flight", () => {
821
+ (0, import_react_test_renderer.act)(() => {
822
+ const {loadPrevious} = last(backwardUsePaginationFragmentResult);
823
+ loadPrevious(123);
824
+ });
825
+ const {isLoadingPrevious} = last(backwardUsePaginationFragmentResult);
826
+ expect(isLoadingPrevious).toBeTruthy();
827
+ });
828
+ it("can be cancelled", () => {
829
+ (0, import_react_test_renderer.act)(() => {
830
+ const {loadPrevious} = last(backwardUsePaginationFragmentResult);
831
+ const disposable = loadPrevious(123);
832
+ const query = last(activeQueries(client));
833
+ disposable.dispose();
834
+ expect(client.getObservableQueries().has(query.queryId)).toBeFalsy();
835
+ });
836
+ });
837
+ it("cancels when unmounting", () => __async(void 0, null, function* () {
838
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
839
+ const {loadPrevious} = last(backwardUsePaginationFragmentResult);
840
+ loadPrevious(123);
841
+ const query = last(activeQueries(client));
842
+ testRenderer.unmount();
843
+ yield new Promise((resolve) => setTimeout(resolve, 0));
844
+ expect(client.getObservableQueries().has(query.queryId)).toBeFalsy();
845
+ }));
846
+ }));
847
+ it("invokes the onComplete callback when an error occurs", () => __async(void 0, null, function* () {
848
+ const onCompleted = jest.fn();
849
+ const error = new Error("oh noes");
850
+ const {loadPrevious} = last(backwardUsePaginationFragmentResult);
851
+ yield (0, import_react_test_renderer.act)(() => __async(void 0, null, function* () {
852
+ loadPrevious(1, {onCompleted});
853
+ yield client.mock.rejectMostRecentOperation(error);
854
+ }));
855
+ expect(onCompleted).toHaveBeenCalledWith(error);
856
+ }));
857
+ describe("and having received the response", () => {
858
+ let onCompleted;
859
+ beforeEach(() => __async(void 0, null, function* () {
860
+ onCompleted = jest.fn();
861
+ yield (0, import_react_test_renderer.act)(() => {
862
+ const {loadPrevious} = last(backwardUsePaginationFragmentResult);
863
+ loadPrevious(1, {onCompleted});
864
+ client.mock.resolveMostRecentOperation((operation) => MockPayloadGenerator.generate(operation, {
865
+ Node: () => ({
866
+ id: 42
867
+ }),
868
+ Message: () => ({
869
+ id: "second-paged-message"
870
+ }),
871
+ PageInfo: () => ({
872
+ startCursor: "second-page-start-cursor",
873
+ hasPreviousPage: false
874
+ })
875
+ }));
876
+ return new Promise((resolve) => setTimeout(resolve, 0));
877
+ });
878
+ }));
879
+ it("returns that no pagination operation is in-flight", () => {
880
+ const {isLoadingPrevious} = last(backwardUsePaginationFragmentResult);
881
+ expect(isLoadingPrevious).toBeFalsy();
882
+ });
883
+ it("loads the new data into the store", () => {
884
+ expect(client.cache.extract()).toMatchObject({
885
+ "Message:second-paged-message": {
886
+ id: "second-paged-message",
887
+ __typename: "Message",
888
+ text: '<mock-value-for-field-"text">'
889
+ }
890
+ });
891
+ });
892
+ it("returns the complete list data (previous+new) from the hook", () => {
893
+ const result = last(backwardUsePaginationFragmentResult);
894
+ expect(result.data.messages.edges.map((edge) => edge.node.id)).toMatchInlineSnapshot(`
895
+ Array [
896
+ "second-paged-message",
897
+ "first-paged-message",
898
+ ]
899
+ `);
900
+ });
901
+ it("uses the new cursor value", () => {
902
+ (0, import_react_test_renderer.act)(() => {
903
+ const {loadPrevious} = last(backwardUsePaginationFragmentResult);
904
+ loadPrevious(123);
905
+ });
906
+ const operation = client.mock.getMostRecentOperation();
907
+ expect(operation.request.variables).toMatchObject({
908
+ messagesBeforeCursor: "second-page-start-cursor"
909
+ });
910
+ });
911
+ it("returns that no previous data is available", () => {
912
+ const {hasPrevious} = last(backwardUsePaginationFragmentResult);
913
+ expect(hasPrevious).toBeFalsy();
914
+ });
915
+ it("invokes the onComplete callback without error", () => {
916
+ expect(onCompleted).toHaveBeenCalledWith(null);
917
+ });
918
+ });
919
+ });
920
+ });
921
+ });
922
+ class ErrorBoundary extends import_react.default.Component {
923
+ constructor() {
924
+ super(...arguments);
925
+ this.state = {hasError: false};
926
+ }
927
+ static getDerivedStateFromError(error) {
928
+ return {hasError: true};
929
+ }
930
+ componentDidCatch(error, errorInfo) {
931
+ console.error({error, errorInfo});
932
+ }
933
+ render() {
934
+ if (this.state.hasError) {
935
+ return /* @__PURE__ */ import_react.default.createElement("h1", null, "Something went wrong.");
936
+ }
937
+ return this.props.children;
938
+ }
939
+ }
940
+ function last(list) {
941
+ return list[list.length - 1];
942
+ }
943
+ function activeQueries(client) {
944
+ return Array.from(client.getObservableQueries().values());
945
+ }