@cedarjs/web 6.0.0-canary.2652 → 6.0.0-canary.2657

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 (68) hide show
  1. package/dist/apollo/fragmentRegistry.d.ts +23 -6
  2. package/dist/apollo/fragmentRegistry.d.ts.map +1 -1
  3. package/dist/apollo/fragmentRegistry.js +2 -2
  4. package/dist/apollo/index.d.ts +0 -1
  5. package/dist/apollo/index.d.ts.map +1 -1
  6. package/dist/apollo/index.js +2 -25
  7. package/dist/apollo/suspense.d.ts +0 -1
  8. package/dist/apollo/suspense.d.ts.map +1 -1
  9. package/dist/apollo/suspense.js +2 -24
  10. package/dist/cjs/apollo/fragmentRegistry.d.ts +23 -6
  11. package/dist/cjs/apollo/fragmentRegistry.d.ts.map +1 -1
  12. package/dist/cjs/apollo/fragmentRegistry.js +3 -3
  13. package/dist/cjs/apollo/index.d.ts +0 -1
  14. package/dist/cjs/apollo/index.d.ts.map +1 -1
  15. package/dist/cjs/apollo/index.js +1 -16
  16. package/dist/cjs/apollo/suspense.d.ts +0 -1
  17. package/dist/cjs/apollo/suspense.d.ts.map +1 -1
  18. package/dist/cjs/apollo/suspense.js +1 -16
  19. package/dist/cjs/components/cell/CellErrorBoundary.d.ts +3 -2
  20. package/dist/cjs/components/cell/CellErrorBoundary.d.ts.map +1 -1
  21. package/dist/cjs/components/cell/cellTypes.d.ts +3 -3
  22. package/dist/cjs/components/cell/cellTypes.d.ts.map +1 -1
  23. package/dist/cjs/components/cell/createCell.d.ts.map +1 -1
  24. package/dist/cjs/components/cell/createCell.js +2 -2
  25. package/dist/cjs/components/cell/createCell.test.js +69 -83
  26. package/dist/cjs/components/cell/createFragmentCell.d.ts.map +1 -1
  27. package/dist/cjs/components/cell/createFragmentCell.js +1 -2
  28. package/dist/cjs/components/cell/createFragmentCell.test.js +48 -55
  29. package/dist/cjs/components/cell/createSuspendingCell.d.ts.map +1 -1
  30. package/dist/cjs/components/cell/createSuspendingCell.js +2 -3
  31. package/dist/cjs/components/cell/createSuspendingCell.test.js +18 -37
  32. package/dist/cjs/global.web-auto-imports.d.ts +0 -16
  33. package/dist/cjs/global.web-auto-imports.d.ts.map +1 -1
  34. package/dist/cjs/global.web-auto-imports.js +0 -15
  35. package/dist/cjs/index.d.ts +4 -3
  36. package/dist/cjs/index.d.ts.map +1 -1
  37. package/dist/cjs/index.js +6 -7
  38. package/dist/components/cell/CellErrorBoundary.d.ts +3 -2
  39. package/dist/components/cell/CellErrorBoundary.d.ts.map +1 -1
  40. package/dist/components/cell/cellTypes.d.ts +3 -3
  41. package/dist/components/cell/cellTypes.d.ts.map +1 -1
  42. package/dist/components/cell/createCell.d.ts.map +1 -1
  43. package/dist/components/cell/createCell.js +1 -1
  44. package/dist/components/cell/createCell.test.js +70 -84
  45. package/dist/components/cell/createFragmentCell.d.ts.map +1 -1
  46. package/dist/components/cell/createFragmentCell.js +1 -2
  47. package/dist/components/cell/createFragmentCell.test.js +49 -56
  48. package/dist/components/cell/createSuspendingCell.d.ts.map +1 -1
  49. package/dist/components/cell/createSuspendingCell.js +5 -2
  50. package/dist/components/cell/createSuspendingCell.test.js +22 -38
  51. package/dist/global.web-auto-imports.d.ts +0 -16
  52. package/dist/global.web-auto-imports.d.ts.map +1 -1
  53. package/dist/index.d.ts +4 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -5
  56. package/package.json +5 -5
  57. package/dist/apollo/typeOverride.d.ts +0 -21
  58. package/dist/apollo/typeOverride.d.ts.map +0 -1
  59. package/dist/apollo/typeOverride.js +0 -0
  60. package/dist/cjs/apollo/typeOverride.d.ts +0 -21
  61. package/dist/cjs/apollo/typeOverride.d.ts.map +0 -1
  62. package/dist/cjs/apollo/typeOverride.js +0 -16
  63. package/dist/cjs/components/GraphQLHooksProvider.d.ts +0 -77
  64. package/dist/cjs/components/GraphQLHooksProvider.d.ts.map +0 -1
  65. package/dist/cjs/components/GraphQLHooksProvider.js +0 -147
  66. package/dist/components/GraphQLHooksProvider.d.ts +0 -77
  67. package/dist/components/GraphQLHooksProvider.d.ts.map +0 -1
  68. package/dist/components/GraphQLHooksProvider.js +0 -105
