relay-test-utils 11.0.2 → 13.0.0-rc.2

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/README.md ADDED
@@ -0,0 +1,4 @@
1
+ relay-test-utils
2
+ ---
3
+
4
+ More details: https://relay.dev/docs/guides/testing-relay-components/
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -13,16 +13,29 @@
13
13
 
14
14
  'use strict';
15
15
 
16
- const invariant = require('invariant');
16
+ import type {
17
+ GraphQLSingularResponse,
18
+ NormalizationArgument,
19
+ NormalizationField,
20
+ NormalizationLinkedField,
21
+ NormalizationOperation,
22
+ NormalizationScalarField,
23
+ NormalizationSelection,
24
+ NormalizationSplitOperation,
25
+ OperationDescriptor,
26
+ Variables,
27
+ } from 'relay-runtime';
17
28
 
29
+ const invariant = require('invariant');
18
30
  const {
19
- TYPENAME_KEY,
20
31
  RelayConcreteNode,
32
+ TYPENAME_KEY,
21
33
  getModuleComponentKey,
22
34
  getModuleOperationKey,
23
35
  } = require('relay-runtime');
24
36
 
25
37
  const {
38
+ ACTOR_CHANGE,
26
39
  CLIENT_COMPONENT,
27
40
  CLIENT_EXTENSION,
28
41
  CONDITION,
@@ -40,19 +53,6 @@ const {
40
53
  TYPE_DISCRIMINATOR,
41
54
  } = RelayConcreteNode;
42
55
 
43
- import type {
44
- NormalizationArgument,
45
- NormalizationField,
46
- NormalizationLinkedField,
47
- NormalizationOperation,
48
- NormalizationScalarField,
49
- NormalizationSelection,
50
- OperationDescriptor,
51
- GraphQLSingularResponse,
52
- NormalizationSplitOperation,
53
- Variables,
54
- } from 'relay-runtime';
55
-
56
56
  type ValueResolver = (
57
57
  typeName: ?string,
58
58
  context: MockResolverContext,
@@ -187,7 +187,6 @@ class RelayMockPayloadGenerator {
187
187
  +selectionMetadata: SelectionMetadata | null,
188
188
  |}) {
189
189
  this._variables = options.variables;
190
- // $FlowFixMe[cannot-spread-indexer]
191
190
  // $FlowFixMe[cannot-spread-inexact]
192
191
  // $FlowFixMe[incompatible-type]
193
192
  this._mockResolvers = {
@@ -459,7 +458,8 @@ class RelayMockPayloadGenerator {
459
458
  selection.fragmentName,
460
459
  );
461
460
 
462
- const splitOperation: NormalizationSplitOperation = (operation: $FlowFixMe);
461
+ const splitOperation: NormalizationSplitOperation =
462
+ (operation: $FlowFixMe);
463
463
  const {documentName} = selection;
464
464
  if (mockData == null) {
465
465
  mockData = {};
@@ -469,9 +469,8 @@ class RelayMockPayloadGenerator {
469
469
  ...mockData,
470
470
  [TYPENAME_KEY]: typeName,
471
471
  [getModuleOperationKey(documentName)]: operation.name,
472
- [getModuleComponentKey(
473
- documentName,
474
- )]: defaultValues.__module_component,
472
+ [getModuleComponentKey(documentName)]:
473
+ defaultValues.__module_component,
475
474
  ...this._traverseSelections(
476
475
  splitOperation.selections,
477
476
  typeName,
@@ -498,6 +497,8 @@ class RelayMockPayloadGenerator {
498
497
  break;
499
498
  case FLIGHT_FIELD:
500
499
  throw new Error('Flight fields are not yet supported.');
500
+ case ACTOR_CHANGE:
501
+ throw new Error('ActorChange fields are not yet supported.');
501
502
  default:
502
503
  (selection: empty);
503
504
  invariant(
@@ -752,7 +753,6 @@ class RelayMockPayloadGenerator {
752
753
  'RelayMockPayloadGenerator(): Undefined variable `%s`.',
753
754
  name,
754
755
  );
755
- // $FlowFixMe[cannot-write]
756
756
  return this._variables[name];
757
757
  }
758
758
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,32 +14,31 @@
14
14
 
15
15
  /* global jest */
16
16
 
17
- const areEqual = require('areEqual');
18
- const invariant = require('invariant');
19
-
20
- const {
21
- RecordSource,
22
- Store,
23
- QueryResponseCache,
24
- Observable,
25
- Environment,
26
- Network,
27
- createOperationDescriptor,
28
- getRequest,
29
- } = require('relay-runtime');
30
-
31
- import type {Sink} from 'relay-runtime/network/RelayObservable';
32
17
  import type {
33
18
  CacheConfig,
34
19
  ConcreteRequest,
20
+ EnvironmentConfig,
35
21
  GraphQLSingularResponse,
36
22
  GraphQLTaggedNode,
37
23
  IEnvironment,
38
24
  OperationDescriptor,
39
25
  RequestParameters,
40
26
  Variables,
41
- EnvironmentConfig,
42
27
  } from 'relay-runtime';
28
+ import type {Sink} from 'relay-runtime/network/RelayObservable';
29
+
30
+ const areEqual = require('areEqual');
31
+ const invariant = require('invariant');
32
+ const {
33
+ Environment,
34
+ Network,
35
+ Observable,
36
+ QueryResponseCache,
37
+ RecordSource,
38
+ Store,
39
+ createOperationDescriptor,
40
+ getRequest,
41
+ } = require('relay-runtime');
43
42
 
44
43
  type PendingRequest = {|
45
44
  +request: RequestParameters,
@@ -441,10 +440,14 @@ function createMockEnvironment(
441
440
 
442
441
  const createExecuteProxy = (
443
442
  env: IEnvironment,
444
- fn:
445
- | $PropertyType<IEnvironment, 'execute'>
446
- | $PropertyType<IEnvironment, 'executeWithSource'>
447
- | $PropertyType<IEnvironment, 'executeMutation'>,
443
+ fn: // $FlowFixMe[method-unbinding] added when improving typing for this parameters
444
+ | IEnvironment['execute']
445
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
446
+ | IEnvironment['executeSubscription']
447
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
448
+ | IEnvironment['executeWithSource']
449
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
450
+ | IEnvironment['executeMutation'],
448
451
  ) => {
449
452
  return (...argumentsList) => {
450
453
  const [{operation}] = argumentsList;
@@ -454,15 +457,24 @@ function createMockEnvironment(
454
457
  };
455
458
 
456
459
  // $FlowExpectedError[cannot-write]
460
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
457
461
  environment.execute = createExecuteProxy(environment, environment.execute);
458
462
  // $FlowExpectedError[cannot-write]
463
+ environment.executeSubscription = createExecuteProxy(
464
+ environment,
465
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
466
+ environment.executeSubscription,
467
+ );
468
+ // $FlowExpectedError[cannot-write]
459
469
  environment.executeWithSource = createExecuteProxy(
460
470
  environment,
471
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
461
472
  environment.executeWithSource,
462
473
  );
463
474
  // $FlowExpectedError[cannot-write]
464
475
  environment.executeMutation = createExecuteProxy(
465
476
  environment,
477
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
466
478
  environment.executeMutation,
467
479
  );
468
480
 
@@ -476,6 +488,7 @@ function createMockEnvironment(
476
488
  mockDisposableMethod(environment, 'subscribe');
477
489
  mockDisposableMethod(environment, 'retain');
478
490
  mockObservableMethod(environment, 'execute');
491
+ mockObservableMethod(environment, 'executeSubscription');
479
492
  mockObservableMethod(environment, 'executeWithSource');
480
493
  mockObservableMethod(environment, 'executeMutation');
481
494
 
@@ -519,21 +532,41 @@ function createMockEnvironment(
519
532
 
520
533
  // $FlowExpectedError[cannot-write]
521
534
  environment.mockClear = () => {
535
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
522
536
  environment.applyUpdate.mockClear();
537
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
523
538
  environment.commitPayload.mockClear();
539
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
524
540
  environment.getStore.mockClear();
541
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
525
542
  environment.lookup.mockClear();
543
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
526
544
  environment.check.mockClear();
545
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
527
546
  environment.subscribe.mockClear();
547
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
528
548
  environment.retain.mockClear();
549
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
529
550
  environment.execute.mockClear();
551
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
530
552
  environment.executeMutation.mockClear();
553
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
554
+ environment.executeSubscription.mockClear();
555
+
556
+ // $FlowExpectedError[prop-missing]
557
+ store.getSource().clear?.();
531
558
 
559
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
532
560
  store.getSource.mockClear();
561
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
533
562
  store.lookup.mockClear();
563
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
534
564
  store.notify.mockClear();
565
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
535
566
  store.publish.mockClear();
567
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
536
568
  store.retain.mockClear();
569
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
537
570
  store.subscribe.mockClear();
538
571
 
539
572
  cache.clear();
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails oncall+relay
8
+ * @format
9
+ * @flow
10
+ */
11
+
12
+ 'use strict';
13
+
14
+ const ResolverFragments = require('relay-runtime/store/ResolverFragments');
15
+
16
+ /**
17
+ * Utility function for testing Relay Resolvers. Pass the resolver function and
18
+ * the data that will be returned from `readFragment` and it will return the
19
+ * value that the resolver would derive.
20
+ *
21
+ * *Note:* Relay fragment data includes a special `$fragmentType` key which is
22
+ * impossible for non-Relay code to construct. In tests you can work around
23
+ * this by passing `null` with a Flow supression:
24
+ *
25
+ * ```
26
+ * const fragmentData = {
27
+ * // Other fields here...
28
+ * $fragmentType: (null: any)
29
+ * };
30
+ *
31
+ * const actual = testResolver(resolverFunc, fragmentData);
32
+ * expect(actual).toEqual(expectedValue)
33
+ * ```
34
+ **/
35
+ function testResolver<D, Ret>(
36
+ resolver: ({$data: D, $fragmentRefs: any, $fragmentSpreads: any}) => Ret,
37
+ // indexed_access is not yet enabled for this code base. Once it is, this can
38
+ // become: `Key['$data']`
39
+ fragmentData: D,
40
+ ): Ret {
41
+ const readFragment = ResolverFragments.readFragment;
42
+ // a test utility, so... YOLO!!
43
+ ResolverFragments.readFragment = () => fragmentData;
44
+ const result = resolver(
45
+ // This will be ignored since we mock the function it gets passed to.
46
+ // $FlowFixMe
47
+ null,
48
+ );
49
+ ResolverFragments.readFragment = readFragment;
50
+ return result;
51
+ }
52
+
53
+ module.exports = {testResolver};
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails oncall+relay
8
+ * @flow
9
+ * @format
10
+ */
11
+
12
+ 'use strict';
13
+
14
+ import type {RelayResolverTestUtilsFlowTest$key} from './__generated__/RelayResolverTestUtilsFlowTest.graphql';
15
+
16
+ const {testResolver} = require('../RelayResolverTestUtils');
17
+ const {graphql} = require('relay-runtime');
18
+ const {readFragment} = require('relay-runtime/store/ResolverFragments');
19
+
20
+ function myTestResolver(rootKey: RelayResolverTestUtilsFlowTest$key): string {
21
+ const user = readFragment(
22
+ graphql`
23
+ fragment RelayResolverTestUtilsFlowTest on User {
24
+ name
25
+ }
26
+ `,
27
+ rootKey,
28
+ );
29
+
30
+ return `Hello ${user.name ?? 'stranger'}!`;
31
+ }
32
+
33
+ testResolver(myTestResolver, {
34
+ name: 'Elizabeth',
35
+ $fragmentType: (null: any),
36
+ });
37
+
38
+ testResolver(
39
+ myTestResolver,
40
+ // $FlowExpectedError foo is an unexpected key
41
+ {
42
+ name: 'Elizabeth',
43
+ foo: 'bar',
44
+ $fragmentType: (null: any),
45
+ },
46
+ );
47
+
48
+ testResolver(myTestResolver, {
49
+ // $FlowExpectedError Object is not a string
50
+ name: {},
51
+ $fragmentType: (null: any),
52
+ });
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @generated SignedSource<<0d26a05d6bac38b34cb9d5933e995920>>
8
+ * @flow
9
+ * @lightSyntaxTransform
10
+ * @nogrep
11
+ */
12
+
13
+ /* eslint-disable */
14
+
15
+ 'use strict';
16
+
17
+ /*::
18
+ import type { Fragment, ReaderFragment } from 'relay-runtime';
19
+ import type { FragmentType } from "relay-runtime";
20
+ declare export opaque type RelayResolverTestUtilsFlowTest$fragmentType: FragmentType;
21
+ export type RelayResolverTestUtilsFlowTest$ref = RelayResolverTestUtilsFlowTest$fragmentType;
22
+ export type RelayResolverTestUtilsFlowTest$data = {|
23
+ +name: ?string,
24
+ +$fragmentType: RelayResolverTestUtilsFlowTest$fragmentType,
25
+ |};
26
+ export type RelayResolverTestUtilsFlowTest = RelayResolverTestUtilsFlowTest$data;
27
+ export type RelayResolverTestUtilsFlowTest$key = {
28
+ +$data?: RelayResolverTestUtilsFlowTest$data,
29
+ +$fragmentSpreads: RelayResolverTestUtilsFlowTest$fragmentType,
30
+ ...
31
+ };
32
+ */
33
+
34
+ var node/*: ReaderFragment*/ = {
35
+ "argumentDefinitions": [],
36
+ "kind": "Fragment",
37
+ "metadata": null,
38
+ "name": "RelayResolverTestUtilsFlowTest",
39
+ "selections": [
40
+ {
41
+ "alias": null,
42
+ "args": null,
43
+ "kind": "ScalarField",
44
+ "name": "name",
45
+ "storageKey": null
46
+ }
47
+ ],
48
+ "type": "User",
49
+ "abstractKey": null
50
+ };
51
+
52
+ if (__DEV__) {
53
+ (node/*: any*/).hash = "f3f6718b7cf618c97293b5882ccc96c0";
54
+ }
55
+
56
+ module.exports = ((node/*: any*/)/*: Fragment<
57
+ RelayResolverTestUtilsFlowTest$fragmentType,
58
+ RelayResolverTestUtilsFlowTest$data,
59
+ >*/);
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v11.0.2
2
+ * Relay v13.0.0-rc.2
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
5
5
  *
package/index.js.flow CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,7 +14,7 @@
14
14
 
15
15
  const RelayMockPayloadGenerator = require('./RelayMockPayloadGenerator');
16
16
  const RelayModernMockEnvironment = require('./RelayModernMockEnvironment');
17
-
17
+ const testResolver = require('./RelayResolverTestUtils');
18
18
  const unwrapContainer = require('./unwrapContainer');
19
19
 
20
20
  export type {MockResolvers} from './RelayMockPayloadGenerator';
@@ -27,4 +27,5 @@ module.exports = {
27
27
  MockPayloadGenerator: RelayMockPayloadGenerator,
28
28
  createMockEnvironment: RelayModernMockEnvironment.createMockEnvironment,
29
29
  unwrapContainer: unwrapContainer,
30
+ testResolver: testResolver,
30
31
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -22,12 +22,13 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
22
22
  var invariant = require('invariant');
23
23
 
24
24
  var _require = require('relay-runtime'),
25
- TYPENAME_KEY = _require.TYPENAME_KEY,
26
25
  RelayConcreteNode = _require.RelayConcreteNode,
26
+ TYPENAME_KEY = _require.TYPENAME_KEY,
27
27
  getModuleComponentKey = _require.getModuleComponentKey,
28
28
  getModuleOperationKey = _require.getModuleOperationKey;
29
29
 
30
- var CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,
30
+ var ACTOR_CHANGE = RelayConcreteNode.ACTOR_CHANGE,
31
+ CLIENT_COMPONENT = RelayConcreteNode.CLIENT_COMPONENT,
31
32
  CLIENT_EXTENSION = RelayConcreteNode.CLIENT_EXTENSION,
32
33
  CONDITION = RelayConcreteNode.CONDITION,
33
34
  CONNECTION = RelayConcreteNode.CONNECTION,
@@ -114,8 +115,7 @@ var RelayMockPayloadGenerator = /*#__PURE__*/function () {
114
115
  function RelayMockPayloadGenerator(options) {
115
116
  var _options$mockResolver, _options$selectionMet;
116
117
 
117
- this._variables = options.variables; // $FlowFixMe[cannot-spread-indexer]
118
- // $FlowFixMe[cannot-spread-inexact]
118
+ this._variables = options.variables; // $FlowFixMe[cannot-spread-inexact]
119
119
  // $FlowFixMe[incompatible-type]
120
120
 
121
121
  this._mockResolvers = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, DEFAULT_MOCK_RESOLVERS), (_options$mockResolver = options.mockResolvers) !== null && _options$mockResolver !== void 0 ? _options$mockResolver : {});
@@ -326,6 +326,9 @@ var RelayMockPayloadGenerator = /*#__PURE__*/function () {
326
326
  case FLIGHT_FIELD:
327
327
  throw new Error('Flight fields are not yet supported.');
328
328
 
329
+ case ACTOR_CHANGE:
330
+ throw new Error('ActorChange fields are not yet supported.');
331
+
329
332
  default:
330
333
  selection;
331
334
  !false ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayMockPayloadGenerator(): Unexpected AST kind `%s`.', selection.kind) : invariant(false) : void 0;
@@ -515,8 +518,7 @@ var RelayMockPayloadGenerator = /*#__PURE__*/function () {
515
518
  ;
516
519
 
517
520
  _proto._getVariableValue = function _getVariableValue(name) {
518
- !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayMockPayloadGenerator(): Undefined variable `%s`.', name) : invariant(false) : void 0; // $FlowFixMe[cannot-write]
519
-
521
+ !this._variables.hasOwnProperty(name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'RelayMockPayloadGenerator(): Undefined variable `%s`.', name) : invariant(false) : void 0;
520
522
  return this._variables[name];
521
523
  }
522
524
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -20,12 +20,12 @@ var areEqual = require("fbjs/lib/areEqual");
20
20
  var invariant = require('invariant');
21
21
 
22
22
  var _require = require('relay-runtime'),
23
- RecordSource = _require.RecordSource,
24
- Store = _require.Store,
25
- QueryResponseCache = _require.QueryResponseCache,
26
- Observable = _require.Observable,
27
23
  Environment = _require.Environment,
28
24
  Network = _require.Network,
25
+ Observable = _require.Observable,
26
+ QueryResponseCache = _require.QueryResponseCache,
27
+ RecordSource = _require.RecordSource,
28
+ Store = _require.Store,
29
29
  createOperationDescriptor = _require.createOperationDescriptor,
30
30
  getRequest = _require.getRequest;
31
31
 
@@ -336,13 +336,19 @@ function createMockEnvironment(config) {
336
336
  return fn.apply(env, argumentsList);
337
337
  };
338
338
  }; // $FlowExpectedError[cannot-write]
339
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
339
340
 
340
341
 
341
342
  environment.execute = createExecuteProxy(environment, environment.execute); // $FlowExpectedError[cannot-write]
342
343
 
343
- environment.executeWithSource = createExecuteProxy(environment, environment.executeWithSource); // $FlowExpectedError[cannot-write]
344
+ environment.executeSubscription = createExecuteProxy(environment, // $FlowFixMe[method-unbinding] added when improving typing for this parameters
345
+ environment.executeSubscription); // $FlowExpectedError[cannot-write]
346
+
347
+ environment.executeWithSource = createExecuteProxy(environment, // $FlowFixMe[method-unbinding] added when improving typing for this parameters
348
+ environment.executeWithSource); // $FlowExpectedError[cannot-write]
344
349
 
345
- environment.executeMutation = createExecuteProxy(environment, environment.executeMutation);
350
+ environment.executeMutation = createExecuteProxy(environment, // $FlowFixMe[method-unbinding] added when improving typing for this parameters
351
+ environment.executeMutation);
346
352
 
347
353
  if (((_global = global) === null || _global === void 0 ? void 0 : (_global$process = _global.process) === null || _global$process === void 0 ? void 0 : (_global$process$env = _global$process.env) === null || _global$process$env === void 0 ? void 0 : _global$process$env.NODE_ENV) === 'test') {
348
354
  // Mock all the functions with their original behavior
@@ -354,6 +360,7 @@ function createMockEnvironment(config) {
354
360
  mockDisposableMethod(environment, 'subscribe');
355
361
  mockDisposableMethod(environment, 'retain');
356
362
  mockObservableMethod(environment, 'execute');
363
+ mockObservableMethod(environment, 'executeSubscription');
357
364
  mockObservableMethod(environment, 'executeWithSource');
358
365
  mockObservableMethod(environment, 'executeMutation');
359
366
  mockInstanceMethod(store, 'getSource');
@@ -394,20 +401,41 @@ function createMockEnvironment(config) {
394
401
  environment.mock = mock; // $FlowExpectedError[cannot-write]
395
402
 
396
403
  environment.mockClear = function () {
397
- environment.applyUpdate.mockClear();
398
- environment.commitPayload.mockClear();
399
- environment.getStore.mockClear();
400
- environment.lookup.mockClear();
401
- environment.check.mockClear();
402
- environment.subscribe.mockClear();
403
- environment.retain.mockClear();
404
- environment.execute.mockClear();
405
- environment.executeMutation.mockClear();
406
- store.getSource.mockClear();
407
- store.lookup.mockClear();
408
- store.notify.mockClear();
409
- store.publish.mockClear();
410
- store.retain.mockClear();
404
+ var _store$getSource$clea, _store$getSource;
405
+
406
+ // $FlowFixMe[method-unbinding] added when improving typing for this parameters
407
+ environment.applyUpdate.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
408
+
409
+ environment.commitPayload.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
410
+
411
+ environment.getStore.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
412
+
413
+ environment.lookup.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
414
+
415
+ environment.check.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
416
+
417
+ environment.subscribe.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
418
+
419
+ environment.retain.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
420
+
421
+ environment.execute.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
422
+
423
+ environment.executeMutation.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
424
+
425
+ environment.executeSubscription.mockClear(); // $FlowExpectedError[prop-missing]
426
+
427
+ (_store$getSource$clea = (_store$getSource = store.getSource()).clear) === null || _store$getSource$clea === void 0 ? void 0 : _store$getSource$clea.call(_store$getSource); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
428
+
429
+ store.getSource.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
430
+
431
+ store.lookup.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
432
+
433
+ store.notify.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
434
+
435
+ store.publish.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
436
+
437
+ store.retain.mockClear(); // $FlowFixMe[method-unbinding] added when improving typing for this parameters
438
+
411
439
  store.subscribe.mockClear();
412
440
  cache.clear();
413
441
  pendingOperations = [];
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @emails oncall+relay
8
+ * @format
9
+ *
10
+ */
11
+ 'use strict';
12
+
13
+ var ResolverFragments = require('relay-runtime/store/ResolverFragments');
14
+ /**
15
+ * Utility function for testing Relay Resolvers. Pass the resolver function and
16
+ * the data that will be returned from `readFragment` and it will return the
17
+ * value that the resolver would derive.
18
+ *
19
+ * *Note:* Relay fragment data includes a special `$fragmentType` key which is
20
+ * impossible for non-Relay code to construct. In tests you can work around
21
+ * this by passing `null` with a Flow supression:
22
+ *
23
+ * ```
24
+ * const fragmentData = {
25
+ * // Other fields here...
26
+ * $fragmentType: (null: any)
27
+ * };
28
+ *
29
+ * const actual = testResolver(resolverFunc, fragmentData);
30
+ * expect(actual).toEqual(expectedValue)
31
+ * ```
32
+ **/
33
+
34
+
35
+ function testResolver(resolver, // indexed_access is not yet enabled for this code base. Once it is, this can
36
+ // become: `Key['$data']`
37
+ fragmentData) {
38
+ var readFragment = ResolverFragments.readFragment; // a test utility, so... YOLO!!
39
+
40
+ ResolverFragments.readFragment = function () {
41
+ return fragmentData;
42
+ };
43
+
44
+ var result = resolver( // This will be ignored since we mock the function it gets passed to.
45
+ // $FlowFixMe
46
+ null);
47
+ ResolverFragments.readFragment = readFragment;
48
+ return result;
49
+ }
50
+
51
+ module.exports = {
52
+ testResolver: testResolver
53
+ };
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -14,6 +14,8 @@ var RelayMockPayloadGenerator = require('./RelayMockPayloadGenerator');
14
14
 
15
15
  var RelayModernMockEnvironment = require('./RelayModernMockEnvironment');
16
16
 
17
+ var testResolver = require('./RelayResolverTestUtils');
18
+
17
19
  var unwrapContainer = require('./unwrapContainer');
18
20
 
19
21
  /**
@@ -23,5 +25,6 @@ module.exports = {
23
25
  MockEnvironment: RelayModernMockEnvironment,
24
26
  MockPayloadGenerator: RelayMockPayloadGenerator,
25
27
  createMockEnvironment: RelayModernMockEnvironment.createMockEnvironment,
26
- unwrapContainer: unwrapContainer
28
+ unwrapContainer: unwrapContainer,
29
+ testResolver: testResolver
27
30
  };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -9,10 +9,11 @@
9
9
  'use strict';
10
10
 
11
11
  var invariant = require('invariant');
12
-
13
12
  /**
14
13
  * Returns original component class wrapped by e.g. createFragmentContainer
15
14
  */
15
+
16
+
16
17
  function unwrapContainer(ComponentClass) {
17
18
  // $FlowExpectedError
18
19
  var unwrapped = ComponentClass.__ComponentClass;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "relay-test-utils",
3
3
  "description": "Utilities for testing Relay applications.",
4
- "version": "11.0.2",
4
+ "version": "13.0.0-rc.2",
5
5
  "keywords": [
6
6
  "graphql",
7
7
  "relay"
@@ -12,12 +12,9 @@
12
12
  "repository": "facebook/relay",
13
13
  "dependencies": {
14
14
  "@babel/runtime": "^7.0.0",
15
- "fbjs": "^3.0.0",
15
+ "fbjs": "^3.0.2",
16
16
  "invariant": "^2.2.4",
17
- "relay-runtime": "11.0.2"
18
- },
19
- "peerDependencies": {
20
- "graphql": "^15.0.0"
17
+ "relay-runtime": "13.0.0-rc.2"
21
18
  },
22
19
  "directories": {
23
20
  "": "./"
@@ -1,4 +1,4 @@
1
1
  /**
2
- * Relay v11.0.2
2
+ * Relay v13.0.0-rc.2
3
3
  */
4
- module.exports=function(e){var n={};function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var a in e)t.d(r,a,function(n){return e[n]}.bind(null,a));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=4)}([function(e,n){e.exports=require("invariant")},function(e,n){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,n){e.exports=require("@babel/runtime/helpers/objectSpread2")},function(e,n){e.exports=require("relay-runtime")},function(e,n,t){"use strict";var r=t(5),a=t(8),o=t(10);e.exports={MockEnvironment:a,MockPayloadGenerator:r,createMockEnvironment:a.createMockEnvironment,unwrapContainer:o}},function(e,n,t){"use strict";var r=t(1),a=r(t(6)),o=r(t(2)),l=r(t(7)),i=t(0),u=t(3),c=u.TYPENAME_KEY,s=u.RelayConcreteNode,f=u.getModuleComponentKey,p=u.getModuleOperationKey,d=s.CLIENT_COMPONENT,v=s.CLIENT_EXTENSION,m=s.CONDITION,y=s.CONNECTION,b=s.DEFER,k=s.FLIGHT_FIELD,h=s.FRAGMENT_SPREAD,g=s.INLINE_FRAGMENT,_=s.LINKED_FIELD,E=s.LINKED_HANDLE,A=s.MODULE_IMPORT,M=s.SCALAR_FIELD,S=s.SCALAR_HANDLE,C=s.STREAM,O=s.TYPE_DISCRIMINATOR;var x={ID:function(e,n){return"<".concat(null!=e.parentType&&e.parentType!==j?e.parentType+"-":"","mock-id-").concat(n(),">")},Boolean:function(){return!1},Int:function(){return 42},Float:function(){return 4.2}},j="__MockObject";function R(e,n,t,r){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=arguments.length>5?arguments[5]:void 0,l=function(a){var o,l,i,u=null!=t&&null!=n?n[t]:null;(null!=u&&(o=u(r,e)),void 0===o)&&(o=null!=a?a:"ID"===t?x.ID(r,e):'<mock-value-for-field-"'.concat(null!==(l=null!==(i=r.alias)&&void 0!==i?i:r.name)&&void 0!==l?l:"undefined",'">'));return o};return!0===a?N(Array.isArray(o)?o:Array(1).fill(),l):l(o)}function N(e,n){return e.map((function(e){return n(e)}))}var T=function(){function e(e){var n,t,r,a,l;this._variables=e.variables,this._mockResolvers=(0,o.default)((0,o.default)({},x),null!==(n=e.mockResolvers)&&void 0!==n?n:{}),this._selectionMetadata=null!==(t=e.selectionMetadata)&&void 0!==t?t:{},this._resolveValue=(r=this._mockResolvers,a=0,l=function(){return++a},function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return R.apply(void 0,[l,r].concat(n))})}var n=e.prototype;return n.generate=function(e,n){var t=this._getDefaultValuesForObject(n,null,null,[],{});return this._traverse({selections:e,typeName:n,isAbstractType:!1,name:null,alias:null,args:null},[],null,t)},n._traverse=function(e,n,t,r){var a=e.selections,o=e.typeName,l=e.isAbstractType;return this._traverseSelections(a,o,l,n,t,r)},n._traverseSelections=function(e,n,t,r,l,u){var s=this,x=null!=l?l:{};return e.forEach((function(e){switch(e.kind){case M:x=s._mockScalar(e,n,r,x,u);break;case y:x=s._traverseSelections([e.edges,e.pageInfo],n,t,r,l,u);break;case _:x=s._mockLink(e,r,x,u);break;case m:s._getVariableValue(e.condition)===e.passingValue&&(x=s._traverseSelections(e.selections,n,t,r,x,u));break;case b:case C:x=s._traverseSelections(e.selections,n,t,r,x,u);break;case d:case h:x=s._traverseSelections(e.fragment.selections,n,t,r,x,u);break;case g:var R,N=e.abstractKey;if(null!=N){null!=x&&(x[N]=!0),x=s._traverseSelections(e.selections,n,t,r,x,u);break}if(null!=x&&(null==x[c]||x[c]===j))x[c]=null!==(R=null==u?void 0:u[c])&&void 0!==R?R:e.type;if(!0===t&&null!=x&&x[c]===n&&(x[c]=e.type),null!=x&&x[c]===e.type){var T=s._getDefaultValuesForObject(e.type,r[r.length-1],null,r),q=n!==e.type?s._getDefaultValuesForObject(n,r[r.length-1],null,r):T,V=T;if(void 0===V&&(V=q),void 0===V&&(V=u),null===V){x=null;break}null!=(x=s._traverseSelections(e.selections,e.type,t,r,x,V))[c]&&(x[c]=e.type),null!=x.id&&null!=T&&null!=T.id&&(x.id=T.id)}break;case A:if(null!=u){var D;if(u.__typename!==n)break;var w=u.__module_operation;"object"==typeof w&&null!==w&&"SplitOperation"===w.kind&&Array.isArray(w.selections)&&"string"==typeof w.name||i(!1,'RelayMockPayloadGenerator(): Unexpected default value for a field `__module_operation` in the mock resolver for @module dependency. Provided value is "%s" and we\'re expecting an object of a type `NormalizationSplitOperation`. Please adjust mock resolver for the type "%s". Typically it should require a file "%s$normalization.graphql".',JSON.stringify(w),n,e.fragmentName);var I=w,P=e.documentName;null==x&&(x={}),x=(0,o.default)((0,o.default)({},x),{},(D={},(0,a.default)(D,c,n),(0,a.default)(D,p(P),w.name),(0,a.default)(D,f(P),u.__module_component),D),s._traverseSelections(I.selections,n,!1,r,null,null))}break;case v:break;case O:var F=e.abstractKey;null!=x&&(x[F]=!0);break;case S:case E:break;case k:throw new Error("Flight fields are not yet supported.");default:i(!1,"RelayMockPayloadGenerator(): Unexpected AST kind `%s`.",e.kind)}})),x},n._getCorrectDefaultEnum=function(e,n,t,r){if(void 0===n)return n;if(null===n)return n;var a=Array.isArray(n)?n.map((function(e){return String(e).toUpperCase()})):[String(n).toUpperCase()],o=e.map((function(e){return e.toUpperCase()}));a.filter((function(e){return o.includes(e)})).length!==a.length&&i(!1,'RelayMockPayloadGenerator: Invalid value "%s" provided for enum field "%s" via MockResolver.Expected one of the following values: %s.',n,"".concat(t.join("."),".").concat(r),e.map((function(e){return'"'.concat(e,'"')})).join(", "));var l=a.map((function(n){var t=o.indexOf(String(n).toUpperCase());return e[t]}));return Array.isArray(n)?l:l[0]},n._mockScalar=function(e,n,t,r,a){var o,i,u=null!=r?r:{},s=null!==(o=e.alias)&&void 0!==o?o:e.name;if(u.hasOwnProperty(s)&&e.name!==c)return u;e.name===c&&(i=null!=n?n:j);var f=[].concat((0,l.default)(t),[s]),p=this._getScalarFieldTypeDetails(e,n,f),d=p.type,v=p.plural,m=p.enumValues;if(null!=a&&a.hasOwnProperty(s)&&(i=a[s],null!=m&&(i=this._getCorrectDefaultEnum(m,i,t,s)),void 0!==i&&v&&!Array.isArray(i)&&(i=[i])),void 0===i){var y=null!=m?m[0]:void 0;i=this._resolveValue(d,{parentType:n,name:e.name,alias:e.alias,path:f,args:this._getFieldArgs(e)},v,y)}return u[s]=i,u},n._mockLink=function(e,n,t,r){var a,o,i,u,s=this,f=null!==(a=e.alias)&&void 0!==a?a:e.name,p=null!=t?t:{},d=this._getFieldArgs(e),v=[].concat((0,l.default)(n),[f]),m=null!==(o=this._selectionMetadata[v.join(".")])&&void 0!==o?o:{type:j};if(null!=r&&"object"==typeof r[f]&&(u=r[f]),null===u)return p[f]=null,p;var y=null!==(i=e.concreteType)&&void 0!==i?i:null!=u&&"string"==typeof u[c]?u[c]:m.type,b=null===e.concreteType&&y===m.type,k=function(t){var r,a,o=null!==(r=s._getDefaultValuesForObject(null!==(a=e.concreteType)&&void 0!==a?a:m.type,e.name,e.alias,v,d))&&void 0!==r?r:t;return null===o?null:s._traverse({selections:e.selections,typeName:y,isAbstractType:b,name:e.name,alias:e.alias,args:d},[].concat((0,l.default)(n),[f]),"object"==typeof p[f]?p[f]:null,o)};return p[f]="LinkedField"===e.kind&&e.plural?N(Array.isArray(u)?u:Array(1).fill(),k):k(u),p},n._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||i(!1,"RelayMockPayloadGenerator(): Undefined variable `%s`.",e),this._variables[e]},n._getDefaultValuesForObject=function(e,n,t,r,a){var o;if(null!=e&&null!=this._mockResolvers[e]&&(o=this._resolveValue(e,{parentType:null,name:n,alias:t,args:a,path:r},!1)),"object"==typeof o)return o},n._getFieldArgs=function(e){var n=this,t={};return null!=e.args&&e.args.forEach((function(e){t[e.name]=n._getArgValue(e)})),t},n._getArgValue=function(e){var n=this;switch(e.kind){case"Literal":return e.value;case"Variable":return this._getVariableValue(e.variableName);case"ObjectValue":var t={};return e.fields.forEach((function(e){t[e.name]=n._getArgValue(e)})),t;case"ListValue":var r=[];return e.items.forEach((function(e){r.push(null!=e?n._getArgValue(e):null)})),r}},n._getScalarFieldTypeDetails=function(e,n,t){var r;return null!==(r=this._selectionMetadata[t.join(".")])&&void 0!==r?r:{type:"id"===e.name?"ID":"String",plural:!1,enumValues:null,nullable:!1}},e}();e.exports={generate:function(e,n){return{data:function(e,n,t,r){var a,o=new T({variables:n,mockResolvers:t,selectionMetadata:r});return a=e.name.endsWith("Mutation")?"Mutation":e.name.endsWith("Subscription")?"Subscription":"Query",o.generate(e.selections,a)}(e.request.node.operation,e.request.variables,null!=n?n:null,function(e){var n,t=null===(n=e.request.node.params.metadata)||void 0===n?void 0:n.relayTestingSelectionTypeInfo;if(null!=t&&!Array.isArray(t)&&"object"==typeof t){var r={};return Object.keys(t).forEach((function(e){var n=t[e];null==n||Array.isArray(n)||"object"!=typeof n||"string"!=typeof n.type||"boolean"!=typeof n.plural||"boolean"!=typeof n.nullable||null!==n.enumValues&&!Array.isArray(n.enumValues)||(r[e]={type:n.type,plural:n.plural,nullable:n.nullable,enumValues:Array.isArray(n.enumValues)?n.enumValues.map(String):null})})),r}return null}(e))}}}},function(e,n){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,n){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,n,t){"use strict";var r=t(1)(t(2)),a=t(9),o=t(0),l=t(3),i=l.RecordSource,u=l.Store,c=l.QueryResponseCache,s=l.Observable,f=l.Environment,p=l.Network,d=l.createOperationDescriptor,v=l.getRequest;function m(e,n){e[n]=jest.fn(e[n].bind(e))}function y(e,n){var t=e[n].bind(e);e[n]=jest.fn((function(){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];var l=t.apply(void 0,a),i=jest.fn((function(){return l.dispose()}));return e[n].mock.dispose=i,{dispose:i}}));var r=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){r(),e[n].mock.dispose=null}}function b(e,n){var t=e[n].bind(e),r=[];e[n]=jest.fn((function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return t.apply(void 0,n).do({start:function(e){r.push(e)}})})),e[n].mock.subscriptions=r;var a=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){a(),e[n].mock.subscriptions=[]}}e.exports={createMockEnvironment:function(e){var n,t,l,k,h=null!==(n=null==e?void 0:e.store)&&void 0!==n?n:new u(new i),g=new c({size:10,ttl:3e5}),_=[],E=[],A=[],M=function(e,n,t){var r=e.id,o=e.text,l=null!=r?r:o,i=null;if(null!=(null==t?void 0:t.force)&&!1!==(null==t?void 0:t.force)||null==l||(i=g.get(l,n)),null!==i)return s.from(i);var u=E.find((function(t){return t.request.node.params===e&&a(t.request.variables,n)}));if(null!=u&&A.length>0){var c=A[0],f=c(u);if(null!=f)return A=A.filter((function(e){return e!==c})),E=E.filter((function(e){return e!==u})),f instanceof Error?s.create((function(e){e.error(f)})):s.from(f)}return s.create((function(r){var o={request:e,variables:n,cacheConfig:t,sink:r};return _=_.concat([o]),function(){_=_.filter((function(e){return!a(e,o)})),E=E.filter((function(e){return e!==u}))}}))};function S(e){if("Request"===e.kind)return e;var n=e;return E.includes(n)||o(!1,'RelayModernMockEnvironment: Operation "%s" was not found in the list of pending operations',n.request.node.operation.name),n.request.node}function C(e){var n,t;n="Request"===e.kind?e:(t=e).request.node;var r=_.filter((function(e){return!!a(e.request,n.params)&&(!t||a(t.request.variables,e.variables))}));return r.length||o(!1,"MockEnvironment: Cannot respond to request, it has not been requested yet."),r.forEach((function(e){e.sink||o(!1,"MockEnvironment: Cannot respond to `%s`, it has not been requested yet.",n.params.name)})),r}function O(e){return"object"==typeof e&&null!==e&&e.hasOwnProperty("data")||o(!1,"MockEnvironment(): Expected payload to be an object with a `data` key."),e}var x=function(e,n){var t="string"==typeof n?new Error(n):n;C(e).forEach((function(e){var n=e.sink;null===n&&o(!1,"Sink should be defined."),n.error(t)}))},j=function(e,n){C(e).forEach((function(e){var t=e.sink;null===t&&o(!1,"Sink should be defined."),t.next(O(n)),t.complete()}))},R=function(){var e=E[E.length-1];return null==e&&o(!1,"RelayModernMockEnvironment: There are no pending operations in the list"),e},N=new f((0,r.default)({configName:"RelayModernMockEnvironment",network:p.create(M,M),store:h},e)),T=function(e,n){return function(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];var o=r[0].operation;return E=E.concat([o]),n.apply(e,r)}};N.execute=T(N,N.execute),N.executeWithSource=T(N,N.executeWithSource),N.executeMutation=T(N,N.executeMutation),"test"===(null===(t=global)||void 0===t||null===(l=t.process)||void 0===l||null===(k=l.env)||void 0===k?void 0:k.NODE_ENV)&&(y(N,"applyUpdate"),m(N,"commitPayload"),m(N,"getStore"),m(N,"lookup"),m(N,"check"),y(N,"subscribe"),y(N,"retain"),b(N,"execute"),b(N,"executeWithSource"),b(N,"executeMutation"),m(h,"getSource"),m(h,"lookup"),m(h,"notify"),m(h,"publish"),y(h,"retain"),y(h,"subscribe"));var q={cachePayload:function(e,n,t){var r=S(e).params,a=r.id,l=r.text,i=null!=a?a:l;null==i&&o(!1,"CacheID should not be null"),g.set(i,n,t)},clearCache:function(){g.clear()},isLoading:function(e,n,t){return _.some((function(r){return a(r.request,S(e).params)&&a(r.variables,n)&&a(r.cacheConfig,null!=t?t:{})}))},reject:x,resolve:j,nextValue:function(e,n){C(e).forEach((function(e){var t=e.sink;null===t&&o(!1,"Sink should be defined."),t.next(O(n))}))},complete:function(e){C(e).forEach((function(e){var n=e.sink;null===n&&o(!1,"Sink should be defined."),n.complete()}))},getMostRecentOperation:R,resolveMostRecentOperation:function(e){var n=R(),t="function"==typeof e?e(n):e;return j(n,t)},rejectMostRecentOperation:function(e){var n=R(),t="function"==typeof e?e(n):e;return x(n,t)},findOperation:function(e){var n=E.find(e);return null==n&&o(!1,"RelayModernMockEnvironment: Operation was not found in the list of pending operations"),n},queuePendingOperation:function(e,n){var t=d(v(e),n);E=E.concat([t])},getAllOperations:function(){return E},queueOperationResolver:function(e){A=A.concat([e])}};return N.mock=q,N.mockClear=function(){N.applyUpdate.mockClear(),N.commitPayload.mockClear(),N.getStore.mockClear(),N.lookup.mockClear(),N.check.mockClear(),N.subscribe.mockClear(),N.retain.mockClear(),N.execute.mockClear(),N.executeMutation.mockClear(),h.getSource.mockClear(),h.lookup.mockClear(),h.notify.mockClear(),h.publish.mockClear(),h.retain.mockClear(),h.subscribe.mockClear(),g.clear(),E=[],_=[]},N}}},function(e,n){e.exports=require("fbjs/lib/areEqual")},function(e,n,t){"use strict";var r=t(0);e.exports=function(e){var n=e.__ComponentClass;return null==n&&r(!1,"Could not find component for %s, is it a Relay container?",e.displayName||e.name),n}}]);
4
+ module.exports=function(e){var n={};function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var a in e)t.d(r,a,function(n){return e[n]}.bind(null,a));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="",t(t.s=4)}([function(e,n){e.exports=require("invariant")},function(e,n){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,n){e.exports=require("@babel/runtime/helpers/objectSpread2")},function(e,n){e.exports=require("relay-runtime")},function(e,n,t){"use strict";var r=t(5),a=t(8),o=t(10),l=t(12);e.exports={MockEnvironment:a,MockPayloadGenerator:r,createMockEnvironment:a.createMockEnvironment,unwrapContainer:l,testResolver:o}},function(e,n,t){"use strict";var r=t(1),a=r(t(6)),o=r(t(2)),l=r(t(7)),i=t(0),u=t(3),c=u.RelayConcreteNode,s=u.TYPENAME_KEY,f=u.getModuleComponentKey,p=u.getModuleOperationKey,d=c.ACTOR_CHANGE,v=c.CLIENT_COMPONENT,m=c.CLIENT_EXTENSION,y=c.CONDITION,b=c.CONNECTION,k=c.DEFER,g=c.FLIGHT_FIELD,h=c.FRAGMENT_SPREAD,_=c.INLINE_FRAGMENT,E=c.LINKED_FIELD,S=c.LINKED_HANDLE,A=c.MODULE_IMPORT,C=c.SCALAR_FIELD,M=c.SCALAR_HANDLE,O=c.STREAM,x=c.TYPE_DISCRIMINATOR;var R={ID:function(e,n){return"<".concat(null!=e.parentType&&e.parentType!==j?e.parentType+"-":"","mock-id-").concat(n(),">")},Boolean:function(){return!1},Int:function(){return 42},Float:function(){return 4.2}},j="__MockObject";function N(e,n,t,r){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],o=arguments.length>5?arguments[5]:void 0,l=function(a){var o,l,i,u=null!=t&&null!=n?n[t]:null;(null!=u&&(o=u(r,e)),void 0===o)&&(o=null!=a?a:"ID"===t?R.ID(r,e):'<mock-value-for-field-"'.concat(null!==(l=null!==(i=r.alias)&&void 0!==i?i:r.name)&&void 0!==l?l:"undefined",'">'));return o};return!0===a?T(Array.isArray(o)?o:Array(1).fill(),l):l(o)}function T(e,n){return e.map((function(e){return n(e)}))}var q=function(){function e(e){var n,t,r,a,l;this._variables=e.variables,this._mockResolvers=(0,o.default)((0,o.default)({},R),null!==(n=e.mockResolvers)&&void 0!==n?n:{}),this._selectionMetadata=null!==(t=e.selectionMetadata)&&void 0!==t?t:{},this._resolveValue=(r=this._mockResolvers,a=0,l=function(){return++a},function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return N.apply(void 0,[l,r].concat(n))})}var n=e.prototype;return n.generate=function(e,n){var t=this._getDefaultValuesForObject(n,null,null,[],{});return this._traverse({selections:e,typeName:n,isAbstractType:!1,name:null,alias:null,args:null},[],null,t)},n._traverse=function(e,n,t,r){var a=e.selections,o=e.typeName,l=e.isAbstractType;return this._traverseSelections(a,o,l,n,t,r)},n._traverseSelections=function(e,n,t,r,l,u){var c=this,R=null!=l?l:{};return e.forEach((function(e){switch(e.kind){case C:R=c._mockScalar(e,n,r,R,u);break;case b:R=c._traverseSelections([e.edges,e.pageInfo],n,t,r,l,u);break;case E:R=c._mockLink(e,r,R,u);break;case y:c._getVariableValue(e.condition)===e.passingValue&&(R=c._traverseSelections(e.selections,n,t,r,R,u));break;case k:case O:R=c._traverseSelections(e.selections,n,t,r,R,u);break;case v:case h:R=c._traverseSelections(e.fragment.selections,n,t,r,R,u);break;case _:var N,T=e.abstractKey;if(null!=T){null!=R&&(R[T]=!0),R=c._traverseSelections(e.selections,n,t,r,R,u);break}if(null!=R&&(null==R[s]||R[s]===j))R[s]=null!==(N=null==u?void 0:u[s])&&void 0!==N?N:e.type;if(!0===t&&null!=R&&R[s]===n&&(R[s]=e.type),null!=R&&R[s]===e.type){var q=c._getDefaultValuesForObject(e.type,r[r.length-1],null,r),V=n!==e.type?c._getDefaultValuesForObject(n,r[r.length-1],null,r):q,w=q;if(void 0===w&&(w=V),void 0===w&&(w=u),null===w){R=null;break}null!=(R=c._traverseSelections(e.selections,e.type,t,r,R,w))[s]&&(R[s]=e.type),null!=R.id&&null!=q&&null!=q.id&&(R.id=q.id)}break;case A:if(null!=u){var D;if(u.__typename!==n)break;var I=u.__module_operation;"object"==typeof I&&null!==I&&"SplitOperation"===I.kind&&Array.isArray(I.selections)&&"string"==typeof I.name||i(!1,'RelayMockPayloadGenerator(): Unexpected default value for a field `__module_operation` in the mock resolver for @module dependency. Provided value is "%s" and we\'re expecting an object of a type `NormalizationSplitOperation`. Please adjust mock resolver for the type "%s". Typically it should require a file "%s$normalization.graphql".',JSON.stringify(I),n,e.fragmentName);var P=I,F=e.documentName;null==R&&(R={}),R=(0,o.default)((0,o.default)({},R),{},(D={},(0,a.default)(D,s,n),(0,a.default)(D,p(F),I.name),(0,a.default)(D,f(F),u.__module_component),D),c._traverseSelections(P.selections,n,!1,r,null,null))}break;case m:break;case x:var L=e.abstractKey;null!=R&&(R[L]=!0);break;case M:case S:break;case g:throw new Error("Flight fields are not yet supported.");case d:throw new Error("ActorChange fields are not yet supported.");default:i(!1,"RelayMockPayloadGenerator(): Unexpected AST kind `%s`.",e.kind)}})),R},n._getCorrectDefaultEnum=function(e,n,t,r){if(void 0===n)return n;if(null===n)return n;var a=Array.isArray(n)?n.map((function(e){return String(e).toUpperCase()})):[String(n).toUpperCase()],o=e.map((function(e){return e.toUpperCase()}));a.filter((function(e){return o.includes(e)})).length!==a.length&&i(!1,'RelayMockPayloadGenerator: Invalid value "%s" provided for enum field "%s" via MockResolver.Expected one of the following values: %s.',n,"".concat(t.join("."),".").concat(r),e.map((function(e){return'"'.concat(e,'"')})).join(", "));var l=a.map((function(n){var t=o.indexOf(String(n).toUpperCase());return e[t]}));return Array.isArray(n)?l:l[0]},n._mockScalar=function(e,n,t,r,a){var o,i,u=null!=r?r:{},c=null!==(o=e.alias)&&void 0!==o?o:e.name;if(u.hasOwnProperty(c)&&e.name!==s)return u;e.name===s&&(i=null!=n?n:j);var f=[].concat((0,l.default)(t),[c]),p=this._getScalarFieldTypeDetails(e,n,f),d=p.type,v=p.plural,m=p.enumValues;if(null!=a&&a.hasOwnProperty(c)&&(i=a[c],null!=m&&(i=this._getCorrectDefaultEnum(m,i,t,c)),void 0!==i&&v&&!Array.isArray(i)&&(i=[i])),void 0===i){var y=null!=m?m[0]:void 0;i=this._resolveValue(d,{parentType:n,name:e.name,alias:e.alias,path:f,args:this._getFieldArgs(e)},v,y)}return u[c]=i,u},n._mockLink=function(e,n,t,r){var a,o,i,u,c=this,f=null!==(a=e.alias)&&void 0!==a?a:e.name,p=null!=t?t:{},d=this._getFieldArgs(e),v=[].concat((0,l.default)(n),[f]),m=null!==(o=this._selectionMetadata[v.join(".")])&&void 0!==o?o:{type:j};if(null!=r&&"object"==typeof r[f]&&(u=r[f]),null===u)return p[f]=null,p;var y=null!==(i=e.concreteType)&&void 0!==i?i:null!=u&&"string"==typeof u[s]?u[s]:m.type,b=null===e.concreteType&&y===m.type,k=function(t){var r,a,o=null!==(r=c._getDefaultValuesForObject(null!==(a=e.concreteType)&&void 0!==a?a:m.type,e.name,e.alias,v,d))&&void 0!==r?r:t;return null===o?null:c._traverse({selections:e.selections,typeName:y,isAbstractType:b,name:e.name,alias:e.alias,args:d},[].concat((0,l.default)(n),[f]),"object"==typeof p[f]?p[f]:null,o)};return p[f]="LinkedField"===e.kind&&e.plural?T(Array.isArray(u)?u:Array(1).fill(),k):k(u),p},n._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||i(!1,"RelayMockPayloadGenerator(): Undefined variable `%s`.",e),this._variables[e]},n._getDefaultValuesForObject=function(e,n,t,r,a){var o;if(null!=e&&null!=this._mockResolvers[e]&&(o=this._resolveValue(e,{parentType:null,name:n,alias:t,args:a,path:r},!1)),"object"==typeof o)return o},n._getFieldArgs=function(e){var n=this,t={};return null!=e.args&&e.args.forEach((function(e){t[e.name]=n._getArgValue(e)})),t},n._getArgValue=function(e){var n=this;switch(e.kind){case"Literal":return e.value;case"Variable":return this._getVariableValue(e.variableName);case"ObjectValue":var t={};return e.fields.forEach((function(e){t[e.name]=n._getArgValue(e)})),t;case"ListValue":var r=[];return e.items.forEach((function(e){r.push(null!=e?n._getArgValue(e):null)})),r}},n._getScalarFieldTypeDetails=function(e,n,t){var r;return null!==(r=this._selectionMetadata[t.join(".")])&&void 0!==r?r:{type:"id"===e.name?"ID":"String",plural:!1,enumValues:null,nullable:!1}},e}();e.exports={generate:function(e,n){return{data:function(e,n,t,r){var a,o=new q({variables:n,mockResolvers:t,selectionMetadata:r});return a=e.name.endsWith("Mutation")?"Mutation":e.name.endsWith("Subscription")?"Subscription":"Query",o.generate(e.selections,a)}(e.request.node.operation,e.request.variables,null!=n?n:null,function(e){var n,t=null===(n=e.request.node.params.metadata)||void 0===n?void 0:n.relayTestingSelectionTypeInfo;if(null!=t&&!Array.isArray(t)&&"object"==typeof t){var r={};return Object.keys(t).forEach((function(e){var n=t[e];null==n||Array.isArray(n)||"object"!=typeof n||"string"!=typeof n.type||"boolean"!=typeof n.plural||"boolean"!=typeof n.nullable||null!==n.enumValues&&!Array.isArray(n.enumValues)||(r[e]={type:n.type,plural:n.plural,nullable:n.nullable,enumValues:Array.isArray(n.enumValues)?n.enumValues.map(String):null})})),r}return null}(e))}}}},function(e,n){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,n){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,n,t){"use strict";var r=t(1)(t(2)),a=t(9),o=t(0),l=t(3),i=l.Environment,u=l.Network,c=l.Observable,s=l.QueryResponseCache,f=l.RecordSource,p=l.Store,d=l.createOperationDescriptor,v=l.getRequest;function m(e,n){e[n]=jest.fn(e[n].bind(e))}function y(e,n){var t=e[n].bind(e);e[n]=jest.fn((function(){for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];var l=t.apply(void 0,a),i=jest.fn((function(){return l.dispose()}));return e[n].mock.dispose=i,{dispose:i}}));var r=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){r(),e[n].mock.dispose=null}}function b(e,n){var t=e[n].bind(e),r=[];e[n]=jest.fn((function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return t.apply(void 0,n).do({start:function(e){r.push(e)}})})),e[n].mock.subscriptions=r;var a=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){a(),e[n].mock.subscriptions=[]}}e.exports={createMockEnvironment:function(e){var n,t,l,k,g=null!==(n=null==e?void 0:e.store)&&void 0!==n?n:new p(new f),h=new s({size:10,ttl:3e5}),_=[],E=[],S=[],A=function(e,n,t){var r=e.id,o=e.text,l=null!=r?r:o,i=null;if(null!=(null==t?void 0:t.force)&&!1!==(null==t?void 0:t.force)||null==l||(i=h.get(l,n)),null!==i)return c.from(i);var u=E.find((function(t){return t.request.node.params===e&&a(t.request.variables,n)}));if(null!=u&&S.length>0){var s=S[0],f=s(u);if(null!=f)return S=S.filter((function(e){return e!==s})),E=E.filter((function(e){return e!==u})),f instanceof Error?c.create((function(e){e.error(f)})):c.from(f)}return c.create((function(r){var o={request:e,variables:n,cacheConfig:t,sink:r};return _=_.concat([o]),function(){_=_.filter((function(e){return!a(e,o)})),E=E.filter((function(e){return e!==u}))}}))};function C(e){if("Request"===e.kind)return e;var n=e;return E.includes(n)||o(!1,'RelayModernMockEnvironment: Operation "%s" was not found in the list of pending operations',n.request.node.operation.name),n.request.node}function M(e){var n,t;n="Request"===e.kind?e:(t=e).request.node;var r=_.filter((function(e){return!!a(e.request,n.params)&&(!t||a(t.request.variables,e.variables))}));return r.length||o(!1,"MockEnvironment: Cannot respond to request, it has not been requested yet."),r.forEach((function(e){e.sink||o(!1,"MockEnvironment: Cannot respond to `%s`, it has not been requested yet.",n.params.name)})),r}function O(e){return"object"==typeof e&&null!==e&&e.hasOwnProperty("data")||o(!1,"MockEnvironment(): Expected payload to be an object with a `data` key."),e}var x=function(e,n){var t="string"==typeof n?new Error(n):n;M(e).forEach((function(e){var n=e.sink;null===n&&o(!1,"Sink should be defined."),n.error(t)}))},R=function(e,n){M(e).forEach((function(e){var t=e.sink;null===t&&o(!1,"Sink should be defined."),t.next(O(n)),t.complete()}))},j=function(){var e=E[E.length-1];return null==e&&o(!1,"RelayModernMockEnvironment: There are no pending operations in the list"),e},N=new i((0,r.default)({configName:"RelayModernMockEnvironment",network:u.create(A,A),store:g},e)),T=function(e,n){return function(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];var o=r[0].operation;return E=E.concat([o]),n.apply(e,r)}};N.execute=T(N,N.execute),N.executeSubscription=T(N,N.executeSubscription),N.executeWithSource=T(N,N.executeWithSource),N.executeMutation=T(N,N.executeMutation),"test"===(null===(t=global)||void 0===t||null===(l=t.process)||void 0===l||null===(k=l.env)||void 0===k?void 0:k.NODE_ENV)&&(y(N,"applyUpdate"),m(N,"commitPayload"),m(N,"getStore"),m(N,"lookup"),m(N,"check"),y(N,"subscribe"),y(N,"retain"),b(N,"execute"),b(N,"executeSubscription"),b(N,"executeWithSource"),b(N,"executeMutation"),m(g,"getSource"),m(g,"lookup"),m(g,"notify"),m(g,"publish"),y(g,"retain"),y(g,"subscribe"));var q={cachePayload:function(e,n,t){var r=C(e).params,a=r.id,l=r.text,i=null!=a?a:l;null==i&&o(!1,"CacheID should not be null"),h.set(i,n,t)},clearCache:function(){h.clear()},isLoading:function(e,n,t){return _.some((function(r){return a(r.request,C(e).params)&&a(r.variables,n)&&a(r.cacheConfig,null!=t?t:{})}))},reject:x,resolve:R,nextValue:function(e,n){M(e).forEach((function(e){var t=e.sink;null===t&&o(!1,"Sink should be defined."),t.next(O(n))}))},complete:function(e){M(e).forEach((function(e){var n=e.sink;null===n&&o(!1,"Sink should be defined."),n.complete()}))},getMostRecentOperation:j,resolveMostRecentOperation:function(e){var n=j(),t="function"==typeof e?e(n):e;return R(n,t)},rejectMostRecentOperation:function(e){var n=j(),t="function"==typeof e?e(n):e;return x(n,t)},findOperation:function(e){var n=E.find(e);return null==n&&o(!1,"RelayModernMockEnvironment: Operation was not found in the list of pending operations"),n},queuePendingOperation:function(e,n){var t=d(v(e),n);E=E.concat([t])},getAllOperations:function(){return E},queueOperationResolver:function(e){S=S.concat([e])}};return N.mock=q,N.mockClear=function(){var e,n;N.applyUpdate.mockClear(),N.commitPayload.mockClear(),N.getStore.mockClear(),N.lookup.mockClear(),N.check.mockClear(),N.subscribe.mockClear(),N.retain.mockClear(),N.execute.mockClear(),N.executeMutation.mockClear(),N.executeSubscription.mockClear(),null===(e=(n=g.getSource()).clear)||void 0===e||e.call(n),g.getSource.mockClear(),g.lookup.mockClear(),g.notify.mockClear(),g.publish.mockClear(),g.retain.mockClear(),g.subscribe.mockClear(),h.clear(),E=[],_=[]},N}}},function(e,n){e.exports=require("fbjs/lib/areEqual")},function(e,n,t){"use strict";var r=t(11);e.exports={testResolver:function(e,n){var t=r.readFragment;r.readFragment=function(){return n};var a=e(null);return r.readFragment=t,a}}},function(e,n){e.exports=require("relay-runtime/store/ResolverFragments")},function(e,n,t){"use strict";var r=t(0);e.exports=function(e){var n=e.__ComponentClass;return null==n&&r(!1,"Could not find component for %s, is it a Relay container?",e.displayName||e.name),n}}]);
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Relay v11.0.2
2
+ * Relay v13.0.0-rc.2
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
5
5
  *
6
6
  * This source code is licensed under the MIT license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- module.exports=function(e){var n={};function r(t){if(n[t])return n[t].exports;var a=n[t]={i:t,l:!1,exports:{}};return e[t].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var a in e)r.d(t,a,function(n){return e[n]}.bind(null,a));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="",r(r.s=4)}([function(e,n){e.exports=require("invariant")},function(e,n){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,n){e.exports=require("@babel/runtime/helpers/objectSpread2")},function(e,n){e.exports=require("relay-runtime")},function(e,n,r){"use strict";var t=r(5),a=r(8),l=r(10);e.exports={MockEnvironment:a,MockPayloadGenerator:t,createMockEnvironment:a.createMockEnvironment,unwrapContainer:l}},function(e,n,r){"use strict";var t=r(1),a=t(r(6)),l=t(r(2)),o=t(r(7)),u=r(0),i=r(3),c=i.TYPENAME_KEY,s=i.RelayConcreteNode,f=i.getModuleComponentKey,p=i.getModuleOperationKey,v=s.CLIENT_COMPONENT,d=s.CLIENT_EXTENSION,m=s.CONDITION,y=s.CONNECTION,b=s.DEFER,g=s.FLIGHT_FIELD,k=s.FRAGMENT_SPREAD,h=s.INLINE_FRAGMENT,_=s.LINKED_FIELD,A=s.LINKED_HANDLE,E=s.MODULE_IMPORT,C=s.SCALAR_FIELD,S=s.SCALAR_HANDLE,O=s.STREAM,M=s.TYPE_DISCRIMINATOR;var x={ID:function(e,n){return"<".concat(null!=e.parentType&&e.parentType!==j?e.parentType+"-":"","mock-id-").concat(n(),">")},Boolean:function(){return!1},Int:function(){return 42},Float:function(){return 4.2}},j="__MockObject";function N(e,n,r,t){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],l=arguments.length>5?arguments[5]:void 0,o=function(a){var l,o,u,i=null!=r&&null!=n?n[r]:null;(null!=i&&(l=i(t,e)),void 0===l)&&(l=null!=a?a:"ID"===r?x.ID(t,e):'<mock-value-for-field-"'.concat(null!==(o=null!==(u=t.alias)&&void 0!==u?u:t.name)&&void 0!==o?o:"undefined",'">'));return l};return!0===a?T(Array.isArray(l)?l:Array(1).fill(),o):o(l)}function T(e,n){return e.map((function(e){return n(e)}))}var V=function(){function e(e){var n,r,t,a,o;this._variables=e.variables,this._mockResolvers=(0,l.default)((0,l.default)({},x),null!==(n=e.mockResolvers)&&void 0!==n?n:{}),this._selectionMetadata=null!==(r=e.selectionMetadata)&&void 0!==r?r:{},this._resolveValue=(t=this._mockResolvers,a=0,o=function(){return++a},function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return N.apply(void 0,[o,t].concat(n))})}var n=e.prototype;return n.generate=function(e,n){var r=this._getDefaultValuesForObject(n,null,null,[],{});return this._traverse({selections:e,typeName:n,isAbstractType:!1,name:null,alias:null,args:null},[],null,r)},n._traverse=function(e,n,r,t){var a=e.selections,l=e.typeName,o=e.isAbstractType;return this._traverseSelections(a,l,o,n,r,t)},n._traverseSelections=function(e,n,r,t,o,i){var s=this,x=null!=o?o:{};return e.forEach((function(e){switch(e.kind){case C:x=s._mockScalar(e,n,t,x,i);break;case y:x=s._traverseSelections([e.edges,e.pageInfo],n,r,t,o,i);break;case _:x=s._mockLink(e,t,x,i);break;case m:s._getVariableValue(e.condition)===e.passingValue&&(x=s._traverseSelections(e.selections,n,r,t,x,i));break;case b:case O:x=s._traverseSelections(e.selections,n,r,t,x,i);break;case v:case k:x=s._traverseSelections(e.fragment.selections,n,r,t,x,i);break;case h:var N,T=e.abstractKey;if(null!=T){null!=x&&(x[T]=!0),x=s._traverseSelections(e.selections,n,r,t,x,i);break}if(null!=x&&(null==x[c]||x[c]===j))x[c]=null!==(N=null==i?void 0:i[c])&&void 0!==N?N:e.type;if(!0===r&&null!=x&&x[c]===n&&(x[c]=e.type),null!=x&&x[c]===e.type){var V=s._getDefaultValuesForObject(e.type,t[t.length-1],null,t),D=n!==e.type?s._getDefaultValuesForObject(n,t[t.length-1],null,t):V,R=V;if(void 0===R&&(R=D),void 0===R&&(R=i),null===R){x=null;break}null!=(x=s._traverseSelections(e.selections,e.type,r,t,x,R))[c]&&(x[c]=e.type),null!=x.id&&null!=V&&null!=V.id&&(x.id=V.id)}break;case E:if(null!=i){var q;if(i.__typename!==n)break;var I=i.__module_operation;"object"==typeof I&&null!==I&&"SplitOperation"===I.kind&&Array.isArray(I.selections)&&"string"==typeof I.name||u(!1);var w=I,F=e.documentName;null==x&&(x={}),x=(0,l.default)((0,l.default)({},x),{},(q={},(0,a.default)(q,c,n),(0,a.default)(q,p(F),I.name),(0,a.default)(q,f(F),i.__module_component),q),s._traverseSelections(w.selections,n,!1,t,null,null))}break;case d:break;case M:var L=e.abstractKey;null!=x&&(x[L]=!0);break;case S:case A:break;case g:throw new Error("Flight fields are not yet supported.");default:u(!1)}})),x},n._getCorrectDefaultEnum=function(e,n,r,t){if(void 0===n)return n;if(null===n)return n;var a=Array.isArray(n)?n.map((function(e){return String(e).toUpperCase()})):[String(n).toUpperCase()],l=e.map((function(e){return e.toUpperCase()}));a.filter((function(e){return l.includes(e)})).length!==a.length&&u(!1);var o=a.map((function(n){var r=l.indexOf(String(n).toUpperCase());return e[r]}));return Array.isArray(n)?o:o[0]},n._mockScalar=function(e,n,r,t,a){var l,u,i=null!=t?t:{},s=null!==(l=e.alias)&&void 0!==l?l:e.name;if(i.hasOwnProperty(s)&&e.name!==c)return i;e.name===c&&(u=null!=n?n:j);var f=[].concat((0,o.default)(r),[s]),p=this._getScalarFieldTypeDetails(e,n,f),v=p.type,d=p.plural,m=p.enumValues;if(null!=a&&a.hasOwnProperty(s)&&(u=a[s],null!=m&&(u=this._getCorrectDefaultEnum(m,u,r,s)),void 0!==u&&d&&!Array.isArray(u)&&(u=[u])),void 0===u){var y=null!=m?m[0]:void 0;u=this._resolveValue(v,{parentType:n,name:e.name,alias:e.alias,path:f,args:this._getFieldArgs(e)},d,y)}return i[s]=u,i},n._mockLink=function(e,n,r,t){var a,l,u,i,s=this,f=null!==(a=e.alias)&&void 0!==a?a:e.name,p=null!=r?r:{},v=this._getFieldArgs(e),d=[].concat((0,o.default)(n),[f]),m=null!==(l=this._selectionMetadata[d.join(".")])&&void 0!==l?l:{type:j};if(null!=t&&"object"==typeof t[f]&&(i=t[f]),null===i)return p[f]=null,p;var y=null!==(u=e.concreteType)&&void 0!==u?u:null!=i&&"string"==typeof i[c]?i[c]:m.type,b=null===e.concreteType&&y===m.type,g=function(r){var t,a,l=null!==(t=s._getDefaultValuesForObject(null!==(a=e.concreteType)&&void 0!==a?a:m.type,e.name,e.alias,d,v))&&void 0!==t?t:r;return null===l?null:s._traverse({selections:e.selections,typeName:y,isAbstractType:b,name:e.name,alias:e.alias,args:v},[].concat((0,o.default)(n),[f]),"object"==typeof p[f]?p[f]:null,l)};return p[f]="LinkedField"===e.kind&&e.plural?T(Array.isArray(i)?i:Array(1).fill(),g):g(i),p},n._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||u(!1),this._variables[e]},n._getDefaultValuesForObject=function(e,n,r,t,a){var l;if(null!=e&&null!=this._mockResolvers[e]&&(l=this._resolveValue(e,{parentType:null,name:n,alias:r,args:a,path:t},!1)),"object"==typeof l)return l},n._getFieldArgs=function(e){var n=this,r={};return null!=e.args&&e.args.forEach((function(e){r[e.name]=n._getArgValue(e)})),r},n._getArgValue=function(e){var n=this;switch(e.kind){case"Literal":return e.value;case"Variable":return this._getVariableValue(e.variableName);case"ObjectValue":var r={};return e.fields.forEach((function(e){r[e.name]=n._getArgValue(e)})),r;case"ListValue":var t=[];return e.items.forEach((function(e){t.push(null!=e?n._getArgValue(e):null)})),t}},n._getScalarFieldTypeDetails=function(e,n,r){var t;return null!==(t=this._selectionMetadata[r.join(".")])&&void 0!==t?t:{type:"id"===e.name?"ID":"String",plural:!1,enumValues:null,nullable:!1}},e}();e.exports={generate:function(e,n){return{data:function(e,n,r,t){var a,l=new V({variables:n,mockResolvers:r,selectionMetadata:t});return a=e.name.endsWith("Mutation")?"Mutation":e.name.endsWith("Subscription")?"Subscription":"Query",l.generate(e.selections,a)}(e.request.node.operation,e.request.variables,null!=n?n:null,function(e){var n,r=null===(n=e.request.node.params.metadata)||void 0===n?void 0:n.relayTestingSelectionTypeInfo;if(null!=r&&!Array.isArray(r)&&"object"==typeof r){var t={};return Object.keys(r).forEach((function(e){var n=r[e];null==n||Array.isArray(n)||"object"!=typeof n||"string"!=typeof n.type||"boolean"!=typeof n.plural||"boolean"!=typeof n.nullable||null!==n.enumValues&&!Array.isArray(n.enumValues)||(t[e]={type:n.type,plural:n.plural,nullable:n.nullable,enumValues:Array.isArray(n.enumValues)?n.enumValues.map(String):null})})),t}return null}(e))}}}},function(e,n){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,n){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,n,r){"use strict";var t=r(1)(r(2)),a=r(9),l=r(0),o=r(3),u=o.RecordSource,i=o.Store,c=o.QueryResponseCache,s=o.Observable,f=o.Environment,p=o.Network,v=o.createOperationDescriptor,d=o.getRequest;function m(e,n){e[n]=jest.fn(e[n].bind(e))}function y(e,n){var r=e[n].bind(e);e[n]=jest.fn((function(){for(var t=arguments.length,a=new Array(t),l=0;l<t;l++)a[l]=arguments[l];var o=r.apply(void 0,a),u=jest.fn((function(){return o.dispose()}));return e[n].mock.dispose=u,{dispose:u}}));var t=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){t(),e[n].mock.dispose=null}}function b(e,n){var r=e[n].bind(e),t=[];e[n]=jest.fn((function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return r.apply(void 0,n).do({start:function(e){t.push(e)}})})),e[n].mock.subscriptions=t;var a=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){a(),e[n].mock.subscriptions=[]}}e.exports={createMockEnvironment:function(e){var n,r,o,g,k=null!==(n=null==e?void 0:e.store)&&void 0!==n?n:new i(new u),h=new c({size:10,ttl:3e5}),_=[],A=[],E=[],C=function(e,n,r){var t=e.id,l=e.text,o=null!=t?t:l,u=null;if(null!=(null==r?void 0:r.force)&&!1!==(null==r?void 0:r.force)||null==o||(u=h.get(o,n)),null!==u)return s.from(u);var i=A.find((function(r){return r.request.node.params===e&&a(r.request.variables,n)}));if(null!=i&&E.length>0){var c=E[0],f=c(i);if(null!=f)return E=E.filter((function(e){return e!==c})),A=A.filter((function(e){return e!==i})),f instanceof Error?s.create((function(e){e.error(f)})):s.from(f)}return s.create((function(t){var l={request:e,variables:n,cacheConfig:r,sink:t};return _=_.concat([l]),function(){_=_.filter((function(e){return!a(e,l)})),A=A.filter((function(e){return e!==i}))}}))};function S(e){if("Request"===e.kind)return e;var n=e;return A.includes(n)||l(!1),n.request.node}function O(e){var n,r;n="Request"===e.kind?e:(r=e).request.node;var t=_.filter((function(e){return!!a(e.request,n.params)&&(!r||a(r.request.variables,e.variables))}));return t.length||l(!1),t.forEach((function(e){e.sink||l(!1)})),t}function M(e){return"object"==typeof e&&null!==e&&e.hasOwnProperty("data")||l(!1),e}var x=function(e,n){var r="string"==typeof n?new Error(n):n;O(e).forEach((function(e){var n=e.sink;null===n&&l(!1),n.error(r)}))},j=function(e,n){O(e).forEach((function(e){var r=e.sink;null===r&&l(!1),r.next(M(n)),r.complete()}))},N=function(){var e=A[A.length-1];return null==e&&l(!1),e},T=new f((0,t.default)({configName:"RelayModernMockEnvironment",network:p.create(C,C),store:k},e)),V=function(e,n){return function(){for(var r=arguments.length,t=new Array(r),a=0;a<r;a++)t[a]=arguments[a];var l=t[0].operation;return A=A.concat([l]),n.apply(e,t)}};T.execute=V(T,T.execute),T.executeWithSource=V(T,T.executeWithSource),T.executeMutation=V(T,T.executeMutation),"test"===(null===(r=global)||void 0===r||null===(o=r.process)||void 0===o||null===(g=o.env)||void 0===g?void 0:g.NODE_ENV)&&(y(T,"applyUpdate"),m(T,"commitPayload"),m(T,"getStore"),m(T,"lookup"),m(T,"check"),y(T,"subscribe"),y(T,"retain"),b(T,"execute"),b(T,"executeWithSource"),b(T,"executeMutation"),m(k,"getSource"),m(k,"lookup"),m(k,"notify"),m(k,"publish"),y(k,"retain"),y(k,"subscribe"));var D={cachePayload:function(e,n,r){var t=S(e).params,a=t.id,o=t.text,u=null!=a?a:o;null==u&&l(!1),h.set(u,n,r)},clearCache:function(){h.clear()},isLoading:function(e,n,r){return _.some((function(t){return a(t.request,S(e).params)&&a(t.variables,n)&&a(t.cacheConfig,null!=r?r:{})}))},reject:x,resolve:j,nextValue:function(e,n){O(e).forEach((function(e){var r=e.sink;null===r&&l(!1),r.next(M(n))}))},complete:function(e){O(e).forEach((function(e){var n=e.sink;null===n&&l(!1),n.complete()}))},getMostRecentOperation:N,resolveMostRecentOperation:function(e){var n=N(),r="function"==typeof e?e(n):e;return j(n,r)},rejectMostRecentOperation:function(e){var n=N(),r="function"==typeof e?e(n):e;return x(n,r)},findOperation:function(e){var n=A.find(e);return null==n&&l(!1),n},queuePendingOperation:function(e,n){var r=v(d(e),n);A=A.concat([r])},getAllOperations:function(){return A},queueOperationResolver:function(e){E=E.concat([e])}};return T.mock=D,T.mockClear=function(){T.applyUpdate.mockClear(),T.commitPayload.mockClear(),T.getStore.mockClear(),T.lookup.mockClear(),T.check.mockClear(),T.subscribe.mockClear(),T.retain.mockClear(),T.execute.mockClear(),T.executeMutation.mockClear(),k.getSource.mockClear(),k.lookup.mockClear(),k.notify.mockClear(),k.publish.mockClear(),k.retain.mockClear(),k.subscribe.mockClear(),h.clear(),A=[],_=[]},T}}},function(e,n){e.exports=require("fbjs/lib/areEqual")},function(e,n,r){"use strict";var t=r(0);e.exports=function(e){var n=e.__ComponentClass;return null==n&&t(!1),n}}]);
