From 399bf9201ebace2dc6fbb1cf692461d83e799d66 Mon Sep 17 00:00:00 2001 From: Itamar Kestenbaum Date: Mon, 22 Jan 2024 08:32:59 -0800 Subject: [PATCH] 6/n - Add tests for errorResponseFields Reviewed By: tyao1 Differential Revision: D51944691 fbshipit-source-id: 61b3fcfd50ac7927514a9913d53ceb8fb486cf7c --- .../RelayReader-RelayErrorHandling-test.js | 127 +++++++++++++++ .../__tests__/RelayReader-Resolver-test.js | 84 ++++++++++ ...ayErrorHandlingTestUserFragment.graphql.js | 75 +++++++++ ...RelayErrorHandlingTestUserQuery.graphql.js | 150 ++++++++++++++++++ ...derRelayErrorHandlingTest1Query.graphql.js | 109 +++++++++++++ ...derRelayErrorHandlingTest2Query.graphql.js | 109 +++++++++++++ ...derResolverTestFieldError1Query.graphql.js | 109 +++++++++++++ ...aderResolverTestFieldErrorQuery.graphql.js | 109 +++++++++++++ 8 files changed, 872 insertions(+) create mode 100644 packages/relay-runtime/store/__tests__/RelayReader-RelayErrorHandling-test.js create mode 100644 packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment.graphql.js create mode 100644 packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery.graphql.js create mode 100644 packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest1Query.graphql.js create mode 100644 packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest2Query.graphql.js create mode 100644 packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldError1Query.graphql.js create mode 100644 packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldErrorQuery.graphql.js diff --git a/packages/relay-runtime/store/__tests__/RelayReader-RelayErrorHandling-test.js b/packages/relay-runtime/store/__tests__/RelayReader-RelayErrorHandling-test.js new file mode 100644 index 0000000000000..bb70c06d5b957 --- /dev/null +++ b/packages/relay-runtime/store/__tests__/RelayReader-RelayErrorHandling-test.js @@ -0,0 +1,127 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + * @oncall relay + */ + +'use strict'; + +const {graphql} = require('../../query/GraphQLTag'); +const RelayFeatureFlags = require('../../util/RelayFeatureFlags'); +const { + createOperationDescriptor, +} = require('../RelayModernOperationDescriptor'); +const {read} = require('../RelayReader'); +const RelayRecordSource = require('../RelayRecordSource'); + +describe('RelayReader error fields', () => { + describe('when field error handling is enabled', () => { + beforeAll(() => { + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING = true; + }); + + const wasFieldErrorHandlingEnabled = + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING; + + it('adds the errors to errorResponseFields', () => { + const source = RelayRecordSource.create({ + 'client:root': { + __id: 'client:root', + __typename: '__Root', + me: {__ref: '1'}, + }, + '1': { + __id: '1', + id: '1', + __typename: 'User', + lastName: null, + __errors: { + lastName: [ + { + message: 'There was an error!', + path: ['me', 'lastName'], + }, + ], + }, + }, + }); + + const FooQuery = graphql` + query RelayReaderRelayErrorHandlingTest1Query { + me { + lastName + } + } + `; + const operation = createOperationDescriptor(FooQuery, {id: '1'}); + const {data, errorResponseFields} = read(source, operation.fragment); + expect(data).toEqual({me: {lastName: null}}); + expect(errorResponseFields).toEqual([ + { + owner: 'RelayReaderRelayErrorHandlingTest1Query', + path: 'me.lastName', + error: {message: 'There was an error!', path: ['me', 'lastName']}, + }, + ]); + }); + + afterAll(() => { + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING = + wasFieldErrorHandlingEnabled; + }); + }); + + describe('when field error handling is disabled', () => { + beforeAll(() => { + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING = false; + }); + + const wasFieldErrorHandlingEnabled = + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING; + + it('errorResponseFields is null', () => { + const source = RelayRecordSource.create({ + 'client:root': { + __id: 'client:root', + __typename: '__Root', + me: {__ref: '1'}, + }, + '1': { + __id: '1', + id: '1', + __typename: 'User', + lastName: null, + __errors: { + lastName: [ + { + message: 'There was an error!', + path: ['me', 'lastName'], + }, + ], + }, + }, + }); + + const FooQuery = graphql` + query RelayReaderRelayErrorHandlingTest2Query { + me { + lastName + } + } + `; + const operation = createOperationDescriptor(FooQuery, {id: '1'}); + const {data, errorResponseFields} = read(source, operation.fragment); + expect(data).toEqual({me: {lastName: null}}); + expect(errorResponseFields).toEqual(null); + }); + + afterAll(() => { + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING = + wasFieldErrorHandlingEnabled; + }); + }); +}); diff --git a/packages/relay-runtime/store/__tests__/RelayReader-Resolver-test.js b/packages/relay-runtime/store/__tests__/RelayReader-Resolver-test.js index a9bd4ab3d696f..b5e1b38bec21b 100644 --- a/packages/relay-runtime/store/__tests__/RelayReader-Resolver-test.js +++ b/packages/relay-runtime/store/__tests__/RelayReader-Resolver-test.js @@ -141,6 +141,90 @@ describe('Relay Resolver', () => { ); }); + describe('Relay resolver - Field Error Handling', () => { + it('propagates errors from the resolver up to the reader', () => { + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING = true; + const source = RelayRecordSource.create({ + 'client:root': { + __id: 'client:root', + __typename: '__Root', + me: {__ref: '1'}, + }, + '1': { + __id: '1', + id: '1', + __typename: 'User', + lastName: null, + __errors: { + lastName: [ + { + message: 'There was an error!', + path: ['me', 'lastName'], + }, + ], + }, + }, + }); + + const FooQuery = graphql` + query RelayReaderResolverTestFieldErrorQuery { + me { + lastName + } + } + `; + + const operation = createOperationDescriptor(FooQuery, {}); + const store = new RelayModernStore(source, {gcReleaseBufferSize: 0}); + const {errorResponseFields} = store.lookup(operation.fragment); + expect(errorResponseFields).toEqual([ + { + error: {message: 'There was an error!', path: ['me', 'lastName']}, + owner: 'RelayReaderResolverTestFieldErrorQuery', + path: 'me.lastName', + }, + ]); + }); + + it("doesn't propagate errors from the resolver up to the reader when flag is disabled", () => { + RelayFeatureFlags.ENABLE_FIELD_ERROR_HANDLING = false; + const source = RelayRecordSource.create({ + 'client:root': { + __id: 'client:root', + __typename: '__Root', + me: {__ref: '1'}, + }, + '1': { + __id: '1', + id: '1', + __typename: 'User', + lastName: null, + __errors: { + lastName: [ + { + message: 'There was an error!', + path: ['me', 'lastName'], + }, + ], + }, + }, + }); + + const FooQuery = graphql` + query RelayReaderResolverTestFieldError1Query { + me { + lastName + } + } + `; + + const operation = createOperationDescriptor(FooQuery, {}); + const store = new RelayModernStore(source, {gcReleaseBufferSize: 0}); + const {errorResponseFields} = store.lookup(operation.fragment); + expect(errorResponseFields).toEqual(null); + }); + }); + it('propagates @required errors from the resolver up to the reader', () => { const source = RelayRecordSource.create({ 'client:root': { diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment.graphql.js new file mode 100644 index 0000000000000..537ff80c9dd58 --- /dev/null +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment.graphql.js @@ -0,0 +1,75 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @oncall relay + * + * @generated SignedSource<> + * @flow + * @lightSyntaxTransform + * @nogrep + */ + +/* eslint-disable */ + +'use strict'; + +/*:: +import type { Fragment, ReaderFragment } from 'relay-runtime'; +import type { FragmentType } from "relay-runtime"; +declare export opaque type RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$fragmentType: FragmentType; +export type RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$data = {| + +alternate_name: ?string, + +id: string, + +name: ?string, + +$fragmentType: RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$fragmentType, +|}; +export type RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$key = { + +$data?: RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$data, + +$fragmentSpreads: RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$fragmentType, + ... +}; +*/ + +var node/*: ReaderFragment*/ = { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment", + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "name", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "alternate_name", + "storageKey": null + } + ], + "type": "User", + "abstractKey": null +}; + +if (__DEV__) { + (node/*: any*/).hash = "9334c3d6a2dff00bc36733406c6b046b"; +} + +module.exports = ((node/*: any*/)/*: Fragment< + RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$fragmentType, + RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$data, +>*/); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery.graphql.js new file mode 100644 index 0000000000000..6db872c33b6b9 --- /dev/null +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery.graphql.js @@ -0,0 +1,150 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @oncall relay + * + * @generated SignedSource<> + * @flow + * @lightSyntaxTransform + * @nogrep + */ + +/* eslint-disable */ + +'use strict'; + +/*:: +import type { ConcreteRequest, Query } from 'relay-runtime'; +import type { RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$fragmentType } from "./RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment.graphql"; +export type RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery$variables = {| + id: string, +|}; +export type RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery$data = {| + +node: ?{| + +$fragmentSpreads: RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment$fragmentType, + |}, +|}; +export type RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery = {| + response: RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery$data, + variables: RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery$variables, +|}; +*/ + +var node/*: ConcreteRequest*/ = (function(){ +var v0 = [ + { + "defaultValue": null, + "kind": "LocalArgument", + "name": "id" + } +], +v1 = [ + { + "kind": "Variable", + "name": "id", + "variableName": "id" + } +]; +return { + "fragment": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Fragment", + "metadata": null, + "name": "RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery", + "selections": [ + { + "alias": null, + "args": (v1/*: any*/), + "concreteType": null, + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + { + "args": null, + "kind": "FragmentSpread", + "name": "RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment" + } + ], + "storageKey": null + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": (v0/*: any*/), + "kind": "Operation", + "name": "RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery", + "selections": [ + { + "alias": null, + "args": (v1/*: any*/), + "concreteType": null, + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "__typename", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + }, + { + "kind": "InlineFragment", + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "name", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "alternate_name", + "storageKey": null + } + ], + "type": "User", + "abstractKey": null + } + ], + "storageKey": null + } + ] + }, + "params": { + "cacheID": "c4cf80a23e44ff3f595c75842d5282e7", + "id": null, + "metadata": {}, + "name": "RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery", + "operationKind": "query", + "text": "query RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery(\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment\n id\n }\n}\n\nfragment RelayModernFragmentSpecResolverRelayErrorHandlingTestUserFragment on User {\n id\n name\n alternate_name\n}\n" + } +}; +})(); + +if (__DEV__) { + (node/*: any*/).hash = "60199bb18ad2d2e05c0a529f7be6f6b2"; +} + +module.exports = ((node/*: any*/)/*: Query< + RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery$variables, + RelayModernFragmentSpecResolverRelayErrorHandlingTestUserQuery$data, +>*/); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest1Query.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest1Query.graphql.js new file mode 100644 index 0000000000000..334e99ea265f6 --- /dev/null +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest1Query.graphql.js @@ -0,0 +1,109 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @oncall relay + * + * @generated SignedSource<<8109949e4e7d1f86610c1aad68b02782>> + * @flow + * @lightSyntaxTransform + * @nogrep + */ + +/* eslint-disable */ + +'use strict'; + +/*:: +import type { ConcreteRequest, Query } from 'relay-runtime'; +export type RelayReaderRelayErrorHandlingTest1Query$variables = {||}; +export type RelayReaderRelayErrorHandlingTest1Query$data = {| + +me: ?{| + +lastName: ?string, + |}, +|}; +export type RelayReaderRelayErrorHandlingTest1Query = {| + response: RelayReaderRelayErrorHandlingTest1Query$data, + variables: RelayReaderRelayErrorHandlingTest1Query$variables, +|}; +*/ + +var node/*: ConcreteRequest*/ = (function(){ +var v0 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "lastName", + "storageKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayReaderRelayErrorHandlingTest1Query", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/) + ], + "storageKey": null + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "RelayReaderRelayErrorHandlingTest1Query", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ] + }, + "params": { + "cacheID": "e3098f4a550368c2e87bbe6b06628604", + "id": null, + "metadata": {}, + "name": "RelayReaderRelayErrorHandlingTest1Query", + "operationKind": "query", + "text": "query RelayReaderRelayErrorHandlingTest1Query {\n me {\n lastName\n id\n }\n}\n" + } +}; +})(); + +if (__DEV__) { + (node/*: any*/).hash = "7be565b5d7792f0144f4cc4e34853a6f"; +} + +module.exports = ((node/*: any*/)/*: Query< + RelayReaderRelayErrorHandlingTest1Query$variables, + RelayReaderRelayErrorHandlingTest1Query$data, +>*/); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest2Query.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest2Query.graphql.js new file mode 100644 index 0000000000000..c0f1caf9ef02c --- /dev/null +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderRelayErrorHandlingTest2Query.graphql.js @@ -0,0 +1,109 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @oncall relay + * + * @generated SignedSource<> + * @flow + * @lightSyntaxTransform + * @nogrep + */ + +/* eslint-disable */ + +'use strict'; + +/*:: +import type { ConcreteRequest, Query } from 'relay-runtime'; +export type RelayReaderRelayErrorHandlingTest2Query$variables = {||}; +export type RelayReaderRelayErrorHandlingTest2Query$data = {| + +me: ?{| + +lastName: ?string, + |}, +|}; +export type RelayReaderRelayErrorHandlingTest2Query = {| + response: RelayReaderRelayErrorHandlingTest2Query$data, + variables: RelayReaderRelayErrorHandlingTest2Query$variables, +|}; +*/ + +var node/*: ConcreteRequest*/ = (function(){ +var v0 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "lastName", + "storageKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayReaderRelayErrorHandlingTest2Query", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/) + ], + "storageKey": null + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "RelayReaderRelayErrorHandlingTest2Query", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ] + }, + "params": { + "cacheID": "6b8c010a0d91f4f7baa63cff39a7134a", + "id": null, + "metadata": {}, + "name": "RelayReaderRelayErrorHandlingTest2Query", + "operationKind": "query", + "text": "query RelayReaderRelayErrorHandlingTest2Query {\n me {\n lastName\n id\n }\n}\n" + } +}; +})(); + +if (__DEV__) { + (node/*: any*/).hash = "89a4174b333dd303677d0e197c236178"; +} + +module.exports = ((node/*: any*/)/*: Query< + RelayReaderRelayErrorHandlingTest2Query$variables, + RelayReaderRelayErrorHandlingTest2Query$data, +>*/); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldError1Query.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldError1Query.graphql.js new file mode 100644 index 0000000000000..a33ab62d54d27 --- /dev/null +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldError1Query.graphql.js @@ -0,0 +1,109 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @oncall relay + * + * @generated SignedSource<> + * @flow + * @lightSyntaxTransform + * @nogrep + */ + +/* eslint-disable */ + +'use strict'; + +/*:: +import type { ConcreteRequest, Query } from 'relay-runtime'; +export type RelayReaderResolverTestFieldError1Query$variables = {||}; +export type RelayReaderResolverTestFieldError1Query$data = {| + +me: ?{| + +lastName: ?string, + |}, +|}; +export type RelayReaderResolverTestFieldError1Query = {| + response: RelayReaderResolverTestFieldError1Query$data, + variables: RelayReaderResolverTestFieldError1Query$variables, +|}; +*/ + +var node/*: ConcreteRequest*/ = (function(){ +var v0 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "lastName", + "storageKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayReaderResolverTestFieldError1Query", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/) + ], + "storageKey": null + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "RelayReaderResolverTestFieldError1Query", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ] + }, + "params": { + "cacheID": "deb8521779c2aea0af0cb01a9adc85d5", + "id": null, + "metadata": {}, + "name": "RelayReaderResolverTestFieldError1Query", + "operationKind": "query", + "text": "query RelayReaderResolverTestFieldError1Query {\n me {\n lastName\n id\n }\n}\n" + } +}; +})(); + +if (__DEV__) { + (node/*: any*/).hash = "f5150685e9912be474b120b3d29b5b22"; +} + +module.exports = ((node/*: any*/)/*: Query< + RelayReaderResolverTestFieldError1Query$variables, + RelayReaderResolverTestFieldError1Query$data, +>*/); diff --git a/packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldErrorQuery.graphql.js b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldErrorQuery.graphql.js new file mode 100644 index 0000000000000..ebd92cbffebd4 --- /dev/null +++ b/packages/relay-runtime/store/__tests__/__generated__/RelayReaderResolverTestFieldErrorQuery.graphql.js @@ -0,0 +1,109 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @oncall relay + * + * @generated SignedSource<<2b5cbbd3caa82db632145b4bfb7266cc>> + * @flow + * @lightSyntaxTransform + * @nogrep + */ + +/* eslint-disable */ + +'use strict'; + +/*:: +import type { ConcreteRequest, Query } from 'relay-runtime'; +export type RelayReaderResolverTestFieldErrorQuery$variables = {||}; +export type RelayReaderResolverTestFieldErrorQuery$data = {| + +me: ?{| + +lastName: ?string, + |}, +|}; +export type RelayReaderResolverTestFieldErrorQuery = {| + response: RelayReaderResolverTestFieldErrorQuery$data, + variables: RelayReaderResolverTestFieldErrorQuery$variables, +|}; +*/ + +var node/*: ConcreteRequest*/ = (function(){ +var v0 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "lastName", + "storageKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "RelayReaderResolverTestFieldErrorQuery", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/) + ], + "storageKey": null + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "RelayReaderResolverTestFieldErrorQuery", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "User", + "kind": "LinkedField", + "name": "me", + "plural": false, + "selections": [ + (v0/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null + } + ], + "storageKey": null + } + ] + }, + "params": { + "cacheID": "9b12f6b94bffe358cb62ac3f2216ae87", + "id": null, + "metadata": {}, + "name": "RelayReaderResolverTestFieldErrorQuery", + "operationKind": "query", + "text": "query RelayReaderResolverTestFieldErrorQuery {\n me {\n lastName\n id\n }\n}\n" + } +}; +})(); + +if (__DEV__) { + (node/*: any*/).hash = "ae22a10c004b68bb5d7df6f516619f83"; +} + +module.exports = ((node/*: any*/)/*: Query< + RelayReaderResolverTestFieldErrorQuery$variables, + RelayReaderResolverTestFieldErrorQuery$data, +>*/);