@@ -22,26 +22,31 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  var import_react = __toESM(require("react"), 1);
25
+ var import_hooks = require("@apollo/client/react/hooks/hooks.cjs");
25
26
  var import_react2 = require("@testing-library/react");
26
27
  var import_vitest = require("vitest");
27
- var import_GraphQLHooksProvider = require("../GraphQLHooksProvider.js");
28
28
  var import_createCell = require("./createCell.js");
29
+ import_vitest.vi.mock("@apollo/client/react/hooks/hooks.cjs", () => ({
30
+ useQuery: import_vitest.vi.fn()
31
+ }));
32
+ const mockUseQuery = import_hooks.useQuery;
29
33
  (0, import_vitest.describe)("createCell", () => {
30
34
  (0, import_vitest.beforeAll)(() => {
31
35
  globalThis.RWJS_ENV = {
32
36
  RWJS_EXP_STREAMING_SSR: false
33
37
  };
34
38
  });
39
+ (0, import_vitest.beforeEach)(() => {
40
+ mockUseQuery.mockReset();
41
+ });
35
42
  (0, import_vitest.test)("Renders a static Success component", () => {
36
43
  const TestCell = (0, import_createCell.createCell)({
37
44
  // @ts-expect-error - Purposefully using a plain string here.
38
45
  QUERY: "query TestQuery { answer }",
39
46
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!")
40
47
  });
41
- const myUseQueryHook = () => ({ data: {} });
42
- (0, import_react2.render)(
43
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
44
- );
48
+ mockUseQuery.mockImplementation(() => ({ data: {} }));
49
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
45
50
  import_react2.screen.getByText(/^Great success!$/);
46
51
  });
47
52
  (0, import_vitest.test)("Renders Success with data", () => {
@@ -50,12 +55,10 @@ var import_createCell = require("./createCell.js");
50
55
  QUERY: "query TestQuery { answer }",
51
56
  Success: ({ answer }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("dl", null, /* @__PURE__ */ import_react.default.createElement("dt", null, "What's the meaning of life?"), /* @__PURE__ */ import_react.default.createElement("dd", null, answer)))
52
57
  });
53
- const myUseQueryHook = () => {
58
+ mockUseQuery.mockImplementation(() => {
54
59
  return { data: { answer: 42 } };
55
- };
56
- (0, import_react2.render)(
57
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
58
- );
60
+ });
61
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
59
62
  import_react2.screen.getByText(/^What's the meaning of life\?$/);
60
63
  import_react2.screen.getByText(/^42$/);
61
64
  });
@@ -66,17 +69,15 @@ var import_createCell = require("./createCell.js");
66
69
  Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "No users or posts"),
67
70
  Success: ({ users, posts }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", null, users.length > 0 ? /* @__PURE__ */ import_react.default.createElement("ul", null, users.map(({ name }) => /* @__PURE__ */ import_react.default.createElement("li", { key: name }, name))) : "no users"), /* @__PURE__ */ import_react.default.createElement("div", null, posts.length > 0 ? /* @__PURE__ */ import_react.default.createElement("ul", null, posts.map(({ title }) => /* @__PURE__ */ import_react.default.createElement("li", { key: title }, title))) : "no posts"))
68
71
  });
