@cedarjs/web 6.0.0-canary.2663 → 6.0.0-canary.2665
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apollo/ApolloProviderWithFetchConfig.d.ts +1 -1
- package/dist/apollo/ApolloProviderWithFetchConfig.d.ts.map +1 -1
- package/dist/apollo/ApolloProviderWithFetchConfig.js +23 -16
- package/dist/apollo/CedarApolloProvider.js +1 -1
- package/dist/apollo/CedarApolloProvider.test.js +38 -0
- package/dist/apollo/apolloLinkTypes.d.ts +4 -4
- package/dist/apollo/apolloLinkTypes.d.ts.map +1 -1
- package/dist/apollo/fragmentRegistry.d.ts +3 -3
- package/dist/apollo/fragmentRegistry.d.ts.map +1 -1
- package/dist/apollo/fragmentRegistry.js +35 -8
- package/dist/apollo/fragmentRegistry.test.js +67 -0
- package/dist/apollo/links.d.ts +4 -5
- package/dist/apollo/links.d.ts.map +1 -1
- package/dist/apollo/links.js +7 -7
- package/dist/apollo/sseLink.d.ts +5 -8
- package/dist/apollo/sseLink.d.ts.map +1 -1
- package/dist/apollo/sseLink.js +9 -12
- package/dist/apollo/suspense.d.ts +3 -3
- package/dist/apollo/suspense.d.ts.map +1 -1
- package/dist/apollo/suspense.js +1 -1
- package/dist/apollo/useCache.d.ts +4 -6
- package/dist/apollo/useCache.d.ts.map +1 -1
- package/dist/apollo/useCache.js +1 -1
- package/dist/bundled/apollo-upload-client.d.ts +2 -2
- package/dist/bundled/apollo-upload-client.d.ts.map +1 -1
- package/dist/bundled/apollo-upload-client.js +2 -2
- package/dist/cjs/apollo/ApolloProviderWithFetchConfig.d.ts +1 -1
- package/dist/cjs/apollo/ApolloProviderWithFetchConfig.d.ts.map +1 -1
- package/dist/cjs/apollo/ApolloProviderWithFetchConfig.js +26 -21
- package/dist/cjs/apollo/CedarApolloProvider.js +2 -2
- package/dist/cjs/apollo/CedarApolloProvider.test.js +61 -0
- package/dist/cjs/apollo/apolloLinkTypes.d.ts +4 -4
- package/dist/cjs/apollo/apolloLinkTypes.d.ts.map +1 -1
- package/dist/cjs/apollo/fragmentRegistry.d.ts +3 -3
- package/dist/cjs/apollo/fragmentRegistry.d.ts.map +1 -1
- package/dist/cjs/apollo/fragmentRegistry.js +32 -18
- package/dist/cjs/apollo/fragmentRegistry.test.js +90 -0
- package/dist/cjs/apollo/links.d.ts +4 -5
- package/dist/cjs/apollo/links.d.ts.map +1 -1
- package/dist/cjs/apollo/links.js +12 -12
- package/dist/cjs/apollo/sseLink.d.ts +5 -8
- package/dist/cjs/apollo/sseLink.d.ts.map +1 -1
- package/dist/cjs/apollo/sseLink.js +11 -14
- package/dist/cjs/apollo/suspense.d.ts +3 -3
- package/dist/cjs/apollo/suspense.d.ts.map +1 -1
- package/dist/cjs/apollo/suspense.js +2 -2
- package/dist/cjs/apollo/useCache.d.ts +4 -6
- package/dist/cjs/apollo/useCache.d.ts.map +1 -1
- package/dist/cjs/apollo/useCache.js +2 -2
- package/dist/cjs/bundled/apollo-upload-client.d.ts +2 -2
- package/dist/cjs/bundled/apollo-upload-client.d.ts.map +1 -1
- package/dist/cjs/bundled/apollo-upload-client.js +1562 -1734
- package/dist/cjs/components/DevFatalErrorPage.d.ts +3 -3
- package/dist/cjs/components/DevFatalErrorPage.d.ts.map +1 -1
- package/dist/cjs/components/DevFatalErrorPage.js +2 -2
- package/dist/cjs/components/cell/CellErrorBoundary.d.ts +3 -3
- package/dist/cjs/components/cell/CellErrorBoundary.d.ts.map +1 -1
- package/dist/cjs/components/cell/cellTypes.d.ts +6 -5
- package/dist/cjs/components/cell/cellTypes.d.ts.map +1 -1
- package/dist/cjs/components/cell/createCell.d.ts.map +1 -1
- package/dist/cjs/components/cell/createCell.js +5 -4
- package/dist/cjs/components/cell/createCell.test.js +48 -48
- package/dist/cjs/components/cell/createFragmentCell.test.js +27 -30
- package/dist/cjs/components/cell/createSuspendingCell.d.ts.map +1 -1
- package/dist/cjs/components/cell/createSuspendingCell.js +7 -6
- package/dist/cjs/components/cell/createSuspendingCell.test.js +13 -13
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -4
- package/dist/components/DevFatalErrorPage.d.ts +3 -3
- package/dist/components/DevFatalErrorPage.d.ts.map +1 -1
- package/dist/components/DevFatalErrorPage.js +2 -2
- package/dist/components/cell/CellErrorBoundary.d.ts +3 -3
- package/dist/components/cell/CellErrorBoundary.d.ts.map +1 -1
- package/dist/components/cell/cellTypes.d.ts +6 -5
- package/dist/components/cell/cellTypes.d.ts.map +1 -1
- package/dist/components/cell/createCell.d.ts.map +1 -1
- package/dist/components/cell/createCell.js +4 -3
- package/dist/components/cell/createCell.test.js +2 -2
- package/dist/components/cell/createFragmentCell.test.js +4 -7
- package/dist/components/cell/createSuspendingCell.d.ts.map +1 -1
- package/dist/components/cell/createSuspendingCell.js +4 -3
- package/dist/components/cell/createSuspendingCell.test.js +2 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/package.json +10 -9
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { GraphQLFormattedError } from 'graphql';
|
|
3
3
|
type RequestDetails = {
|
|
4
4
|
query: string;
|
|
5
5
|
operationName: string;
|
|
6
6
|
operationKind: string;
|
|
7
7
|
variables: any;
|
|
8
8
|
};
|
|
9
|
-
interface EnhancedGqlError extends
|
|
9
|
+
interface EnhancedGqlError extends GraphQLFormattedError {
|
|
10
10
|
__RedwoodEnhancedError: RequestDetails;
|
|
11
11
|
}
|
|
12
12
|
type ErrorWithRequestMeta = Error & {
|
|
13
13
|
mostRecentRequest?: RequestDetails;
|
|
14
|
-
|
|
14
|
+
errors?: EnhancedGqlError[];
|
|
15
15
|
mostRecentResponse?: any;
|
|
16
16
|
};
|
|
17
17
|
export declare const DevFatalErrorPage: (props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevFatalErrorPage.d.ts","sourceRoot":"","sources":["../../../src/components/DevFatalErrorPage.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAE1D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"DevFatalErrorPage.d.ts","sourceRoot":"","sources":["../../../src/components/DevFatalErrorPage.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAmBpD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,GAAG,CAAA;CACf,CAAA;AAED,UAAU,gBAAiB,SAAQ,qBAAqB;IACtD,sBAAsB,EAAE,cAAc,CAAA;CACvC;AAID,KAAK,oBAAoB,GAAG,KAAK,GAAG;IAClC,iBAAiB,CAAC,EAAE,cAAc,CAAA;IAClC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC3B,kBAAkB,CAAC,EAAE,GAAG,CAAA;CACzB,CAAA;AAiGD,eAAO,MAAM,iBAAiB,GAAI,OAAO;IAAE,KAAK,CAAC,EAAE,oBAAoB,CAAA;CAAE,sBA4FxE,CAAA"}
|
|
@@ -52,7 +52,7 @@ function formatErrorForClipboard(err, stack, typeName, msg, errorWithMeta) {
|
|
|
52
52
|
lines.push(`ERROR TYPE: ${typeName}`);
|
|
53
53
|
lines.push(`ERROR MESSAGE: ${msg}`);
|
|
54
54
|
lines.push("");
|
|
55
|
-
const mostRecentRequest = errorWithMeta.mostRecentRequest || errorWithMeta.
|
|
55
|
+
const mostRecentRequest = errorWithMeta.mostRecentRequest || errorWithMeta.errors?.find((gqlErr) => gqlErr.__RedwoodEnhancedError)?.__RedwoodEnhancedError;
|
|
56
56
|
if (mostRecentRequest) {
|
|
57
57
|
lines.push("-".repeat(80));
|
|
58
58
|
lines.push("REQUEST CONTEXT");
|
|
@@ -227,7 +227,7 @@ function ResponseRequest(props) {
|
|
|
227
227
|
if (!props.error) {
|
|
228
228
|
return null;
|
|
229
229
|
}
|
|
230
|
-
const mostRecentRequest = props.error.mostRecentRequest || props.error.
|
|
230
|
+
const mostRecentRequest = props.error.mostRecentRequest || props.error.errors?.find((gqlErr) => gqlErr.__RedwoodEnhancedError)?.__RedwoodEnhancedError;
|
|
231
231
|
const mostRecentResponse = props.error.mostRecentResponse;
|
|
232
232
|
return /* @__PURE__ */ import_react.default.createElement("div", { className: "request-response" }, mostRecentRequest ? /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("h4", null, "Request: ", mostRecentRequest.operationName), /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("h5", null, "Variables:"), /* @__PURE__ */ import_react.default.createElement("code", null, /* @__PURE__ */ import_react.default.createElement("pre", null, JSON.stringify(mostRecentRequest.variables, null, " ")))), /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("h5", null, "Query:"), /* @__PURE__ */ import_react.default.createElement("code", null, /* @__PURE__ */ import_react.default.createElement(
|
|
233
233
|
"pre",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { useQuery } from '@apollo/client/react';
|
|
3
3
|
import type { CellFailureProps } from './cellTypes.js';
|
|
4
4
|
export type FallbackProps = {
|
|
5
|
-
error:
|
|
5
|
+
error: useQuery.Result['error'];
|
|
6
6
|
resetErrorBoundary: () => void;
|
|
7
7
|
};
|
|
8
8
|
export type CellErrorBoundaryProps = {
|
|
@@ -11,7 +11,7 @@ export type CellErrorBoundaryProps = {
|
|
|
11
11
|
};
|
|
12
12
|
interface ErrState {
|
|
13
13
|
hasError: boolean;
|
|
14
|
-
error?:
|
|
14
|
+
error?: useQuery.Result['error'];
|
|
15
15
|
}
|
|
16
16
|
export declare class CellErrorBoundary extends React.Component<CellErrorBoundaryProps, ErrState> {
|
|
17
17
|
constructor(props: CellErrorBoundaryProps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/CellErrorBoundary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CellErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/CellErrorBoundary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/B,kBAAkB,EAAE,MAAM,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IAGnC,cAAc,EAAE,CACd,OAAO,EAAE,aAAa,KACnB,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,UAAU,QAAQ;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;CACjC;AAED,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CACpD,sBAAsB,EACtB,QAAQ,CACT;gBACa,KAAK,EAAE,sBAAsB;IAKzC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;;;;IAI5C,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;IAQ1D,MAAM;CAgBP"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ComponentProps, JSXElementConstructor } from 'react';
|
|
2
|
-
import type { ApolloClient, NetworkStatus, OperationVariables
|
|
2
|
+
import type { ApolloClient, NetworkStatus, OperationVariables } from '@apollo/client';
|
|
3
|
+
import type { QueryRef, useBackgroundQuery, useQuery } from '@apollo/client/react';
|
|
3
4
|
import type { DocumentNode } from 'graphql';
|
|
4
5
|
import type { A, L, O, U } from 'ts-toolbelt';
|
|
5
6
|
/**
|
|
@@ -27,7 +28,7 @@ export type CellLoadingProps<TVariables extends OperationVariables = any> = {
|
|
|
27
28
|
} & InputVarProps<TVariables>;
|
|
28
29
|
export type CellFailureProps<TVariables extends OperationVariables = any> = {
|
|
29
30
|
queryResult?: NonSuspenseCellQueryResult<TVariables, any> | SuspenseCellQueryResult;
|
|
30
|
-
error?:
|
|
31
|
+
error?: useQuery.Result['error'] | Error;
|
|
31
32
|
/**
|
|
32
33
|
* @see {@link https://www.apollographql.com/docs/apollo-server/data/errors/#error-codes}
|
|
33
34
|
*/
|
|
@@ -155,9 +156,9 @@ export type SuspendingSuccessProps = React.PropsWithChildren<Record<string, unkn
|
|
|
155
156
|
suspenseQueryResult: SuspenseCellQueryResult<DataObject, any>;
|
|
156
157
|
userProps: Record<string, any>;
|
|
157
158
|
};
|
|
158
|
-
export type NonSuspenseCellQueryResult<TVariables extends OperationVariables = any, TData = any> = Partial<Omit<
|
|
159
|
-
export interface SuspenseCellQueryResult<_TData = any, _TVariables extends OperationVariables = any> extends
|
|
160
|
-
client: ApolloClient
|
|
159
|
+
export type NonSuspenseCellQueryResult<TVariables extends OperationVariables = any, TData = any> = Partial<Omit<useQuery.Result<TData, TVariables>, 'loading' | 'error' | 'data'>>;
|
|
160
|
+
export interface SuspenseCellQueryResult<_TData = any, _TVariables extends OperationVariables = any> extends useBackgroundQuery.Result {
|
|
161
|
+
client: ApolloClient;
|
|
161
162
|
networkStatus?: NetworkStatus;
|
|
162
163
|
called: boolean;
|
|
163
164
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cellTypes.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/cellTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAElE,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cellTypes.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/cellTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"createCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,gBAAgB,CAAA;AAKjE,wBAAgB,UAAU,CACxB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE7C,eAAe,EAAE,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,GACzD,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAiCrB"}
|
|
@@ -32,7 +32,8 @@ __export(createCell_exports, {
|
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(createCell_exports);
|
|
34
34
|
var import_react = __toESM(require("react"), 1);
|
|
35
|
-
var
|
|
35
|
+
var import_client = require("@apollo/client");
|
|
36
|
+
var import_react2 = require("@apollo/client/react");
|
|
36
37
|
var import_fragmentRegistry = require("../../apollo/fragmentRegistry.js");
|
|
37
38
|
var import_graphql = require("../../graphql.js");
|
|
38
39
|
var import_CellCacheContext = require("./CellCacheContext.js");
|
|
@@ -90,7 +91,7 @@ function createNonSuspendingCell({
|
|
|
90
91
|
loading,
|
|
91
92
|
data,
|
|
92
93
|
...queryResult
|
|
93
|
-
} = (0,
|
|
94
|
+
} = (0, import_react2.useQuery)(query, options);
|
|
94
95
|
if (globalThis.__REDWOOD__PRERENDERING) {
|
|
95
96
|
const { queryCache } = (0, import_CellCacheContext.useCellCacheContext)();
|
|
96
97
|
const operationName = (0, import_graphql.getOperationName)(query);
|
|
@@ -129,7 +130,7 @@ function createNonSuspendingCell({
|
|
|
129
130
|
error,
|
|
130
131
|
errorCode: (
|
|
131
132
|
// Use the ad-hoc QueryResultWithErrorCode type to access the errorCode
|
|
132
|
-
queryResult.errorCode ?? error.
|
|
133
|
+
queryResult.errorCode ?? (import_client.CombinedGraphQLErrors.is(error) ? error.errors[0]?.extensions?.["code"] : void 0)
|
|
133
134
|
),
|
|
134
135
|
...props,
|
|
135
136
|
updating: loading,
|
|
@@ -137,7 +138,7 @@ function createNonSuspendingCell({
|
|
|
137
138
|
}
|
|
138
139
|
);
|
|
139
140
|
} else {
|
|
140
|
-
throw error;
|
|
141
|
+
throw error instanceof Error ? error : new Error(error.message);
|
|
141
142
|
}
|
|
142
143
|
} else if (data) {
|
|
143
144
|
const afterQueryData = afterQuery(data);
|
|
@@ -22,14 +22,14 @@ 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
|
|
26
|
-
var
|
|
25
|
+
var import_react2 = require("@apollo/client/react");
|
|
26
|
+
var import_react3 = require("@testing-library/react");
|
|
27
27
|
var import_vitest = require("vitest");
|
|
28
28
|
var import_createCell = require("./createCell.js");
|
|
29
|
-
import_vitest.vi.mock("@apollo/client/react
|
|
29
|
+
import_vitest.vi.mock("@apollo/client/react", () => ({
|
|
30
30
|
useQuery: import_vitest.vi.fn()
|
|
31
31
|
}));
|
|
32
|
-
const mockUseQuery =
|
|
32
|
+
const mockUseQuery = import_react2.useQuery;
|
|
33
33
|
(0, import_vitest.describe)("createCell", () => {
|
|
34
34
|
(0, import_vitest.beforeAll)(() => {
|
|
35
35
|
globalThis.RWJS_ENV = {
|
|
@@ -46,8 +46,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
46
46
|
Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!")
|
|
47
47
|
});
|
|
48
48
|
mockUseQuery.mockImplementation(() => ({ data: {} }));
|
|
49
|
-
(0,
|
|
50
|
-
|
|
49
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
50
|
+
import_react3.screen.getByText(/^Great success!$/);
|
|
51
51
|
});
|
|
52
52
|
(0, import_vitest.test)("Renders Success with data", () => {
|
|
53
53
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -58,9 +58,9 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
58
58
|
mockUseQuery.mockImplementation(() => {
|
|
59
59
|
return { data: { answer: 42 } };
|
|
60
60
|
});
|
|
61
|
-
(0,
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
62
|
+
import_react3.screen.getByText(/^What's the meaning of life\?$/);
|
|
63
|
+
import_react3.screen.getByText(/^42$/);
|
|
64
64
|
});
|
|
65
65
|
(0, import_vitest.test)("Renders Success if any of the fields have data (i.e. not just the first)", () => {
|
|
66
66
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -77,9 +77,9 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
79
|
});
|
|
80
|
-
(0,
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
81
|
+
import_react3.screen.getByText(/bazinga/);
|
|
82
|
+
import_react3.screen.getByText(/kittens/);
|
|
83
83
|
});
|
|
84
84
|
(0, import_vitest.test)("Renders default Loading when there is no data", () => {
|
|
85
85
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -88,8 +88,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
88
88
|
Success: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Great success!")
|
|
89
89
|
});
|
|
90
90
|
mockUseQuery.mockImplementation(() => ({ loading: true }));
|
|
91
|
-
(0,
|
|
92
|
-
|
|
91
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
92
|
+
import_react3.screen.getByText(/^Loading...$/);
|
|
93
93
|
});
|
|
94
94
|
(0, import_vitest.test)("Renders custom Loading when there is no data", () => {
|
|
95
95
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -99,8 +99,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
99
99
|
Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
|
|
100
100
|
});
|
|
101
101
|
mockUseQuery.mockImplementation(() => ({ loading: true }));
|
|
102
|
-
(0,
|
|
103
|
-
|
|
102
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
103
|
+
import_react3.screen.getByText(/^Fetching answer...$/);
|
|
104
104
|
});
|
|
105
105
|
(0, import_vitest.test)("Renders Success even when `loading` is true if there is data", () => {
|
|
106
106
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -110,8 +110,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
110
110
|
Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
|
|
111
111
|
});
|
|
112
112
|
mockUseQuery.mockImplementation(() => ({ loading: true, data: {} }));
|
|
113
|
-
(0,
|
|
114
|
-
|
|
113
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
114
|
+
import_react3.screen.getByText(/^Great success!$/);
|
|
115
115
|
});
|
|
116
116
|
(0, import_vitest.test)("Renders Empty if available, and data field is null", () => {
|
|
117
117
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -124,8 +124,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
124
124
|
loading: true,
|
|
125
125
|
data: { answer: null }
|
|
126
126
|
}));
|
|
127
|
-
(0,
|
|
128
|
-
|
|
127
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
128
|
+
import_react3.screen.getByText(/^No one knows$/);
|
|
129
129
|
});
|
|
130
130
|
(0, import_vitest.test)("Renders Empty if available, and data field is an empty array", () => {
|
|
131
131
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -138,8 +138,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
138
138
|
loading: true,
|
|
139
139
|
data: { answers: [] }
|
|
140
140
|
}));
|
|
141
|
-
(0,
|
|
142
|
-
|
|
141
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
142
|
+
import_react3.screen.getByText(/^No one knows$/);
|
|
143
143
|
});
|
|
144
144
|
(0, import_vitest.test)("Renders Success even if data is empty when no Empty is available", () => {
|
|
145
145
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -151,8 +151,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
151
151
|
loading: true,
|
|
152
152
|
data: { answer: null }
|
|
153
153
|
}));
|
|
154
|
-
(0,
|
|
155
|
-
|
|
154
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
155
|
+
import_react3.screen.getByText(/^Empty success$/);
|
|
156
156
|
});
|
|
157
157
|
(0, import_vitest.test)("Allows passing children to Success", () => {
|
|
158
158
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -161,11 +161,11 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
161
161
|
Success: ({ children }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Look at my beautiful ", children)
|
|
162
162
|
});
|
|
163
163
|
mockUseQuery.mockImplementation(() => ({ data: {} }));
|
|
164
|
-
(0,
|
|
164
|
+
(0, import_react3.render)(
|
|
165
165
|
/* @__PURE__ */ import_react.default.createElement(TestCell, null, /* @__PURE__ */ import_react.default.createElement("div", null, "\u{1F986}"))
|
|
166
166
|
);
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
import_react3.screen.getByText(/^Look at my beautiful$/);
|
|
168
|
+
import_react3.screen.getByText(/^🦆$/);
|
|
169
169
|
});
|
|
170
170
|
(0, import_vitest.test)("Cell props are passed to the query as variables", () => {
|
|
171
171
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -180,8 +180,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
180
180
|
mockUseQuery.mockImplementation((_query, options) => {
|
|
181
181
|
return { data: { greeting: `Hello ${options.variables.name}!` } };
|
|
182
182
|
});
|
|
183
|
-
(0,
|
|
184
|
-
|
|
183
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { name: "Bob" }));
|
|
184
|
+
import_react3.screen.getByText(/^Hello Bob!$/);
|
|
185
185
|
});
|
|
186
186
|
(0, import_vitest.test)("Allows QUERY to be a function", () => {
|
|
187
187
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -202,11 +202,11 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
202
202
|
}
|
|
203
203
|
return { data: { name: "John Doe" } };
|
|
204
204
|
});
|
|
205
|
-
(0,
|
|
205
|
+
(0, import_react3.render)(
|
|
206
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" }))
|
|
207
207
|
);
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
import_react3.screen.getByText(/^Call me Boogeyman$/);
|
|
209
|
+
import_react3.screen.getByText(/^Call me Lara Croft$/);
|
|
210
210
|
});
|
|
211
211
|
(0, import_vitest.test)("Renders Failure when there is an error", () => {
|
|
212
212
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -217,8 +217,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
217
217
|
Loading: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Fetching answer...")
|
|
218
218
|
});
|
|
219
219
|
mockUseQuery.mockImplementation(() => ({ error: true }));
|
|
220
|
-
(0,
|
|
221
|
-
|
|
220
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
221
|
+
import_react3.screen.getByText(/^Sad face :\($/);
|
|
222
222
|
});
|
|
223
223
|
(0, import_vitest.test)("Passes error to Failure component", () => {
|
|
224
224
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -231,8 +231,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
231
231
|
mockUseQuery.mockImplementation(() => ({
|
|
232
232
|
error: { msg: "System malfunction" }
|
|
233
233
|
}));
|
|
234
|
-
(0,
|
|
235
|
-
|
|
234
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
235
|
+
import_react3.screen.getByText(/^{"msg":"System malfunction"}$/);
|
|
236
236
|
});
|
|
237
237
|
(0, import_vitest.test)("Passes error and errorCode to Failure component", () => {
|
|
238
238
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -246,8 +246,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
246
246
|
error: { msg: "System malfunction" },
|
|
247
247
|
errorCode: "SIMON_SAYS_NO"
|
|
248
248
|
}));
|
|
249
|
-
(0,
|
|
250
|
-
|
|
249
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
250
|
+
import_react3.screen.getByText(/^{"msg":"System malfunction"},code:SIMON_SAYS_NO$/);
|
|
251
251
|
});
|
|
252
252
|
(0, import_vitest.test)("Passes children to Failure", () => {
|
|
253
253
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -256,11 +256,11 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
256
256
|
Failure: ({ children }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "I'm a failure ", children)
|
|
257
257
|
});
|
|
258
258
|
mockUseQuery.mockImplementation(() => ({ error: {} }));
|
|
259
|
-
(0,
|
|
259
|
+
(0, import_react3.render)(
|
|
260
260
|
/* @__PURE__ */ import_react.default.createElement(TestCell, null, /* @__PURE__ */ import_react.default.createElement("div", null, "Child"))
|
|
261
261
|
);
|
|
262
|
-
|
|
263
|
-
|
|
262
|
+
import_react3.screen.getByText(/^I'm a failure$/);
|
|
263
|
+
import_react3.screen.getByText(/^Child$/);
|
|
264
264
|
});
|
|
265
265
|
(0, import_vitest.test)("Throws an error when there is an error if no Failure component exists", () => {
|
|
266
266
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -276,7 +276,7 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
276
276
|
console.error = import_vitest.vi.fn();
|
|
277
277
|
let error;
|
|
278
278
|
try {
|
|
279
|
-
(0,
|
|
279
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
280
280
|
} catch (e) {
|
|
281
281
|
error = e;
|
|
282
282
|
}
|
|
@@ -295,8 +295,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
295
295
|
data: {},
|
|
296
296
|
loading: false
|
|
297
297
|
}));
|
|
298
|
-
(0,
|
|
299
|
-
|
|
298
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
299
|
+
import_react3.screen.getByText(/^Got nothing$/);
|
|
300
300
|
});
|
|
301
301
|
(0, import_vitest.test)("Allows mixing isDataEmpty with custom logic", () => {
|
|
302
302
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -310,8 +310,8 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
310
310
|
data: { answer: "0" },
|
|
311
311
|
loading: false
|
|
312
312
|
}));
|
|
313
|
-
(0,
|
|
314
|
-
|
|
313
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
314
|
+
import_react3.screen.getByText(/^Got nothing$/);
|
|
315
315
|
});
|
|
316
316
|
(0, import_vitest.test)("Allows overriding variables in beforeQuery", () => {
|
|
317
317
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -331,7 +331,7 @@ const mockUseQuery = import_hooks.useQuery;
|
|
|
331
331
|
mockUseQuery.mockImplementation((_query, options) => {
|
|
332
332
|
return { data: { greeting: `Hello ${options.variables.name}!` } };
|
|
333
333
|
});
|
|
334
|
-
(0,
|
|
335
|
-
|
|
334
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
335
|
+
import_react3.screen.getByText(/^Hello Bob!$/);
|
|
336
336
|
});
|
|
337
337
|
});
|
|
@@ -22,27 +22,24 @@ 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
|
|
26
|
-
var
|
|
27
|
-
var import_react2 = require("@testing-library/react");
|
|
25
|
+
var import_react2 = require("@apollo/client/react");
|
|
26
|
+
var import_react3 = require("@testing-library/react");
|
|
28
27
|
var import_graphql = require("graphql");
|
|
29
28
|
var import_vitest = require("vitest");
|
|
30
29
|
var import_fragmentRegistry = require("../../apollo/fragmentRegistry.js");
|
|
31
30
|
var import_createCell = require("./createCell.js");
|
|
32
|
-
import_vitest.vi.mock("@apollo/client", async (importOriginal) => {
|
|
31
|
+
import_vitest.vi.mock("@apollo/client/react", async (importOriginal) => {
|
|
33
32
|
const actual = await importOriginal();
|
|
34
33
|
return {
|
|
35
34
|
...actual,
|
|
36
35
|
useApolloClient: import_vitest.vi.fn(),
|
|
37
|
-
useFragment: import_vitest.vi.fn()
|
|
36
|
+
useFragment: import_vitest.vi.fn(),
|
|
37
|
+
useQuery: import_vitest.vi.fn()
|
|
38
38
|
};
|
|
39
39
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const mockUseApolloClient = import_client.useApolloClient;
|
|
44
|
-
const mockApolloUseFragment = import_client.useFragment;
|
|
45
|
-
const mockUseQuery = import_hooks.useQuery;
|
|
40
|
+
const mockUseApolloClient = import_react2.useApolloClient;
|
|
41
|
+
const mockApolloUseFragment = import_react2.useFragment;
|
|
42
|
+
const mockUseQuery = import_react2.useQuery;
|
|
46
43
|
const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
47
44
|
fragment AuthorCell_author on User {
|
|
48
45
|
email
|
|
@@ -70,7 +67,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
70
67
|
FRAGMENT: AUTHOR_FRAGMENT,
|
|
71
68
|
Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
|
|
72
69
|
});
|
|
73
|
-
(0,
|
|
70
|
+
(0, import_react3.render)(
|
|
74
71
|
/* @__PURE__ */ import_react.default.createElement(
|
|
75
72
|
TestCell,
|
|
76
73
|
{
|
|
@@ -78,7 +75,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
78
75
|
}
|
|
79
76
|
)
|
|
80
77
|
);
|
|
81
|
-
|
|
78
|
+
import_react3.screen.getByText(/^By Story Teller$/);
|
|
82
79
|
});
|
|
83
80
|
(0, import_vitest.test)("prefers complete data from the cache", () => {
|
|
84
81
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -93,8 +90,8 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
93
90
|
complete: true
|
|
94
91
|
};
|
|
95
92
|
});
|
|
96
|
-
(0,
|
|
97
|
-
|
|
93
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { author: { __typename: "User", id: 1 } }));
|
|
94
|
+
import_react3.screen.getByText(/^By Cache Dweller$/);
|
|
98
95
|
});
|
|
99
96
|
(0, import_vitest.test)("falls back to the data prop for incomplete cache reads", () => {
|
|
100
97
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -102,7 +99,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
102
99
|
Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
|
|
103
100
|
});
|
|
104
101
|
mockApolloUseFragment.mockReturnValue({ data: void 0, complete: false });
|
|
105
|
-
(0,
|
|
102
|
+
(0, import_react3.render)(
|
|
106
103
|
/* @__PURE__ */ import_react.default.createElement(
|
|
107
104
|
TestCell,
|
|
108
105
|
{
|
|
@@ -110,7 +107,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
110
107
|
}
|
|
111
108
|
)
|
|
112
109
|
);
|
|
113
|
-
|
|
110
|
+
import_react3.screen.getByText(/^By Ref Reader$/);
|
|
114
111
|
});
|
|
115
112
|
(0, import_vitest.test)("derives the prop name from the fragment type when there is no underscore", () => {
|
|
116
113
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -121,10 +118,10 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
121
118
|
`),
|
|
122
119
|
Success: ({ user }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, user.bio)
|
|
123
120
|
});
|
|
124
|
-
(0,
|
|
121
|
+
(0, import_react3.render)(
|
|
125
122
|
/* @__PURE__ */ import_react.default.createElement(TestCell, { user: { __typename: "User", id: 1, bio: "Writes things" } })
|
|
126
123
|
);
|
|
127
|
-
|
|
124
|
+
import_react3.screen.getByText(/^Writes things$/);
|
|
128
125
|
});
|
|
129
126
|
(0, import_vitest.test)("renders Empty when isEmpty says so", () => {
|
|
130
127
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -133,10 +130,10 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
133
130
|
Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "Nothing to see"),
|
|
134
131
|
Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
|
|
135
132
|
});
|
|
136
|
-
(0,
|
|
133
|
+
(0, import_react3.render)(
|
|
137
134
|
/* @__PURE__ */ import_react.default.createElement(TestCell, { author: { __typename: "User", id: 1, fullName: "Nobody" } })
|
|
138
135
|
);
|
|
139
|
-
|
|
136
|
+
import_react3.screen.getByText(/^Nothing to see$/);
|
|
140
137
|
});
|
|
141
138
|
(0, import_vitest.test)("applies afterQuery to the fragment data", () => {
|
|
142
139
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -146,7 +143,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
146
143
|
}),
|
|
147
144
|
Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
|
|
148
145
|
});
|
|
149
|
-
(0,
|
|
146
|
+
(0, import_react3.render)(
|
|
150
147
|
/* @__PURE__ */ import_react.default.createElement(
|
|
151
148
|
TestCell,
|
|
152
149
|
{
|
|
@@ -154,7 +151,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
154
151
|
}
|
|
155
152
|
)
|
|
156
153
|
);
|
|
157
|
-
|
|
154
|
+
import_react3.screen.getByText(/^By Changed Name$/);
|
|
158
155
|
});
|
|
159
156
|
(0, import_vitest.test)("renders Empty when the data prop is null", () => {
|
|
160
157
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -162,16 +159,16 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
162
159
|
Empty: () => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "No author"),
|
|
163
160
|
Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author.fullName)
|
|
164
161
|
});
|
|
165
|
-
(0,
|
|
166
|
-
|
|
162
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { author: null }));
|
|
163
|
+
import_react3.screen.getByText(/^No author$/);
|
|
167
164
|
});
|
|
168
165
|
(0, import_vitest.test)("renders Success with null data when the data prop is null and there is no Empty", () => {
|
|
169
166
|
const TestCell = (0, import_createCell.createCell)({
|
|
170
167
|
FRAGMENT: AUTHOR_FRAGMENT,
|
|
171
168
|
Success: ({ author }) => /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, "By ", author?.fullName ?? "unknown")
|
|
172
169
|
});
|
|
173
|
-
(0,
|
|
174
|
-
|
|
170
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, { author: null }));
|
|
171
|
+
import_react3.screen.getByText(/^By unknown$/);
|
|
175
172
|
});
|
|
176
173
|
(0, import_vitest.test)("throws a helpful error naming the prop when it is not passed", () => {
|
|
177
174
|
const TestCell = (0, import_createCell.createCell)({
|
|
@@ -183,7 +180,7 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
183
180
|
});
|
|
184
181
|
try {
|
|
185
182
|
(0, import_vitest.expect)(() => {
|
|
186
|
-
(0,
|
|
183
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
187
184
|
}).toThrow(/`author` prop/);
|
|
188
185
|
} finally {
|
|
189
186
|
consoleErrorSpy.mockRestore();
|
|
@@ -199,8 +196,8 @@ const AUTHOR_FRAGMENT = (0, import_graphql.parse)(`
|
|
|
199
196
|
mockUseQuery.mockImplementation(() => {
|
|
200
197
|
return { data: { author: { fullName: "Query Result" } } };
|
|
201
198
|
});
|
|
202
|
-
(0,
|
|
203
|
-
|
|
199
|
+
(0, import_react3.render)(/* @__PURE__ */ import_react.default.createElement(TestCell, null));
|
|
200
|
+
import_react3.screen.getByText(/^By Query Result$/);
|
|
204
201
|
});
|
|
205
202
|
(0, import_vitest.test)("registers the FRAGMENT even when the Cell stays a query Cell", () => {
|
|
206
203
|
(0, import_createCell.createCell)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSuspendingCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createSuspendingCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"createSuspendingCell.d.ts","sourceRoot":"","sources":["../../../../src/components/cell/createSuspendingCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAavC,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,CA6JrB"}
|