9
+ module.exports=function(e){var n={};function r(t){if(n[t])return n[t].exports;var a=n[t]={i:t,l:!1,exports:{}};return e[t].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var a in e)r.d(t,a,function(n){return e[n]}.bind(null,a));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="",r(r.s=4)}([function(e,n){e.exports=require("invariant")},function(e,n){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,n){e.exports=require("@babel/runtime/helpers/objectSpread2")},function(e,n){e.exports=require("relay-runtime")},function(e,n,r){"use strict";var t=r(5),a=r(8),l=r(10),o=r(12);e.exports={MockEnvironment:a,MockPayloadGenerator:t,createMockEnvironment:a.createMockEnvironment,unwrapContainer:o,testResolver:l}},function(e,n,r){"use strict";var t=r(1),a=t(r(6)),l=t(r(2)),o=t(r(7)),u=r(0),i=r(3),c=i.RelayConcreteNode,s=i.TYPENAME_KEY,f=i.getModuleComponentKey,p=i.getModuleOperationKey,v=c.ACTOR_CHANGE,d=c.CLIENT_COMPONENT,m=c.CLIENT_EXTENSION,y=c.CONDITION,b=c.CONNECTION,g=c.DEFER,k=c.FLIGHT_FIELD,h=c.FRAGMENT_SPREAD,_=c.INLINE_FRAGMENT,A=c.LINKED_FIELD,E=c.LINKED_HANDLE,C=c.MODULE_IMPORT,S=c.SCALAR_FIELD,O=c.SCALAR_HANDLE,x=c.STREAM,M=c.TYPE_DISCRIMINATOR;var j={ID:function(e,n){return"<".concat(null!=e.parentType&&e.parentType!==N?e.parentType+"-":"","mock-id-").concat(n(),">")},Boolean:function(){return!1},Int:function(){return 42},Float:function(){return 4.2}},N="__MockObject";function T(e,n,r,t){var a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],l=arguments.length>5?arguments[5]:void 0,o=function(a){var l,o,u,i=null!=r&&null!=n?n[r]:null;(null!=i&&(l=i(t,e)),void 0===l)&&(l=null!=a?a:"ID"===r?j.ID(t,e):'<mock-value-for-field-"'.concat(null!==(o=null!==(u=t.alias)&&void 0!==u?u:t.name)&&void 0!==o?o:"undefined",'">'));return l};return!0===a?R(Array.isArray(l)?l:Array(1).fill(),o):o(l)}function R(e,n){return e.map((function(e){return n(e)}))}var V=function(){function e(e){var n,r,t,a,o;this._variables=e.variables,this._mockResolvers=(0,l.default)((0,l.default)({},j),null!==(n=e.mockResolvers)&&void 0!==n?n:{}),this._selectionMetadata=null!==(r=e.selectionMetadata)&&void 0!==r?r:{},this._resolveValue=(t=this._mockResolvers,a=0,o=function(){return++a},function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return T.apply(void 0,[o,t].concat(n))})}var n=e.prototype;return n.generate=function(e,n){var r=this._getDefaultValuesForObject(n,null,null,[],{});return this._traverse({selections:e,typeName:n,isAbstractType:!1,name:null,alias:null,args:null},[],null,r)},n._traverse=function(e,n,r,t){var a=e.selections,l=e.typeName,o=e.isAbstractType;return this._traverseSelections(a,l,o,n,r,t)},n._traverseSelections=function(e,n,r,t,o,i){var c=this,j=null!=o?o:{};return e.forEach((function(e){switch(e.kind){case S:j=c._mockScalar(e,n,t,j,i);break;case b:j=c._traverseSelections([e.edges,e.pageInfo],n,r,t,o,i);break;case A:j=c._mockLink(e,t,j,i);break;case y:c._getVariableValue(e.condition)===e.passingValue&&(j=c._traverseSelections(e.selections,n,r,t,j,i));break;case g:case x:j=c._traverseSelections(e.selections,n,r,t,j,i);break;case d:case h:j=c._traverseSelections(e.fragment.selections,n,r,t,j,i);break;case _:var T,R=e.abstractKey;if(null!=R){null!=j&&(j[R]=!0),j=c._traverseSelections(e.selections,n,r,t,j,i);break}if(null!=j&&(null==j[s]||j[s]===N))j[s]=null!==(T=null==i?void 0:i[s])&&void 0!==T?T:e.type;if(!0===r&&null!=j&&j[s]===n&&(j[s]=e.type),null!=j&&j[s]===e.type){var V=c._getDefaultValuesForObject(e.type,t[t.length-1],null,t),D=n!==e.type?c._getDefaultValuesForObject(n,t[t.length-1],null,t):V,q=V;if(void 0===q&&(q=D),void 0===q&&(q=i),null===q){j=null;break}null!=(j=c._traverseSelections(e.selections,e.type,r,t,j,q))[s]&&(j[s]=e.type),null!=j.id&&null!=V&&null!=V.id&&(j.id=V.id)}break;case C:if(null!=i){var I;if(i.__typename!==n)break;var w=i.__module_operation;"object"==typeof w&&null!==w&&"SplitOperation"===w.kind&&Array.isArray(w.selections)&&"string"==typeof w.name||u(!1);var F=w,L=e.documentName;null==j&&(j={}),j=(0,l.default)((0,l.default)({},j),{},(I={},(0,a.default)(I,s,n),(0,a.default)(I,p(L),w.name),(0,a.default)(I,f(L),i.__module_component),I),c._traverseSelections(F.selections,n,!1,t,null,null))}break;case m:break;case M:var P=e.abstractKey;null!=j&&(j[P]=!0);break;case O:case E:break;case k:throw new Error("Flight fields are not yet supported.");case v:throw new Error("ActorChange fields are not yet supported.");default:u(!1)}})),j},n._getCorrectDefaultEnum=function(e,n,r,t){if(void 0===n)return n;if(null===n)return n;var a=Array.isArray(n)?n.map((function(e){return String(e).toUpperCase()})):[String(n).toUpperCase()],l=e.map((function(e){return e.toUpperCase()}));a.filter((function(e){return l.includes(e)})).length!==a.length&&u(!1);var o=a.map((function(n){var r=l.indexOf(String(n).toUpperCase());return e[r]}));return Array.isArray(n)?o:o[0]},n._mockScalar=function(e,n,r,t,a){var l,u,i=null!=t?t:{},c=null!==(l=e.alias)&&void 0!==l?l:e.name;if(i.hasOwnProperty(c)&&e.name!==s)return i;e.name===s&&(u=null!=n?n:N);var f=[].concat((0,o.default)(r),[c]),p=this._getScalarFieldTypeDetails(e,n,f),v=p.type,d=p.plural,m=p.enumValues;if(null!=a&&a.hasOwnProperty(c)&&(u=a[c],null!=m&&(u=this._getCorrectDefaultEnum(m,u,r,c)),void 0!==u&&d&&!Array.isArray(u)&&(u=[u])),void 0===u){var y=null!=m?m[0]:void 0;u=this._resolveValue(v,{parentType:n,name:e.name,alias:e.alias,path:f,args:this._getFieldArgs(e)},d,y)}return i[c]=u,i},n._mockLink=function(e,n,r,t){var a,l,u,i,c=this,f=null!==(a=e.alias)&&void 0!==a?a:e.name,p=null!=r?r:{},v=this._getFieldArgs(e),d=[].concat((0,o.default)(n),[f]),m=null!==(l=this._selectionMetadata[d.join(".")])&&void 0!==l?l:{type:N};if(null!=t&&"object"==typeof t[f]&&(i=t[f]),null===i)return p[f]=null,p;var y=null!==(u=e.concreteType)&&void 0!==u?u:null!=i&&"string"==typeof i[s]?i[s]:m.type,b=null===e.concreteType&&y===m.type,g=function(r){var t,a,l=null!==(t=c._getDefaultValuesForObject(null!==(a=e.concreteType)&&void 0!==a?a:m.type,e.name,e.alias,d,v))&&void 0!==t?t:r;return null===l?null:c._traverse({selections:e.selections,typeName:y,isAbstractType:b,name:e.name,alias:e.alias,args:v},[].concat((0,o.default)(n),[f]),"object"==typeof p[f]?p[f]:null,l)};return p[f]="LinkedField"===e.kind&&e.plural?R(Array.isArray(i)?i:Array(1).fill(),g):g(i),p},n._getVariableValue=function(e){return this._variables.hasOwnProperty(e)||u(!1),this._variables[e]},n._getDefaultValuesForObject=function(e,n,r,t,a){var l;if(null!=e&&null!=this._mockResolvers[e]&&(l=this._resolveValue(e,{parentType:null,name:n,alias:r,args:a,path:t},!1)),"object"==typeof l)return l},n._getFieldArgs=function(e){var n=this,r={};return null!=e.args&&e.args.forEach((function(e){r[e.name]=n._getArgValue(e)})),r},n._getArgValue=function(e){var n=this;switch(e.kind){case"Literal":return e.value;case"Variable":return this._getVariableValue(e.variableName);case"ObjectValue":var r={};return e.fields.forEach((function(e){r[e.name]=n._getArgValue(e)})),r;case"ListValue":var t=[];return e.items.forEach((function(e){t.push(null!=e?n._getArgValue(e):null)})),t}},n._getScalarFieldTypeDetails=function(e,n,r){var t;return null!==(t=this._selectionMetadata[r.join(".")])&&void 0!==t?t:{type:"id"===e.name?"ID":"String",plural:!1,enumValues:null,nullable:!1}},e}();e.exports={generate:function(e,n){return{data:function(e,n,r,t){var a,l=new V({variables:n,mockResolvers:r,selectionMetadata:t});return a=e.name.endsWith("Mutation")?"Mutation":e.name.endsWith("Subscription")?"Subscription":"Query",l.generate(e.selections,a)}(e.request.node.operation,e.request.variables,null!=n?n:null,function(e){var n,r=null===(n=e.request.node.params.metadata)||void 0===n?void 0:n.relayTestingSelectionTypeInfo;if(null!=r&&!Array.isArray(r)&&"object"==typeof r){var t={};return Object.keys(r).forEach((function(e){var n=r[e];null==n||Array.isArray(n)||"object"!=typeof n||"string"!=typeof n.type||"boolean"!=typeof n.plural||"boolean"!=typeof n.nullable||null!==n.enumValues&&!Array.isArray(n.enumValues)||(t[e]={type:n.type,plural:n.plural,nullable:n.nullable,enumValues:Array.isArray(n.enumValues)?n.enumValues.map(String):null})})),t}return null}(e))}}}},function(e,n){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,n){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,n,r){"use strict";var t=r(1)(r(2)),a=r(9),l=r(0),o=r(3),u=o.Environment,i=o.Network,c=o.Observable,s=o.QueryResponseCache,f=o.RecordSource,p=o.Store,v=o.createOperationDescriptor,d=o.getRequest;function m(e,n){e[n]=jest.fn(e[n].bind(e))}function y(e,n){var r=e[n].bind(e);e[n]=jest.fn((function(){for(var t=arguments.length,a=new Array(t),l=0;l<t;l++)a[l]=arguments[l];var o=r.apply(void 0,a),u=jest.fn((function(){return o.dispose()}));return e[n].mock.dispose=u,{dispose:u}}));var t=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){t(),e[n].mock.dispose=null}}function b(e,n){var r=e[n].bind(e),t=[];e[n]=jest.fn((function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return r.apply(void 0,n).do({start:function(e){t.push(e)}})})),e[n].mock.subscriptions=t;var a=e[n].mockClear.bind(e[n]);e[n].mockClear=function(){a(),e[n].mock.subscriptions=[]}}e.exports={createMockEnvironment:function(e){var n,r,o,g,k=null!==(n=null==e?void 0:e.store)&&void 0!==n?n:new p(new f),h=new s({size:10,ttl:3e5}),_=[],A=[],E=[],C=function(e,n,r){var t=e.id,l=e.text,o=null!=t?t:l,u=null;if(null!=(null==r?void 0:r.force)&&!1!==(null==r?void 0:r.force)||null==o||(u=h.get(o,n)),null!==u)return c.from(u);var i=A.find((function(r){return r.request.node.params===e&&a(r.request.variables,n)}));if(null!=i&&E.length>0){var s=E[0],f=s(i);if(null!=f)return E=E.filter((function(e){return e!==s})),A=A.filter((function(e){return e!==i})),f instanceof Error?c.create((function(e){e.error(f)})):c.from(f)}return c.create((function(t){var l={request:e,variables:n,cacheConfig:r,sink:t};return _=_.concat([l]),function(){_=_.filter((function(e){return!a(e,l)})),A=A.filter((function(e){return e!==i}))}}))};function S(e){if("Request"===e.kind)return e;var n=e;return A.includes(n)||l(!1),n.request.node}function O(e){var n,r;n="Request"===e.kind?e:(r=e).request.node;var t=_.filter((function(e){return!!a(e.request,n.params)&&(!r||a(r.request.variables,e.variables))}));return t.length||l(!1),t.forEach((function(e){e.sink||l(!1)})),t}function x(e){return"object"==typeof e&&null!==e&&e.hasOwnProperty("data")||l(!1),e}var M=function(e,n){var r="string"==typeof n?new Error(n):n;O(e).forEach((function(e){var n=e.sink;null===n&&l(!1),n.error(r)}))},j=function(e,n){O(e).forEach((function(e){var r=e.sink;null===r&&l(!1),r.next(x(n)),r.complete()}))},N=function(){var e=A[A.length-1];return null==e&&l(!1),e},T=new u((0,t.default)({configName:"RelayModernMockEnvironment",network:i.create(C,C),store:k},e)),R=function(e,n){return function(){for(var r=arguments.length,t=new Array(r),a=0;a<r;a++)t[a]=arguments[a];var l=t[0].operation;return A=A.concat([l]),n.apply(e,t)}};T.execute=R(T,T.execute),T.executeSubscription=R(T,T.executeSubscription),T.executeWithSource=R(T,T.executeWithSource),T.executeMutation=R(T,T.executeMutation),"test"===(null===(r=global)||void 0===r||null===(o=r.process)||void 0===o||null===(g=o.env)||void 0===g?void 0:g.NODE_ENV)&&(y(T,"applyUpdate"),m(T,"commitPayload"),m(T,"getStore"),m(T,"lookup"),m(T,"check"),y(T,"subscribe"),y(T,"retain"),b(T,"execute"),b(T,"executeSubscription"),b(T,"executeWithSource"),b(T,"executeMutation"),m(k,"getSource"),m(k,"lookup"),m(k,"notify"),m(k,"publish"),y(k,"retain"),y(k,"subscribe"));var V={cachePayload:function(e,n,r){var t=S(e).params,a=t.id,o=t.text,u=null!=a?a:o;null==u&&l(!1),h.set(u,n,r)},clearCache:function(){h.clear()},isLoading:function(e,n,r){return _.some((function(t){return a(t.request,S(e).params)&&a(t.variables,n)&&a(t.cacheConfig,null!=r?r:{})}))},reject:M,resolve:j,nextValue:function(e,n){O(e).forEach((function(e){var r=e.sink;null===r&&l(!1),r.next(x(n))}))},complete:function(e){O(e).forEach((function(e){var n=e.sink;null===n&&l(!1),n.complete()}))},getMostRecentOperation:N,resolveMostRecentOperation:function(e){var n=N(),r="function"==typeof e?e(n):e;return j(n,r)},rejectMostRecentOperation:function(e){var n=N(),r="function"==typeof e?e(n):e;return M(n,r)},findOperation:function(e){var n=A.find(e);return null==n&&l(!1),n},queuePendingOperation:function(e,n){var r=v(d(e),n);A=A.concat([r])},getAllOperations:function(){return A},queueOperationResolver:function(e){E=E.concat([e])}};return T.mock=V,T.mockClear=function(){var e,n;T.applyUpdate.mockClear(),T.commitPayload.mockClear(),T.getStore.mockClear(),T.lookup.mockClear(),T.check.mockClear(),T.subscribe.mockClear(),T.retain.mockClear(),T.execute.mockClear(),T.executeMutation.mockClear(),T.executeSubscription.mockClear(),null===(e=(n=k.getSource()).clear)||void 0===e||e.call(n),k.getSource.mockClear(),k.lookup.mockClear(),k.notify.mockClear(),k.publish.mockClear(),k.retain.mockClear(),k.subscribe.mockClear(),h.clear(),A=[],_=[]},T}}},function(e,n){e.exports=require("fbjs/lib/areEqual")},function(e,n,r){"use strict";var t=r(11);e.exports={testResolver:function(e,n){var r=t.readFragment;t.readFragment=function(){return n};var a=e(null);return t.readFragment=r,a}}},function(e,n){e.exports=require("relay-runtime/store/ResolverFragments")},function(e,n,r){"use strict";var t=r(0);e.exports=function(e){var n=e.__ComponentClass;return null==n&&t(!1),n}}]);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -9,16 +9,16 @@
9
9
 
10
10
  'use strict';
11
11
 
12
- const invariant = require('invariant');
13
-
14
12
  import type React from 'React';
15
13
  import type {
16
- $RelayProps,
17
- RelayProp,
18
14
  RelayPaginationProp,
15
+ RelayProp,
19
16
  RelayRefetchProp,
17
+ $RelayProps,
20
18
  } from 'react-relay';
21
19
 
20
+ const invariant = require('invariant');
21
+
22
22
  /**
23
23
  * Returns original component class wrapped by e.g. createFragmentContainer
24
24
  */