69
- const myUseQueryHook = () => {
72
+ mockUseQuery.mockImplementation(() => {
70
73
  return {
71
74
  data: {
72
75
  users: [],
73
76
  posts: [{ title: "bazinga" }, { title: "kittens" }]
74
77
  }
75
78
  };
76
- };
77
- (0, import_react2.render)(
78
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
79
- );
79
+ });
80
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
80
81
  import_react2.screen.getByText(/bazinga/);
81
82
  import_react2.screen.getByText(/kittens/);
82
83
  });
@@ -86,10 +87,8 @@ var import_createCell = require("./createCell.js");
86
87
  QUERY: "query TestQuery { answer }",
87
88
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!")
88
89
  });
89
- const myUseQueryHook = () => ({ loading: true });
90
- (0, import_react2.render)(
91
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
92
- );
90
+ mockUseQuery.mockImplementation(() => ({ loading: true }));
91
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
93
92
  import_react2.screen.getByText(/^Loading...$/);
94
93
  });
95
94
  (0, import_vitest.test)("Renders custom Loading when there is no data", () => {
@@ -99,10 +98,8 @@ var import_createCell = require("./createCell.js");
99
98
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
100
99
  Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
101
100
  });
102
- const myUseQueryHook = () => ({ loading: true });
103
- (0, import_react2.render)(
104
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
105
- );
101
+ mockUseQuery.mockImplementation(() => ({ loading: true }));
102
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
106
103
  import_react2.screen.getByText(/^Fetching answer...$/);
107
104
  });
108
105
  (0, import_vitest.test)("Renders Success even when `loading` is true if there is data", () => {
@@ -112,10 +109,8 @@ var import_createCell = require("./createCell.js");
112
109
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
113
110
  Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
114
111
  });
115
- const myUseQueryHook = () => ({ loading: true, data: {} });
116
- (0, import_react2.render)(
117
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
118
- );
112
+ mockUseQuery.mockImplementation(() => ({ loading: true, data: {} }));
113
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
119
114
  import_react2.screen.getByText(/^Great success!$/);
120
115
  });
121
116
  (0, import_vitest.test)("Renders Empty if available, and data field is null", () => {
@@ -125,10 +120,11 @@ var import_createCell = require("./createCell.js");
125
120
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
126
121
  Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "No one knows")
127
122
  });
128
- const myUseQueryHook = () => ({ loading: true, data: { answer: null } });
129
- (0, import_react2.render)(
130
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
131
- );
123
+ mockUseQuery.mockImplementation(() => ({
124
+ loading: true,
125
+ data: { answer: null }
126
+ }));
127
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
132
128
  import_react2.screen.getByText(/^No one knows$/);
133
129
  });
134
130
  (0, import_vitest.test)("Renders Empty if available, and data field is an empty array", () => {
@@ -138,10 +134,11 @@ var import_createCell = require("./createCell.js");
138
134
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
139
135
  Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "No one knows")
140
136
  });
141
- const myUseQueryHook = () => ({ loading: true, data: { answers: [] } });
142
- (0, import_react2.render)(
143
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
144
- );
137
+ mockUseQuery.mockImplementation(() => ({
138
+ loading: true,
139
+ data: { answers: [] }
140
+ }));
141
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
145
142
  import_react2.screen.getByText(/^No one knows$/);
146
143
  });
147
144
  (0, import_vitest.test)("Renders Success even if data is empty when no Empty is available", () => {
@@ -150,10 +147,11 @@ var import_createCell = require("./createCell.js");
150
147
  QUERY: "query TestQuery { answer }",
151
148
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Empty success")
152
149
  });
153
- const myUseQueryHook = () => ({ loading: true, data: { answer: null } });
154
- (0, import_react2.render)(
155
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
156
- );
150
+ mockUseQuery.mockImplementation(() => ({
151
+ loading: true,
152
+ data: { answer: null }
153
+ }));
154
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
157
155
  import_react2.screen.getByText(/^Empty success$/);
158
156
  });
