relay-test-utils-internal 0.0.0-main-7a486fd5 → 0.0.0-main-8aed8721

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/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-7a486fd5
2
+ * Relay v0.0.0-main-8aed8721
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *
package/lib/Matchers.js CHANGED
@@ -1,16 +1,5 @@
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
- * @format
8
- * @oncall relay
9
- */
1
+ "use strict";
10
2
 
11
- 'use strict';
12
-
13
- /* global expect */
14
3
  function toBeDeeplyFrozen(actual) {
15
4
  function check(value) {
16
5
  expect(Object.isFrozen(value)).toBe(true);
@@ -18,7 +7,7 @@ function toBeDeeplyFrozen(actual) {
18
7
  value.forEach(function (item) {
19
8
  return check(item);
20
9
  });
21
- } else if (typeof value === 'object' && value !== null) {
10
+ } else if (typeof value === "object" && value !== null) {
22
11
  for (var key in value) {
23
12
  check(value[key]);
24
13
  }
@@ -35,7 +24,7 @@ function toWarn(actual, expected) {
35
24
  return item instanceof RegExp ? item.toString() : JSON.stringify(item);
36
25
  }
37
26
  function formatArray(array) {
38
- return '[' + array.map(formatItem).join(', ') + ']';
27
+ return "[" + array.map(formatItem).join(", ") + "]";
39
28
  }
40
29
  function formatExpected(args) {
41
30
  return formatArray([false].concat(args));
@@ -44,9 +33,9 @@ function toWarn(actual, expected) {
44
33
  if (calls.length) {
45
34
  return calls.map(function (args) {
46
35
  return formatArray([!!args[0]].concat(args.slice(1)));
47
- }).join(', ');
36
+ }).join(", ");
48
37
  } else {
49
- return '[]';
38
+ return "[]";
50
39
  }
51
40
  }
52
41
  var warning = require("fbjs/lib/warning");
@@ -56,8 +45,6 @@ function toWarn(actual, expected) {
56
45
  var callsCount = warning.mock.calls.length;
57
46
  actual();
58
47
  var calls = warning.mock.calls.slice(callsCount);
59
-
60
- // Simple case: no explicit expectation.
61
48
  if (!expected) {
62
49
  var warned = calls.filter(function (args) {
63
50
  return !args[0];
@@ -65,12 +52,10 @@ function toWarn(actual, expected) {
65
52
  return {
66
53
  pass: !!warned,
67
54
  message: function message() {
68
- return "Expected ".concat(negative ? 'not ' : '', "to warn but ") + '`warning` received the following calls: ' + "".concat(formatActual(calls), ".");
55
+ return "Expected ".concat(negative ? "not " : "", "to warn but ") + "`warning` received the following calls: " + "".concat(formatActual(calls), ".");
69
56
  }
70
57
  };
71
58
  }
72
-
73
- // Custom case: explicit expectation.
74
59
  if (!Array.isArray(expected)) {
75
60
  expected = [expected];
76
61
  }
@@ -86,7 +71,7 @@ function toWarn(actual, expected) {
86
71
  return {
87
72
  pass: !!call,
88
73
  message: function message() {
89
- return "Expected ".concat(negative ? 'not ' : '', "to warn: ") + "".concat(formatExpected(expected), " but ") + '`warning` received the following calls: ' + "".concat(formatActual(calls), ".");
74
+ return "Expected ".concat(negative ? "not " : "", "to warn: ") + "".concat(formatExpected(expected), " but ") + "`warning` received the following calls: " + "".concat(formatActual(calls), ".");
90
75
  }
91
76
  };
92
77
  }
@@ -1,53 +1,19 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- /* global jest */
15
- var _require = require('./consoleErrorsAndWarnings'),
3
+ var _require = require("./consoleErrorsAndWarnings"),
16
4
  createConsoleInterceptionSystem = _require.createConsoleInterceptionSystem;
17
- var consoleErrorsSystem = createConsoleInterceptionSystem('error', 'expectConsoleError', function (impl) {
18
- jest.spyOn(console, 'error').mockImplementation(impl);
5
+ var consoleErrorsSystem = createConsoleInterceptionSystem("error", "expectConsoleError", function (impl) {
6
+ jest.spyOn(console, "error").mockImplementation(impl);
19
7
  });
20
-
21
- /**
22
- * Mocks console.error so that errors printed to the console are instead thrown.
23
- * Any expected errors need to be explicitly expected with `expectConsoleErrorWillFire(message)`.
24
- *
25
- * NOTE: This should be called on top of a test file. The test should NOT
26
- * use `jest.resetModules()` or manually mock `console`.
27
- */
28
8
  function disallowConsoleErrors() {
29
9
  consoleErrorsSystem.disallowMessages();
30
10
  }
31
-
32
- /**
33
- * Expect an error with the given message. If the message isn't fired in the
34
- * current test, the test will fail.
35
- */
36
11
  function expectConsoleErrorWillFire(message, options) {
37
12
  consoleErrorsSystem.expectMessageWillFire(message, options);
38
13
  }
39
-
40
- /**
41
- * Expect the callback `fn` to print an error with the message, and otherwise fail.
42
- */
43
14
  function expectConsoleError(message, fn) {
44
15
  return consoleErrorsSystem.expectMessage(message, fn);
45
16
  }
46
-
47
- /**
48
- * Expect the callback `fn` to trigger all console errors (in sequence),
49
- * and otherwise fail.
50
- */
51
17
  function expectConsoleErrorsMany(messages, fn) {
52
18
  return consoleErrorsSystem.expectMessageMany(messages, fn);
53
19
  }
@@ -1,17 +1,5 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- /* global afterEach */
15
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
16
4
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
17
5
  var originalConsoleError = console.error;
@@ -21,7 +9,7 @@ function createConsoleInterceptionSystem(typename, expectFunctionName, setUpMock
21
9
  var optionalMessages = [];
22
10
  var contextualExpectedMessage = [];
23
11
  var typenameCap = typename.charAt(0).toUpperCase() + typename.slice(1);
24
- var typenameCapPlural = typenameCap + 's';
12
+ var typenameCapPlural = typenameCap + "s";
25
13
  var installerName = "disallow".concat(typenameCap, "s");
26
14
  function handleMessage(message) {
27
15
  var index = expectedMessages.findIndex(function (expected) {
@@ -37,7 +25,6 @@ function createConsoleInterceptionSystem(typename, expectFunctionName, setUpMock
37
25
  } else if (optionalIndex >= 0) {
38
26
  optionalMessages.splice(optionalIndex, 1);
39
27
  } else {
40
- // log to console in case the error gets swallowed somewhere
41
28
  originalConsoleError("Unexpected ".concat(typenameCap, ": ") + message);
42
29
  throw new Error("".concat(typenameCap, ": ") + message);
43
30
  }
@@ -54,7 +41,7 @@ function createConsoleInterceptionSystem(typename, expectFunctionName, setUpMock
54
41
  if (expectedMessages.length > 0) {
55
42
  var error = new Error("Some ".concat(expectedMessages.length, " expected ").concat(typename, "s where not triggered:\n\n") + Array.from(expectedMessages, function (message) {
56
43
  return " * ".concat(message);
57
- }).join('\n') + '\n');
44
+ }).join("\n") + "\n");
58
45
  expectedMessages.length = 0;
59
46
  throw error;
60
47
  }
@@ -64,7 +51,7 @@ function createConsoleInterceptionSystem(typename, expectFunctionName, setUpMock
64
51
  if (!installed) {
65
52
  throw new Error("".concat(installerName, " needs to be called before expect").concat(typenameCapPlural, "WillFire"));
66
53
  }
67
- var optional = (options === null || options === void 0 ? void 0 : options.optional) === true; // avoid "sketchy null check"
54
+ var optional = (options === null || options === void 0 ? void 0 : options.optional) === true;
68
55
  for (var i = 0; i < ((_options$count = options === null || options === void 0 ? void 0 : options.count) !== null && _options$count !== void 0 ? _options$count : 1); i++) {
69
56
  var _options$count;
70
57
  (optional ? optionalMessages : expectedMessages).push(message);
@@ -1,53 +1,19 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- /* global jest */
15
- var _require = require('./consoleErrorsAndWarnings'),
3
+ var _require = require("./consoleErrorsAndWarnings"),
16
4
  createConsoleInterceptionSystem = _require.createConsoleInterceptionSystem;
17
- var consoleWarningsSystem = createConsoleInterceptionSystem('warning', 'expectConsoleWarning', function (impl) {
18
- jest.spyOn(console, 'warn').mockImplementation(impl);
5
+ var consoleWarningsSystem = createConsoleInterceptionSystem("warning", "expectConsoleWarning", function (impl) {
6
+ jest.spyOn(console, "warn").mockImplementation(impl);
19
7
  });
20
-
21
- /**
22
- * Mocks console.warn so that warnings printed to the console are instead thrown.
23
- * Any expected warnings need to be explicitly expected with `expectConsoleWarningWillFire(message)`.
24
- *
25
- * NOTE: This should be called on top of a test file. The test should NOT
26
- * use `jest.resetModules()` or manually mock `console`.
27
- */
28
8
  function disallowConsoleWarnings() {
29
9
  consoleWarningsSystem.disallowMessages();
30
10
  }
31
-
32
- /**
33
- * Expect a warning with the given message. If the message isn't fired in the
34
- * current test, the test will fail.
35
- */
36
11
  function expectConsoleWarningWillFire(message, options) {
37
12
  consoleWarningsSystem.expectMessageWillFire(message, options);
38
13
  }
39
-
40
- /**
41
- * Expect the callback `fn` to print a warning with the message, and otherwise fail.
42
- */
43
14
  function expectConsoleWarning(message, fn) {
44
15
  return consoleWarningsSystem.expectMessage(message, fn);
45
16
  }
46
-
47
- /**
48
- * Expect the callback `fn` to trigger all console warnings (in sequence),
49
- * and otherwise fail.
50
- */
51
17
  function expectConsoleWarningsMany(messages, fn) {
52
18
  return consoleWarningsSystem.expectMessageMany(messages, fn);
53
19
  }
@@ -1,39 +1,19 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
11
-
12
- /**
13
- * Run a test suite under multiple sets of feature flags.
14
- * Beware that calling jest.resetModules() within the suite may break this.
15
- */
16
-
17
- 'use strict';
1
+ "use strict";
18
2
 
19
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
20
4
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
21
- // This function is for running within a test environment, so we use globals
22
- // available within tests -- taken from:
23
- // i code/www/[5ee5e1d71a05e9f58ded3c1c22b810666383164f]/flow/shared/libdefs/jest.js
24
-
25
5
  function describeWithFeatureFlags(flagSets, description, body) {
26
6
  describe.each(flagSets)("".concat(description, " - Feature flags: %o"), function (flags) {
27
7
  var originalFlags;
28
8
  beforeEach(function () {
29
- var _require = require('relay-runtime'),
9
+ var _require = require("relay-runtime"),
30
10
  RelayFeatureFlags = _require.RelayFeatureFlags;
31
11
  originalFlags = (0, _objectSpread2["default"])({}, RelayFeatureFlags);
32
12
  Object.assign(RelayFeatureFlags, flags);
33
13
  });
34
14
  afterEach(function () {
35
- var _require2 = require('relay-runtime'),
36
- RelayFeatureFlags = _require2.RelayFeatureFlags; // re-import in case of jest module resets
15
+ var _require2 = require("relay-runtime"),
16
+ RelayFeatureFlags = _require2.RelayFeatureFlags;
37
17
  Object.assign(RelayFeatureFlags, originalFlags);
38
18
  });
39
19
  body();
@@ -1,62 +1,38 @@
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
- * @format
8
- * @oncall relay
9
- */
10
-
11
- 'use strict';
1
+ "use strict";
12
2
 
13
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
14
4
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
- var getOutputForFixture = require('./getOutputForFixture');
16
- var fs = require('fs');
17
- var path = require('path');
18
-
19
- /* global expect,test */
20
-
21
- /**
22
- * Extend Jest with a custom snapshot serializer to provide additional context
23
- * and reduce the amount of escaping that occurs.
24
- */
25
- var FIXTURE_TAG = Symbol["for"]('FIXTURE_TAG');
5
+ var getOutputForFixture = require("./getOutputForFixture");
6
+ var fs = require("fs");
7
+ var path = require("path");
8
+ var FIXTURE_TAG = Symbol["for"]("FIXTURE_TAG");
26
9
  expect.addSnapshotSerializer({
27
10
  print: function print(value) {
28
11
  return Object.keys(value).map(function (key) {
29
12
  return "~~~~~~~~~~ ".concat(key.toUpperCase(), " ~~~~~~~~~~\n").concat(value[key]);
30
- }).join('\n');
13
+ }).join("\n");
31
14
  },
32
15
  test: function test(value) {
33
16
  return value && value[FIXTURE_TAG] === true;
34
17
  }
35
18
  });
36
-
37
- /**
38
- * Generates a set of jest snapshot tests that compare the output of the
39
- * provided `operation` to each of the matching files in the `fixturesPath`.
40
- * The fixture should have '# expected-to-throw' on its first line
41
- * if it is expected to fail
42
- */
43
19
  function generateTestsFromFixtures(fixturesPath, operation) {
44
20
  var fixtures = fs.readdirSync(fixturesPath);
45
21
  test("has fixtures in ".concat(fixturesPath), function () {
46
22
  expect(fixtures.length > 0).toBe(true);
47
23
  });
48
24
  var onlyFixtures = fixtures.filter(function (name) {
49
- return name.startsWith('only.');
25
+ return name.startsWith("only.");
50
26
  });
51
27
  if (onlyFixtures.length) {
52
28
  test.skip.each(fixtures.filter(function (name) {
53
- return !name.startsWith('only.');
54
- }))('matches expected output: %s', function () {});
29
+ return !name.startsWith("only.");
30
+ }))("matches expected output: %s", function () {});
55
31
  fixtures = onlyFixtures;
56
32
  }
57
- test.each(fixtures)('matches expected output: %s', function (file) {
33
+ test.each(fixtures)("matches expected output: %s", function (file) {
58
34
  var _expect;
59
- var input = fs.readFileSync(path.join(fixturesPath, file), 'utf8');
35
+ var input = fs.readFileSync(path.join(fixturesPath, file), "utf8");
60
36
  var output = getOutputForFixture(input, operation, file);
61
37
  expect((_expect = {}, (0, _defineProperty2["default"])(_expect, FIXTURE_TAG, true), (0, _defineProperty2["default"])(_expect, "input", input), (0, _defineProperty2["default"])(_expect, "output", output), _expect)).toMatchSnapshot();
62
38
  });
@@ -1,15 +1,4 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
11
-
12
- 'use strict';
1
+ "use strict";
13
2
 
14
3
  function getOutputForFixture(input, operation, file) {
15
4
  var shouldThrow = /^# *expected-to-throw/.test(input) || /\.error\.\w+$/.test(file);
package/lib/index.js CHANGED
@@ -1,48 +1,31 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- var _require = require('./consoleError'),
3
+ var _require = require("./consoleError"),
15
4
  disallowConsoleErrors = _require.disallowConsoleErrors,
16
5
  expectConsoleError = _require.expectConsoleError,
17
6
  expectConsoleErrorsMany = _require.expectConsoleErrorsMany,
18
7
  expectConsoleErrorWillFire = _require.expectConsoleErrorWillFire;
19
- var _require2 = require('./consoleWarning'),
8
+ var _require2 = require("./consoleWarning"),
20
9
  disallowConsoleWarnings = _require2.disallowConsoleWarnings,
21
10
  expectConsoleWarning = _require2.expectConsoleWarning,
22
11
  expectConsoleWarningsMany = _require2.expectConsoleWarningsMany,
23
12
  expectConsoleWarningWillFire = _require2.expectConsoleWarningWillFire;
24
- var describeWithFeatureFlags = require('./describeWithFeatureFlags');
25
- var _require3 = require('./generateTestsFromFixtures'),
13
+ var describeWithFeatureFlags = require("./describeWithFeatureFlags");
14
+ var _require3 = require("./generateTestsFromFixtures"),
26
15
  FIXTURE_TAG = _require3.FIXTURE_TAG,
27
16
  generateTestsFromFixtures = _require3.generateTestsFromFixtures;
28
- var Matchers = require('./Matchers');
29
- var printAST = require('./printAST');
30
- var simpleClone = require('./simpleClone');
31
- var trackRetentionForEnvironment = require('./trackRetentionForEnvironment');
32
- var _require4 = require('./warnings'),
17
+ var Matchers = require("./Matchers");
18
+ var printAST = require("./printAST");
19
+ var simpleClone = require("./simpleClone");
20
+ var trackRetentionForEnvironment = require("./trackRetentionForEnvironment");
21
+ var _require4 = require("./warnings"),
33
22
  disallowWarnings = _require4.disallowWarnings,
34
23
  expectToWarn = _require4.expectToWarn,
35
24
  expectToWarnMany = _require4.expectToWarnMany,
36
25
  expectWarningWillFire = _require4.expectWarningWillFire;
37
- var _require5 = require('relay-test-utils'),
26
+ var _require5 = require("relay-test-utils"),
38
27
  createMockEnvironment = _require5.createMockEnvironment,
39
28
  unwrapContainer = _require5.unwrapContainer;
40
-
41
- // Apparently, in node v16 (because now they are using V8 V9.something)
42
- // the content of the TypeError has changed, and now some of our tests
43
- // stated to fail.
44
- // This is a temporary work-around to make test pass, but we need to
45
- // figure out a cleaner way of testing this.
46
29
  function cannotReadPropertyOfUndefined__DEPRECATED(propertyName) {
47
30
  var matches = process.version.match(/^v(\d+)\./);
48
31
  var majorVersion = matches == null ? null : parseInt(matches[1], 10);
@@ -51,10 +34,6 @@ function cannotReadPropertyOfUndefined__DEPRECATED(propertyName) {
51
34
  }
52
35
  return "Cannot read properties of undefined (reading '".concat(propertyName, "')");
53
36
  }
54
-
55
- /**
56
- * The public interface to Relay Test Utils.
57
- */
58
37
  module.exports = {
59
38
  cannotReadPropertyOfUndefined__DEPRECATED: cannotReadPropertyOfUndefined__DEPRECATED,
60
39
  createMockEnvironment: createMockEnvironment,
package/lib/printAST.js CHANGED
@@ -1,94 +1,71 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- /**
15
- * Prints a JSON AST similar to JSON.stringify(ast, null, 2) with some changes:
16
- * - Adds trailing commas to simplify diffs.
17
- * - Prints `undefined` as `undefined`.
18
- * - Errors on unhandled types instead of skipping keys.
19
- * - If an object has a key `kind` with a string value, prints the object as:
20
- * SomeKind {
21
- * prop: value,
22
- * }
23
- */
24
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
25
4
  var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
26
5
  function printAST(ast) {
27
- return printASTImpl(ast, '');
6
+ return printASTImpl(ast, "");
28
7
  }
29
8
  function printASTImpl(ast, indent) {
30
9
  switch (typeof ast) {
31
- case 'undefined':
32
- return 'undefined';
33
- case 'object':
10
+ case "undefined":
11
+ return "undefined";
12
+ case "object":
34
13
  {
35
14
  if (ast === null) {
36
- return 'null';
15
+ return "null";
37
16
  } else if (Array.isArray(ast)) {
38
17
  if (ast.length === 0) {
39
- return '[]';
18
+ return "[]";
40
19
  }
41
- var result = '[\n';
42
- var itemIndent = indent + ' ';
20
+ var result = "[\n";
21
+ var itemIndent = indent + " ";
43
22
  var _iterator = (0, _createForOfIteratorHelper2["default"])(ast),
44
23
  _step;
45
24
  try {
46
25
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
47
26
  var item = _step.value;
48
- result += itemIndent + printASTImpl(item, itemIndent) + ',\n';
27
+ result += itemIndent + printASTImpl(item, itemIndent) + ",\n";
49
28
  }
50
29
  } catch (err) {
51
30
  _iterator.e(err);
52
31
  } finally {
53
32
  _iterator.f();
54
33
  }
55
- result += indent + ']';
34
+ result += indent + "]";
56
35
  return result;
57
- } else if (typeof ast.kind === 'string') {
36
+ } else if (typeof ast.kind === "string") {
58
37
  var _result = "".concat(ast.kind, " {\n");
59
- var keyIndent = indent + ' ';
38
+ var keyIndent = indent + " ";
60
39
  for (var _i = 0, _Object$entries = Object.entries(ast); _i < _Object$entries.length; _i++) {
61
40
  var _Object$entries$_i = _Object$entries[_i],
62
41
  key = _Object$entries$_i[0],
63
42
  value = _Object$entries$_i[1];
64
- if (key === 'kind') {
43
+ if (key === "kind") {
65
44
  continue;
66
45
  }
67
46
  _result += "".concat(keyIndent).concat(key, ": ").concat(printASTImpl(value, keyIndent), ",\n");
68
47
  }
69
- _result += indent + '}';
48
+ _result += indent + "}";
70
49
  return _result;
71
- } else if (typeof ast.toJSON === 'function') {
72
- return printASTImpl(
73
- // $FlowFixMe[incompatible-use] - we have to unsafely assume no arguments here
74
- ast.toJSON(), indent);
50
+ } else if (typeof ast.toJSON === "function") {
51
+ return printASTImpl(ast.toJSON(), indent);
75
52
  } else {
76
- var _result2 = '{\n';
77
- var _keyIndent = indent + ' ';
53
+ var _result2 = "{\n";
54
+ var _keyIndent = indent + " ";
78
55
  for (var _i2 = 0, _Object$entries2 = Object.entries(ast); _i2 < _Object$entries2.length; _i2++) {
79
56
  var _Object$entries2$_i = _Object$entries2[_i2],
80
57
  _key = _Object$entries2$_i[0],
81
58
  _value = _Object$entries2$_i[1];
82
59
  _result2 += "".concat(_keyIndent).concat(JSON.stringify(_key), ": ").concat(printASTImpl(_value, _keyIndent), ",\n");
83
60
  }
84
- _result2 += indent + '}';
61
+ _result2 += indent + "}";
85
62
  return _result2;
86
63
  }
87
64
  }
88
- case 'string':
89
- case 'number':
90
- case 'boolean':
91
- return JSON.stringify(ast, null, 2).replace('\n', '\n' + indent);
65
+ case "string":
66
+ case "number":
67
+ case "boolean":
68
+ return JSON.stringify(ast, null, 2).replace("\n", "\n" + indent);
92
69
  default:
93
70
  throw new Error("printAST doesn't handle values where " + "typeof value === '".concat(typeof ast, "'."));
94
71
  }
@@ -1,31 +1,13 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- /**
15
- * A helper to create a deep clone of a value, plain Object, or array of such.
16
- *
17
- * Does not support RegExp, Date, other classes, or self-referential values.
18
- */
19
3
  function simpleClone(value) {
20
4
  if (Array.isArray(value)) {
21
- // $FlowFixMe[incompatible-return]
22
5
  return value.map(simpleClone);
23
- } else if (value != null && typeof value === 'object') {
6
+ } else if (value != null && typeof value === "object") {
24
7
  var result = {};
25
8
  for (var key in value) {
26
9
  result[key] = simpleClone(value[key]);
27
10
  }
28
- // $FlowFixMe[incompatible-return]
29
11
  return result;
30
12
  } else {
31
13
  return value;
@@ -1,23 +1,5 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- /* global jest */
15
- /**
16
- * Takes an environment and augments it with a mock implementation of `retain`
17
- * that tracks what operations are currently retained. Also returns the Jest mock
18
- * `release` function for backwards-compatibility with existing tests, but you
19
- * should use `isOperationRetained` for new tests as it is much less error-prone.
20
- */
21
3
  function trackRetentionForEnvironment(environment) {
22
4
  var retainCountsByOperation = new Map();
23
5
  var release = jest.fn(function (id) {
@@ -29,9 +11,6 @@ function trackRetentionForEnvironment(environment) {
29
11
  retainCountsByOperation.set(id, existing - 1);
30
12
  }
31
13
  });
32
-
33
- // $FlowFixMe[cannot-write] safe to do for mocking
34
- // $FlowFixMe[missing-local-annot] error found when enabling Flow LTI mode
35
14
  environment.retain = jest.fn(function (operation) {
36
15
  var _retainCountsByOperat2;
37
16
  var id = operation.request.identifier;
package/lib/warnings.js CHANGED
@@ -1,20 +1,8 @@
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
- *
8
- * @format
9
- * @oncall relay
10
- */
1
+ "use strict";
11
2
 
12
- 'use strict';
13
-
14
- /* global jest */
15
- var _require = require('./consoleErrorsAndWarnings'),
3
+ var _require = require("./consoleErrorsAndWarnings"),
16
4
  createConsoleInterceptionSystem = _require.createConsoleInterceptionSystem;
17
- var warningsSystem = createConsoleInterceptionSystem('warning', 'expectToWarn', function (impl) {
5
+ var warningsSystem = createConsoleInterceptionSystem("warning", "expectToWarn", function (impl) {
18
6
  jest.mock("fbjs/lib/warning", function () {
19
7
  return jest.fn(function (condition, format) {
20
8
  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
@@ -30,37 +18,15 @@ var warningsSystem = createConsoleInterceptionSystem('warning', 'expectToWarn',
30
18
  });
31
19
  });
32
20
  });
33
-
34
- /**
35
- * Mocks the `warning` module to turn warnings into errors. Any expected
36
- * warnings need to be explicitly expected with `expectWarningWillFire(message)`.
37
- *
38
- * NOTE: This should be called on top of a test file. The test should NOT
39
- * use `jest.resetModules()` or manually mock `warning`.
40
- */
41
21
  function disallowWarnings() {
42
22
  warningsSystem.disallowMessages();
43
23
  }
44
-
45
- /**
46
- * Expect a warning with the given message. If the message isn't fired in the
47
- * current test, the test will fail.
48
- */
49
24
  function expectWarningWillFire(message, options) {
50
25
  warningsSystem.expectMessageWillFire(message, options);
51
26
  }
52
-
53
- /**
54
- * Expect the callback `fn` to trigger the warning message and otherwise fail.
55
- */
56
27
  function expectToWarn(message, fn) {
57
28
  return warningsSystem.expectMessage(message, fn);
58
29
  }
59
-
60
- /**
61
- * Expect the callback `fn` to trigger all warning messages (in sequence)
62
- * or otherwise fail.
63
- */
64
30
  function expectToWarnMany(messages, fn) {
65
31
  return warningsSystem.expectMessageMany(messages, fn);
66
32
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "relay-test-utils-internal",
3
3
  "description": "Internal utilities for testing Relay.",
4
- "version": "0.0.0-main-7a486fd5",
4
+ "version": "0.0.0-main-8aed8721",
5
5
  "keywords": [
6
6
  "graphql",
7
7
  "relay"
@@ -17,7 +17,7 @@
17
17
  "dependencies": {
18
18
  "@babel/runtime": "^7.0.0",
19
19
  "fbjs": "^3.0.2",
20
- "relay-runtime": "0.0.0-main-7a486fd5"
20
+ "relay-runtime": "0.0.0-main-8aed8721"
21
21
  },
22
22
  "directories": {
23
23
  "": "./"
@@ -1,4 +1,4 @@
1
1
  /**
2
- * Relay v0.0.0-main-7a486fd5
2
+ * Relay v0.0.0-main-8aed8721
3
3
  */
4
4
  module.exports=function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.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 o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));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=3)}([function(e,n){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,n,t){"use strict";var r=(0,t(0).default)(t(5)),o=console.error;e.exports={createConsoleInterceptionSystem:function(e,n,t){var i=!1,c=[],a=[],s=[],u=e.charAt(0).toUpperCase()+e.slice(1),l=u+"s",f="disallow".concat(u,"s");function p(e){var n=c.findIndex((function(n){return e.startsWith(n)})),t=a.findIndex((function(n){return e.startsWith(n)}));if(s.length>0&&e.startsWith(s[0]))s.shift();else if(n>=0)c.splice(n,1);else{if(!(t>=0))throw o("Unexpected ".concat(u,": ")+e),new Error("".concat(u,": ")+e);a.splice(t,1)}}function d(t,o){if(s.length>0)throw new Error("Cannot nest ".concat(n,"() calls."));s.push.apply(s,(0,r.default)(t));var i=o();if(s.length>0){var c=s.toString();throw s.length=0,new Error("Expected ".concat(e," in callback: ").concat(c))}return i}return{disallowMessages:function(){if(i)throw new Error("".concat(f," should be called only once."));i=!0,t(p),afterEach((function(){if(a.length=0,s.length=0,c.length>0){var n=new Error("Some ".concat(c.length," expected ").concat(e,"s where not triggered:\n\n")+Array.from(c,(function(e){return" * ".concat(e)})).join("\n")+"\n");throw c.length=0,n}}))},expectMessageWillFire:function(e,n){if(!i)throw new Error("".concat(f," needs to be called before expect").concat(l,"WillFire"));for(var t=!0===(null==n?void 0:n.optional),r=0;r<(null!==(o=null==n?void 0:n.count)&&void 0!==o?o:1);r++){var o;(t?a:c).push(e)}},expectMessage:function(e,n){return d([e],n)},expectMessageMany:d}}}},function(e,n){e.exports=require("relay-runtime")},function(e,n,t){"use strict";var r=t(4),o=r.disallowConsoleErrors,i=r.expectConsoleError,c=r.expectConsoleErrorsMany,a=r.expectConsoleErrorWillFire,s=t(6),u=s.disallowConsoleWarnings,l=s.expectConsoleWarning,f=s.expectConsoleWarningsMany,p=s.expectConsoleWarningWillFire,d=t(7),g=t(9),x=g.FIXTURE_TAG,h=g.generateTestsFromFixtures,y=t(14),v=t(16),w=t(18),b=t(19),m=t(20),W=m.disallowWarnings,E=m.expectToWarn,C=m.expectToWarnMany,M=m.expectWarningWillFire,F=t(21),j=F.createMockEnvironment,S=F.unwrapContainer;e.exports={cannotReadPropertyOfUndefined__DEPRECATED:function(e){var n=process.version.match(/^v(\d+)\./),t=null==n?null:parseInt(n[1],10);return null==t||t<16?"Cannot read property '".concat(e,"' of undefined"):"Cannot read properties of undefined (reading '".concat(e,"')")},createMockEnvironment:j,describeWithFeatureFlags:d,disallowConsoleErrors:o,disallowConsoleWarnings:u,disallowWarnings:W,expectConsoleError:i,expectConsoleErrorsMany:c,expectConsoleErrorWillFire:a,expectConsoleWarningWillFire:p,expectConsoleWarning:l,expectConsoleWarningsMany:f,expectToWarn:E,expectToWarnMany:C,expectWarningWillFire:M,FIXTURE_TAG:x,generateTestsFromFixtures:h,matchers:y,printAST:v,simpleClone:w,trackRetentionForEnvironment:b,unwrapContainer:S}},function(e,n,t){"use strict";var r=(0,t(1).createConsoleInterceptionSystem)("error","expectConsoleError",(function(e){jest.spyOn(console,"error").mockImplementation(e)}));e.exports={disallowConsoleErrors:function(){r.disallowMessages()},expectConsoleErrorWillFire:function(e,n){r.expectMessageWillFire(e,n)},expectConsoleError:function(e,n){return r.expectMessage(e,n)},expectConsoleErrorsMany:function(e,n){return r.expectMessageMany(e,n)}}},function(e,n){e.exports=require("@babel/runtime/helpers/toConsumableArray")},function(e,n,t){"use strict";var r=(0,t(1).createConsoleInterceptionSystem)("warning","expectConsoleWarning",(function(e){jest.spyOn(console,"warn").mockImplementation(e)}));e.exports={disallowConsoleWarnings:function(){r.disallowMessages()},expectConsoleWarningWillFire:function(e,n){r.expectMessageWillFire(e,n)},expectConsoleWarning:function(e,n){return r.expectMessage(e,n)},expectConsoleWarningsMany:function(e,n){return r.expectMessageMany(e,n)}}},function(e,n,t){"use strict";var r=(0,t(0).default)(t(8));e.exports=function(e,n,o){describe.each(e)("".concat(n," - Feature flags: %o"),(function(e){var n;beforeEach((function(){var o=t(2).RelayFeatureFlags;n=(0,r.default)({},o),Object.assign(o,e)})),afterEach((function(){var e=t(2).RelayFeatureFlags;Object.assign(e,n)})),o()}))}},function(e,n){e.exports=require("@babel/runtime/helpers/objectSpread2")},function(e,n,t){"use strict";var r=(0,t(0).default)(t(10)),o=t(11),i=t(12),c=t(13),a=Symbol.for("FIXTURE_TAG");expect.addSnapshotSerializer({print:function(e){return Object.keys(e).map((function(n){return"~~~~~~~~~~ ".concat(n.toUpperCase()," ~~~~~~~~~~\n").concat(e[n])})).join("\n")},test:function(e){return e&&!0===e[a]}}),e.exports={generateTestsFromFixtures:function(e,n){var t=i.readdirSync(e);test("has fixtures in ".concat(e),(function(){expect(t.length>0).toBe(!0)}));var s=t.filter((function(e){return e.startsWith("only.")}));s.length&&(test.skip.each(t.filter((function(e){return!e.startsWith("only.")})))("matches expected output: %s",(function(){})),t=s),test.each(t)("matches expected output: %s",(function(t){var s,u=i.readFileSync(c.join(e,t),"utf8"),l=o(u,n,t);expect((s={},(0,r.default)(s,a,!0),(0,r.default)(s,"input",u),(0,r.default)(s,"output",l),s)).toMatchSnapshot()}))},FIXTURE_TAG:a}},function(e,n){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,n,t){"use strict";e.exports=function(e,n,t){if(/^# *expected-to-throw/.test(e)||/\.error\.\w+$/.test(t)){var r;try{r=n(e)}catch(e){return"THROWN EXCEPTION:\n\n".concat(e.toString())}throw new Error("Expected test file '".concat(t,"' to throw, but it passed:\n").concat(r))}return n(e)}},function(e,n){e.exports=require("fs")},function(e,n){e.exports=require("path")},function(e,n,t){"use strict";e.exports={toBeDeeplyFrozen:function(e){return function e(n){if(expect(Object.isFrozen(n)).toBe(!0),Array.isArray(n))n.forEach((function(n){return e(n)}));else if("object"==typeof n&&null!==n)for(var t in n)e(n[t])}(e),{pass:!0}},toWarn:function(e,n){var r=this.isNot;function o(e){return e instanceof RegExp?e.toString():JSON.stringify(e)}function i(e){return"["+e.map(o).join(", ")+"]"}function c(e){return e.length?e.map((function(e){return i([!!e[0]].concat(e.slice(1)))})).join(", "):"[]"}var a=t(15);if(!a.mock)throw new Error("toWarn(): Requires `jest.mock('warning')`.");var s=a.mock.calls.length;e();var u=a.mock.calls.slice(s);return n?(Array.isArray(n)||(n=[n]),{pass:!!u.find((function(e){return e.length===n.length+1&&e.every((function(e,t){if(!t)return!e;var r=n[t-1];return r instanceof RegExp?r.test(e):e===r}))})),message:function(){return"Expected ".concat(r?"not ":"","to warn: ")+"".concat(i([!1].concat(n))," but ")+"`warning` received the following calls: "+"".concat(c(u),".")}}):{pass:!!u.filter((function(e){return!e[0]})).length,message:function(){return"Expected ".concat(r?"not ":"","to warn but ")+"`warning` received the following calls: "+"".concat(c(u),".")}}}}},function(e,n){e.exports=require("fbjs/lib/warning")},function(e,n,t){"use strict";var r=(0,t(0).default)(t(17));e.exports=function(e){return function e(n,t){switch(typeof n){case"undefined":return"undefined";case"object":if(null===n)return"null";if(Array.isArray(n)){if(0===n.length)return"[]";var o,i="[\n",c=t+" ",a=(0,r.default)(n);try{for(a.s();!(o=a.n()).done;){var s=o.value;i+=c+e(s,c)+",\n"}}catch(e){a.e(e)}finally{a.f()}return i+=t+"]"}if("string"==typeof n.kind){for(var u="".concat(n.kind," {\n"),l=t+" ",f=0,p=Object.entries(n);f<p.length;f++){var d=p[f],g=d[0],x=d[1];"kind"!==g&&(u+="".concat(l).concat(g,": ").concat(e(x,l),",\n"))}return u+=t+"}"}if("function"==typeof n.toJSON)return e(n.toJSON(),t);for(var h="{\n",y=t+" ",v=0,w=Object.entries(n);v<w.length;v++){var b=w[v],m=b[0],W=b[1];h+="".concat(y).concat(JSON.stringify(m),": ").concat(e(W,y),",\n")}return h+=t+"}";case"string":case"number":case"boolean":return JSON.stringify(n,null,2).replace("\n","\n"+t);default:throw new Error("printAST doesn't handle values where "+"typeof value === '".concat(typeof n,"'."))}}(e,"")}},function(e,n){e.exports=require("@babel/runtime/helpers/createForOfIteratorHelper")},function(e,n,t){"use strict";e.exports=function e(n){if(Array.isArray(n))return n.map(e);if(null!=n&&"object"==typeof n){var t={};for(var r in n)t[r]=e(n[r]);return t}return n}},function(e,n,t){"use strict";e.exports=function(e){var n=new Map,t=jest.fn((function(e){var t,r=null!==(t=n.get(e))&&void 0!==t?t:NaN;1===r?n.delete(e):n.set(e,r-1)}));return e.retain=jest.fn((function(e){var r,o=e.request.identifier,i=null!==(r=n.get(o))&&void 0!==r?r:0;n.set(o,i+1);var c=!1;return{dispose:function(){c||t(o),c=!0}}})),{release_DEPRECATED:t,isOperationRetained:function(e){var t,r=e.request.identifier;return(null!==(t=n.get(r))&&void 0!==t?t:0)>0}}}},function(e,n,t){"use strict";var r=(0,t(1).createConsoleInterceptionSystem)("warning","expectToWarn",(function(e){jest.mock("fbjs/lib/warning",(function(){return jest.fn((function(n,t){for(var r=arguments.length,o=new Array(r>2?r-2:0),i=2;i<r;i++)o[i-2]=arguments[i];if(!n){var c=0,a=t.replace(/%s/g,(function(){return String(o[c++])}));e(a)}}))}))}));e.exports={disallowWarnings:function(){r.disallowMessages()},expectWarningWillFire:function(e,n){r.expectMessageWillFire(e,n)},expectToWarn:function(e,n){return r.expectMessage(e,n)},expectToWarnMany:function(e,n){return r.expectMessageMany(e,n)}}},function(e,n){e.exports=require("relay-test-utils")}]);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Relay v0.0.0-main-7a486fd5
2
+ * Relay v0.0.0-main-8aed8721
3
3
  *
4
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
5
5
  *