159
157
  (0, import_vitest.test)("Allows passing children to Success", () => {
@@ -162,9 +160,9 @@ var import_createCell = require("./createCell.js");
162
160
  QUERY: "query TestQuery { answer }",
163
161
  Success: ({ children }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Look at my beautiful ", children)
164
162
  });
165
- const myUseQueryHook = () => ({ data: {} });
163
+ mockUseQuery.mockImplementation(() => ({ data: {} }));
166
164
  (0, import_react2.render)(
167
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null, /* @__PURE__ */ import_react.default.createElement("div", null, "\u{1F986}")))
165
+ /* @__PURE__ */ import_react.default.createElement(TestCell, null, /* @__PURE__ */ import_react.default.createElement("div", null, "\u{1F986}"))
168
166
  );
169
167
  import_react2.screen.getByText(/^Look at my beautiful$/);
170
168
  import_react2.screen.getByText(/^🦆$/);
@@ -179,12 +177,10 @@ var import_createCell = require("./createCell.js");
179
177
  }`,
180
178
  Success: ({ greeting }) => /* @__PURE__ */ import_react.default.createElement("p", null, greeting)
181
179
  });
182
- const myUseQueryHook = (_query, options) => {
180
+ mockUseQuery.mockImplementation((_query, options) => {
183
181
  return { data: { greeting: `Hello ${options.variables.name}!` } };
184
- };
185
- (0, import_react2.render)(
186
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, { name: "Bob" }))
187
- );
182
+ });
183
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { name: "Bob" }));
188
184
  import_react2.screen.getByText(/^Hello Bob!$/);
189
185
  });
190
186
  (0, import_vitest.test)("Allows QUERY to be a function", () => {
@@ -198,16 +194,16 @@ var import_createCell = require("./createCell.js");
198
194
  },
199
195
  Success: ({ name }) => /* @__PURE__ */ import_react.default.createElement("p", null, "Call me ", name)
200
196
  });
201
- const myUseQueryHook = (query) => {
197
+ mockUseQuery.mockImplementation((query) => {
202
198
  if (query.includes("BeastQuery")) {
203
199
  return { data: { name: "Boogeyman" } };
204
200
  } else if (query.includes("HeroQuery")) {
205
201
  return { data: { name: "Lara Croft" } };
206
202
  }
207
203
  return { data: { name: "John Doe" } };
208
- };
204
+ });
209
205
  (0, import_react2.render)(
210
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, { character: "BEAST" }), /* @__PURE__ */ import_react.default.createElement(TestCell, { character: "HERO" }))
206
+ /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(TestCell, { character: "BEAST" }), /* @__PURE__ */ import_react.default.createElement(TestCell, { character: "HERO" }))
211
207
  );
212
208
  import_react2.screen.getByText(/^Call me Boogeyman$/);
213
209
  import_react2.screen.getByText(/^Call me Lara Croft$/);
@@ -220,10 +216,8 @@ var import_createCell = require("./createCell.js");
220
216
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
221
217
  Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
222
218
  });
223
- const myUseQueryHook = () => ({ error: true });
224
- (0, import_react2.render)(
225
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
226
- );
219
+ mockUseQuery.mockImplementation(() => ({ error: true }));
220
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
227
221
  import_react2.screen.getByText(/^Sad face :\($/);
228
222
  });
229
223
  (0, import_vitest.test)("Passes error to Failure component", () => {
@@ -234,10 +228,10 @@ var import_createCell = require("./createCell.js");
234
228
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
235
229
  Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
236
230
  });
237
- const myUseQueryHook = () => ({ error: { msg: "System malfunction" } });
238
- (0, import_react2.render)(
239
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
240
- );
231
+ mockUseQuery.mockImplementation(() => ({
232
+ error: { msg: "System malfunction" }
233
+ }));
234
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
241
235
  import_react2.screen.getByText(/^{"msg":"System malfunction"}$/);
242
236
  });
243
237
  (0, import_vitest.test)("Passes error and errorCode to Failure component", () => {
@@ -248,13 +242,11 @@ var import_createCell = require("./createCell.js");
248
242
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
249
243
  Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
250
244
  });
251
- const myUseQueryHook = () => ({
245
+ mockUseQuery.mockImplementation(() => ({
252
246
  error: { msg: "System malfunction" },
253
247
  errorCode: "SIMON_SAYS_NO"
254
- });
255
- (0, import_react2.render)(
256
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
257
- );
248
+ }));
249
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
258
250
  import_react2.screen.getByText(/^{"msg":"System malfunction"},code:SIMON_SAYS_NO$/);
259
251
  });
260
252
  (0, import_vitest.test)("Passes children to Failure", () => {
@@ -263,9 +255,9 @@ var import_createCell = require("./createCell.js");
263
255
  QUERY: "query TestQuery { answer }",
264
256
  Failure: ({ children }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "I'm a failure ", children)
265
257
  });
266
- const myUseQueryHook = () => ({ error: {} });
258
+ mockUseQuery.mockImplementation(() => ({ error: {} }));
267
259
  (0, import_react2.render)(
268
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null, /* @__PURE__ */ import_react.default.createElement("div", null, "Child")))
260
+ /* @__PURE__ */ import_react.default.createElement(TestCell, null, /* @__PURE__ */ import_react.default.createElement("div", null, "Child"))
269
261
  );
270
262
  import_react2.screen.getByText(/^I'm a failure$/);
271
263
  import_react2.screen.getByText(/^Child$/);
@@ -277,14 +269,14 @@ var import_createCell = require("./createCell.js");
277
269
  Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!"),
278
270
  Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
279
271
  });
280
- const myUseQueryHook = () => ({ error: { message: "200 GraphQL" } });
272
+ mockUseQuery.mockImplementation(() => ({
273
+ error: { message: "200 GraphQL" }
274
+ }));
281
275
  const err = console.error;
282
276
  console.error = import_vitest.vi.fn();
283
277
  let error;
284
278
  try {
285
- (0, import_react2.render)(
286
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
287
- );
279
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
288
280
  } catch (e) {
289
281
  error = e;
290
282
  }
@@ -299,13 +291,11 @@ var import_createCell = require("./createCell.js");
299
291
  Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Got nothing"),
300
292
  isEmpty: () => true
301
293
  });
302
- const myUseQueryHook = () => ({
294
+ mockUseQuery.mockImplementation(() => ({
303
295
  data: {},
304
296
  loading: false
305
- });
306
- (0, import_react2.render)(
307
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
308
- );
297
+ }));
298
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
309
299
  import_react2.screen.getByText(/^Got nothing$/);
310
300
  });
311
301
  (0, import_vitest.test)("Allows mixing isDataEmpty with custom logic", () => {
@@ -316,13 +306,11 @@ var import_createCell = require("./createCell.js");
316
306
  Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Got nothing"),
317
307
  isEmpty: (data, { isDataEmpty }) => isDataEmpty(data) || data.answer === "0"
318
308
  });
319
- const myUseQueryHook = () => ({
309
+ mockUseQuery.mockImplementation(() => ({
320
310
  data: { answer: "0" },
321
311
  loading: false
322
- });
323
- (0, import_react2.render)(
324
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
325
- );
312
+ }));
313
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
326
314
  import_react2.screen.getByText(/^Got nothing$/);
327
315
  });
328
316
  (0, import_vitest.test)("Allows overriding variables in beforeQuery", () => {
@@ -340,12 +328,10 @@ var import_createCell = require("./createCell.js");
340
328
  }
341
329
  })
342
330
  });
343
- const myUseQueryHook = (_query, options) => {
331
+ mockUseQuery.mockImplementation((_query, options) => {
344
332
  return { data: { greeting: `Hello ${options.variables.name}!` } };
345
- };
346
- (0, import_react2.render)(
347
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
348
- );
333
+ });
334
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
349
335
  import_react2.screen.getByText(/^Hello Bob!$/);
350
336
  });
351
337
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createFragmentCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createFragmentCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAqDrD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,QAAQ,EACR,UAA2B,EAC3B,OAAqB,EACrB,KAAK,EACL,OAAO,EACP,WAAoB,GACrB,EAAE,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAkEjE"}
1
+ {"version":3,"file":"createFragmentCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createFragmentCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAqDrD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,EACA,QAAQ,EACR,UAA2B,EAC3B,OAAqB,EACrB,KAAK,EACL,OAAO,EACP,WAAoB,GACrB,EAAE,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAkEjE"}
@@ -34,7 +34,6 @@ module.exports = __toCommonJS(createFragmentCell_exports);
34
34
  var import_react = __toESM(require("react"), 1);
35
35
  var import_graphql = require("graphql");
36
36
  var import_fragmentRegistry = require("../../apollo/fragmentRegistry.js");
37
- var import_GraphQLHooksProvider = require("../GraphQLHooksProvider.js");
38
37
  var import_isCellEmpty = require("./isCellEmpty.js");
39
38
  function getFragmentDefinition(fragment, displayName) {
40
39
  const fragmentDefinition = fragment.definitions.find(
@@ -80,7 +79,7 @@ function createFragmentCell({
80
79
  function NamedCell(props) {
81
80
  const { children: _, [propName]: rawSlice, ...rest } = props;
82
81
  const dataRef = isDataRef(rawSlice) ? rawSlice : void 0;
83
- const fragmentResult = (0, import_GraphQLHooksProvider.useFragment)({
82
+ const fragmentResult = (0, import_fragmentRegistry.useFragment)({
84
83
  fragment,
85
84
  fragmentName,
86
85
  from: dataRef ?? {}
@@ -22,12 +22,27 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  var import_react = __toESM(require("react"), 1);
25
+ var import_client = require("@apollo/client");
26
+ var import_hooks = require("@apollo/client/react/hooks/hooks.cjs");
25
27
  var import_react2 = require("@testing-library/react");
26
28
  var import_graphql = require("graphql");
27
29
  var import_vitest = require("vitest");
28
30
  var import_fragmentRegistry = require("../../apollo/fragmentRegistry.js");
29
- var import_GraphQLHooksProvider = require("../GraphQLHooksProvider.js");
30
31
  var import_createCell = require("./createCell.js");
32
+ import_vitest.vi.mock("@apollo/client", async (importOriginal) => {
33
+ const actual = await importOriginal();
34
+ return {
35
+ ...actual,
36
+ useApolloClient: import_vitest.vi.fn(),
37
+ useFragment: import_vitest.vi.fn()
38
+ };
39
+ });
40
+ import_vitest.vi.mock("@apollo/client/react/hooks/hooks.cjs", () => ({
41
+ useQuery: import_vitest.vi.fn()
42
+ }));
43
+ const mockUseApolloClient = import_client.useApolloClient;
44
+ const mockApolloUseFragment = import_client.useFragment;
45
+ const mockUseQuery = import_hooks.useQuery;
31
46
  const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
32
47
  fragment AuthorCell_author on User {
33
48
  email
@@ -40,71 +55,59 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
40
55
  RWJS_EXP_STREAMING_SSR: false
41
56
  };
42
57
  });
58
+ (0, import_vitest.beforeEach)(() => {
59
+ mockApolloUseFragment.mockReset();
60
+ mockUseApolloClient.mockReset();
61
+ mockUseApolloClient.mockReturnValue({
62
+ cache: {
63
+ identify: (obj) => obj.__typename && obj.id !== void 0 ? `${obj.__typename}:${obj.id}` : void 0
64
+ }
65
+ });
66
+ mockApolloUseFragment.mockReturnValue({ data: void 0, complete: false });
67
+ });
43
68
  (0, import_vitest.test)("renders Success with data from its data prop", () => {
44
69
  const TestCell = (0, import_createCell.createCell)({
45
70
  FRAGMENT: AUTHOR_FRAGMENT,
46
71
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
47
72
  });
48
73
  (0, import_react2.render)(
49
- // No useFragment hook registered, so the Cell falls back to reading
50
- // data straight off the `author` prop
51
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: null, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(
74
+ /* @__PURE__ */ import_react.default.createElement(
52
75
  TestCell,
53
76
  {
54
77
  author: { __typename: "User", id: 1, fullName: "Story Teller" }
55
78
  }
56
- ))
79
+ )
57
80
  );
58
81
  import_react2.screen.getByText(/^By Story Teller$/);
59
82
  });
60
- (0, import_vitest.test)("prefers complete data from the useFragment hook", () => {
83
+ (0, import_vitest.test)("prefers complete data from the cache", () => {
61
84
  const TestCell = (0, import_createCell.createCell)({
62
85
  FRAGMENT: AUTHOR_FRAGMENT,
63
86
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
64
87
  });
65
- const myUseFragmentHook = (options) => {
88
+ mockApolloUseFragment.mockImplementation((options) => {
66
89
  (0, import_vitest.expect)(options.fragmentName).toEqual("AuthorCell_author");
67
- (0, import_vitest.expect)(options.from).toEqual({ __typename: "User", id: 1 });
90
+ (0, import_vitest.expect)(options.from).toEqual("User:1");
68
91
  return {
69
92
  data: { fullName: "Cache Dweller" },
70
93
  complete: true
71
94
  };
72
- };
73
- (0, import_react2.render)(
74
- /* @__PURE__ */ import_react.default.createElement(
75
- import_GraphQLHooksProvider.GraphQLHooksProvider,
76
- {
77
- useQuery: null,
78
- useMutation: null,
79
- useFragment: myUseFragmentHook
80
- },
81
- /* @__PURE__ */ import_react.default.createElement(TestCell, { author: { __typename: "User", id: 1 } })
82
- )
83
- );
95
+ });
96
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { author: { __typename: "User", id: 1 } }));
84
97
  import_react2.screen.getByText(/^By Cache Dweller$/);
85
98
  });
86
- (0, import_vitest.test)("falls back to the data prop for incomplete useFragment reads", () => {
99
+ (0, import_vitest.test)("falls back to the data prop for incomplete cache reads", () => {
87
100
  const TestCell = (0, import_createCell.createCell)({
88
101
  FRAGMENT: AUTHOR_FRAGMENT,
89
102
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
90
103
  });
91
- const myUseFragmentHook = () => {
92
- return { data: void 0, complete: false };
93
- };
104
+ mockApolloUseFragment.mockReturnValue({ data: void 0, complete: false });
94
105
  (0, import_react2.render)(
95
106
  /* @__PURE__ */ import_react.default.createElement(
96
- import_GraphQLHooksProvider.GraphQLHooksProvider,
107
+ TestCell,
97
108
  {
98
- useQuery: null,
99
- useMutation: null,
100
- useFragment: myUseFragmentHook
101
- },
102
- /* @__PURE__ */ import_react.default.createElement(
103
- TestCell,
104
- {
105
- author: { __typename: "User", id: 1, fullName: "Ref Reader" }
106
- }
107
- )
109
+ author: { __typename: "User", id: 1, fullName: "Ref Reader" }
110
+ }
108
111
  )
109
112
  );
110
113
  import_react2.screen.getByText(/^By Ref Reader$/);
@@ -119,7 +122,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
119
122
  Success: ({ user }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, user.bio)
120
123
  });
121
124
  (0, import_react2.render)(
122
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: null, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, { user: { __typename: "User", id: 1, bio: "Writes things" } }))
125
+ /* @__PURE__ */ import_react.default.createElement(TestCell, { user: { __typename: "User", id: 1, bio: "Writes things" } })
123
126
  );
124
127
  import_react2.screen.getByText(/^Writes things$/);
125
128
  });
@@ -131,7 +134,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
131
134
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
132
135
  });
133
136
  (0, import_react2.render)(
134
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: null, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, { author: { __typename: "User", id: 1, fullName: "Nobody" } }))
137
+ /* @__PURE__ */ import_react.default.createElement(TestCell, { author: { __typename: "User", id: 1, fullName: "Nobody" } })
135
138
  );
136
139
  import_react2.screen.getByText(/^Nothing to see$/);
137
140
  });
@@ -144,12 +147,12 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
144
147
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
145
148
  });
146
149
  (0, import_react2.render)(
147
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: null, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(
150
+ /* @__PURE__ */ import_react.default.createElement(
148
151
  TestCell,
149
152
  {
150
153
  author: { __typename: "User", id: 1, fullName: "Original Name" }
151
154
  }
152
- ))
155
+ )
153
156
  );
154
157
  import_react2.screen.getByText(/^By Changed Name$/);
155
158
  });
@@ -159,11 +162,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
159
162
  Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "No author"),
160
163
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
161
164
  });
162
- (0, import_react2.render)(
163
- // A nullable field, or a partial error with `errorPolicy: 'all'`, can
164
- // make the parent pass null here
165
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: null, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, { author: null }))
166
- );
165
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { author: null }));
167
166
  import_react2.screen.getByText(/^No author$/);
168
167
  });
169
168
  (0, import_vitest.test)("renders Success with null data when the data prop is null and there is no Empty", () => {
@@ -171,9 +170,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
171
170
  FRAGMENT: AUTHOR_FRAGMENT,
172
171
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author?.fullName ?? "unknown")
173
172
  });
174
- (0, import_react2.render)(
175
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: null, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, { author: null }))
176
- );
173
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { author: null }));
177
174
  import_react2.screen.getByText(/^By unknown$/);
178
175
  });
179
176
  (0, import_vitest.test)("throws a helpful error naming the prop when it is not passed", () => {
@@ -186,9 +183,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
186
183
  });
187
184
  try {
188
185
  (0, import_vitest.expect)(() => {
189
- (0, import_react2.render)(
190
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: null, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
191
- );
186
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
192
187
  }).toThrow(/`author` prop/);
193
188
  } finally {
194
189
  consoleErrorSpy.mockRestore();
@@ -201,12 +196,10 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
201
196
  FRAGMENT: AUTHOR_FRAGMENT,
202
197
  Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
203
198
  });
204
- const myUseQueryHook = () => {
199
+ mockUseQuery.mockImplementation(() => {
205
200
  return { data: { author: { fullName: "Query Result" } } };
206
- };
207
- (0, import_react2.render)(
208
- /* @__PURE__ */ import_react.default.createElement(import_GraphQLHooksProvider.GraphQLHooksProvider, { useQuery: myUseQueryHook, useMutation: null }, /* @__PURE__ */ import_react.default.createElement(TestCell, null))
209
- );
201
+ });
202
+ (0, import_react2.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
210
203
  import_react2.screen.getByText(/^By Query Result$/);
211
204
  });
212
205
  (0, import_vitest.test)("registers the FRAGMENT even when the Cell stays a query Cell", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"createSuspendingCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createSuspendingCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAYvC,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,gBAAgB,CAAA;AAGvB,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,SAAS,MAAM,EACxB,aAAa,SAAS,MAAM,EAE5B,eAAe,EAAE,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,GACtD,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAiJrB"}
1
+ {"version":3,"file":"createSuspendingCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createSuspendingCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAWvC,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,gBAAgB,CAAA;AAGvB,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AACrC;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,SAAS,MAAM,EACxB,aAAa,SAAS,MAAM,EAE5B,eAAe,EAAE,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,GACtD,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAiJrB"}
@@ -33,7 +33,6 @@ __export(createSuspendingCell_exports, {
33
33
  module.exports = __toCommonJS(createSuspendingCell_exports);
34
34
  var import_react = __toESM(require("react"), 1);
35
35
  var import_hooks = require("@apollo/client/react/hooks/hooks.cjs");
36
- var import_GraphQLHooksProvider = require("../GraphQLHooksProvider.js");
37
36
  var import_CellErrorBoundary = require("./CellErrorBoundary.js");
38
37
  var import_isCellEmpty = require("./isCellEmpty.js");
39
38
  function createSuspendingCell(createCellProps) {
@@ -67,7 +66,7 @@ function createSuspendingCell(createCellProps) {
67
66
  const cellQuery = QUERY;
68
67
  function SuspendingSuccess(props) {
69
68
  const { queryRef, suspenseQueryResult, userProps } = props;
70
- const { data, networkStatus } = (0, import_GraphQLHooksProvider.useReadQuery)(queryRef);
69
+ const { data, networkStatus } = (0, import_hooks.useReadQuery)(queryRef);
71
70
  const afterQueryData = afterQuery(data);
72
71
  const queryResultWithNetworkStatus = {
73
72
  ...suspenseQueryResult,
@@ -97,7 +96,7 @@ function createSuspendingCell(createCellProps) {
97
96
  const { children: _, ...variables } = props;
98
97
  const options = beforeQuery(variables);
99
98
  const query = typeof cellQuery === "function" ? cellQuery(options) : cellQuery;
100
- const [queryRef, other] = (0, import_GraphQLHooksProvider.useBackgroundQuery)(query, options);
99
+ const [queryRef, other] = (0, import_hooks.useBackgroundQuery)(query, options);
101
100
  const client = (0, import_hooks.useApolloClient)();
102
101
  const suspenseQueryResult = {
103
102
  client,