@testing-library/react-native 12.3.0 → 12.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/build/act.js +1 -2
  2. package/build/act.js.map +1 -1
  3. package/build/config.d.ts +1 -0
  4. package/build/config.js.map +1 -1
  5. package/build/fireEvent.js +1 -2
  6. package/build/fireEvent.js.map +1 -1
  7. package/build/helpers/accessiblity.d.ts +4 -0
  8. package/build/helpers/accessiblity.js +35 -6
  9. package/build/helpers/accessiblity.js.map +1 -1
  10. package/build/helpers/format.js +3 -4
  11. package/build/helpers/format.js.map +1 -1
  12. package/build/helpers/host-component-names.d.ts +5 -0
  13. package/build/helpers/host-component-names.js +14 -2
  14. package/build/helpers/host-component-names.js.map +1 -1
  15. package/build/helpers/object.d.ts +1 -0
  16. package/build/helpers/object.js +16 -0
  17. package/build/helpers/object.js.map +1 -0
  18. package/build/helpers/wrap-async.d.ts +7 -0
  19. package/build/helpers/wrap-async.js +45 -0
  20. package/build/helpers/wrap-async.js.map +1 -0
  21. package/build/matchers/extend-expect.d.js.map +1 -1
  22. package/build/matchers/extend-expect.js +12 -0
  23. package/build/matchers/extend-expect.js.map +1 -1
  24. package/build/matchers/index.d.ts +7 -1
  25. package/build/matchers/index.js +43 -1
  26. package/build/matchers/index.js.map +1 -1
  27. package/build/matchers/to-be-busy.d.ts +6 -0
  28. package/build/matchers/to-be-busy.js +20 -0
  29. package/build/matchers/to-be-busy.js.map +1 -0
  30. package/build/matchers/to-be-collapsed.d.ts +6 -0
  31. package/build/matchers/to-be-collapsed.js +20 -0
  32. package/build/matchers/to-be-collapsed.js.map +1 -0
  33. package/build/matchers/to-be-expanded.d.ts +6 -0
  34. package/build/matchers/to-be-expanded.js +20 -0
  35. package/build/matchers/to-be-expanded.js.map +1 -0
  36. package/build/matchers/to-be-selected.d.ts +6 -0
  37. package/build/matchers/to-be-selected.js +20 -0
  38. package/build/matchers/to-be-selected.js.map +1 -0
  39. package/build/matchers/to-contain-element.d.ts +6 -0
  40. package/build/matchers/to-contain-element.js +26 -0
  41. package/build/matchers/to-contain-element.js.map +1 -0
  42. package/build/matchers/to-have-style.d.ts +8 -0
  43. package/build/matchers/to-have-style.js +52 -0
  44. package/build/matchers/to-have-style.js.map +1 -0
  45. package/build/matchers/utils.js +2 -2
  46. package/build/matchers/utils.js.map +1 -1
  47. package/build/react-versions.js +2 -2
  48. package/build/react-versions.js.map +1 -1
  49. package/build/render.js +5 -4
  50. package/build/render.js.map +1 -1
  51. package/build/screen.js +1 -2
  52. package/build/screen.js.map +1 -1
  53. package/build/shallow.js +2 -2
  54. package/build/shallow.js.map +1 -1
  55. package/build/test-utils/events.d.ts +1 -2
  56. package/build/test-utils/events.js.map +1 -1
  57. package/build/user-event/event-builder/common.js +1 -2
  58. package/build/user-event/event-builder/common.js.map +1 -1
  59. package/build/user-event/event-builder/index.d.ts +30 -0
  60. package/build/user-event/event-builder/index.js +3 -2
  61. package/build/user-event/event-builder/index.js.map +1 -1
  62. package/build/user-event/event-builder/scroll-view.d.ts +42 -0
  63. package/build/user-event/event-builder/scroll-view.js +52 -0
  64. package/build/user-event/event-builder/scroll-view.js.map +1 -0
  65. package/build/user-event/event-builder/text-input.js +1 -2
  66. package/build/user-event/event-builder/text-input.js.map +1 -1
  67. package/build/user-event/index.d.ts +2 -0
  68. package/build/user-event/index.js +3 -3
  69. package/build/user-event/index.js.map +1 -1
  70. package/build/user-event/press/constants.js +2 -4
  71. package/build/user-event/press/constants.js.map +1 -1
  72. package/build/user-event/press/press.js +9 -13
  73. package/build/user-event/press/press.js.map +1 -1
  74. package/build/user-event/scroll/index.d.ts +1 -0
  75. package/build/user-event/scroll/index.js +19 -0
  76. package/build/user-event/scroll/index.js.map +1 -0
  77. package/build/user-event/scroll/scrollTo.d.ts +16 -0
  78. package/build/user-event/scroll/scrollTo.js +82 -0
  79. package/build/user-event/scroll/scrollTo.js.map +1 -0
  80. package/build/user-event/scroll/state.d.ts +4 -0
  81. package/build/user-event/scroll/state.js +18 -0
  82. package/build/user-event/scroll/state.js.map +1 -0
  83. package/build/user-event/scroll/utils.d.ts +20 -0
  84. package/build/user-event/scroll/utils.js +68 -0
  85. package/build/user-event/scroll/utils.js.map +1 -0
  86. package/build/user-event/setup/setup.d.ts +8 -0
  87. package/build/user-event/setup/setup.js +34 -6
  88. package/build/user-event/setup/setup.js.map +1 -1
  89. package/build/waitFor.js +2 -26
  90. package/build/waitFor.js.map +1 -1
  91. package/build/within.js +1 -2
  92. package/build/within.js.map +1 -1
  93. package/package.json +21 -19
@@ -3,12 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "toBeBusy", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _toBeBusy.toBeBusy;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "toBeChecked", {
7
13
  enumerable: true,
8
14
  get: function () {
9
15
  return _toBeChecked.toBeChecked;
10
16
  }
11
17
  });
18
+ Object.defineProperty(exports, "toBeCollapsed", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _toBeCollapsed.toBeCollapsed;
22
+ }
23
+ });
12
24
  Object.defineProperty(exports, "toBeDisabled", {
13
25
  enumerable: true,
14
26
  get: function () {
@@ -27,6 +39,12 @@ Object.defineProperty(exports, "toBeEnabled", {
27
39
  return _toBeDisabled.toBeEnabled;
28
40
  }
29
41
  });
42
+ Object.defineProperty(exports, "toBeExpanded", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _toBeExpanded.toBeExpanded;
46
+ }
47
+ });
30
48
  Object.defineProperty(exports, "toBeOnTheScreen", {
31
49
  enumerable: true,
32
50
  get: function () {
@@ -39,12 +57,24 @@ Object.defineProperty(exports, "toBePartiallyChecked", {
39
57
  return _toBePartiallyChecked.toBePartiallyChecked;
40
58
  }
41
59
  });
60
+ Object.defineProperty(exports, "toBeSelected", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _toBeSelected.toBeSelected;
64
+ }
65
+ });
42
66
  Object.defineProperty(exports, "toBeVisible", {
43
67
  enumerable: true,
44
68
  get: function () {
45
69
  return _toBeVisible.toBeVisible;
46
70
  }
47
71
  });
72
+ Object.defineProperty(exports, "toContainElement", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _toContainElement.toContainElement;
76
+ }
77
+ });
48
78
  Object.defineProperty(exports, "toHaveDisplayValue", {
49
79
  enumerable: true,
50
80
  get: function () {
@@ -57,19 +87,31 @@ Object.defineProperty(exports, "toHaveProp", {
57
87
  return _toHaveProp.toHaveProp;
58
88
  }
59
89
  });
90
+ Object.defineProperty(exports, "toHaveStyle", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _toHaveStyle.toHaveStyle;
94
+ }
95
+ });
60
96
  Object.defineProperty(exports, "toHaveTextContent", {
61
97
  enumerable: true,
62
98
  get: function () {
63
99
  return _toHaveTextContent.toHaveTextContent;
64
100
  }
65
101
  });
66
- var _toBeOnTheScreen = require("./to-be-on-the-screen");
102
+ var _toBeBusy = require("./to-be-busy");
67
103
  var _toBeChecked = require("./to-be-checked");
104
+ var _toBeCollapsed = require("./to-be-collapsed");
68
105
  var _toBeDisabled = require("./to-be-disabled");
69
106
  var _toBeEmptyElement = require("./to-be-empty-element");
107
+ var _toBeExpanded = require("./to-be-expanded");
108
+ var _toBeOnTheScreen = require("./to-be-on-the-screen");
70
109
  var _toBePartiallyChecked = require("./to-be-partially-checked");
110
+ var _toBeSelected = require("./to-be-selected");
71
111
  var _toBeVisible = require("./to-be-visible");
112
+ var _toContainElement = require("./to-contain-element");
72
113
  var _toHaveDisplayValue = require("./to-have-display-value");
73
114
  var _toHaveProp = require("./to-have-prop");
115
+ var _toHaveStyle = require("./to-have-style");
74
116
  var _toHaveTextContent = require("./to-have-text-content");
75
117
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_toBeOnTheScreen","require","_toBeChecked","_toBeDisabled","_toBeEmptyElement","_toBePartiallyChecked","_toBeVisible","_toHaveDisplayValue","_toHaveProp","_toHaveTextContent"],"sources":["../../src/matchers/index.tsx"],"sourcesContent":["export { toBeOnTheScreen } from './to-be-on-the-screen';\nexport { toBeChecked } from './to-be-checked';\nexport { toBeDisabled, toBeEnabled } from './to-be-disabled';\nexport { toBeEmptyElement } from './to-be-empty-element';\nexport { toBePartiallyChecked } from './to-be-partially-checked';\nexport { toBeVisible } from './to-be-visible';\nexport { toHaveDisplayValue } from './to-have-display-value';\nexport { toHaveProp } from './to-have-prop';\nexport { toHaveTextContent } from './to-have-text-content';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,kBAAA,GAAAR,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_toBeBusy","require","_toBeChecked","_toBeCollapsed","_toBeDisabled","_toBeEmptyElement","_toBeExpanded","_toBeOnTheScreen","_toBePartiallyChecked","_toBeSelected","_toBeVisible","_toContainElement","_toHaveDisplayValue","_toHaveProp","_toHaveStyle","_toHaveTextContent"],"sources":["../../src/matchers/index.tsx"],"sourcesContent":["export { toBeBusy } from './to-be-busy';\nexport { toBeChecked } from './to-be-checked';\nexport { toBeCollapsed } from './to-be-collapsed';\nexport { toBeDisabled, toBeEnabled } from './to-be-disabled';\nexport { toBeEmptyElement } from './to-be-empty-element';\nexport { toBeExpanded } from './to-be-expanded';\nexport { toBeOnTheScreen } from './to-be-on-the-screen';\nexport { toBePartiallyChecked } from './to-be-partially-checked';\nexport { toBeSelected } from './to-be-selected';\nexport { toBeVisible } from './to-be-visible';\nexport { toContainElement } from './to-contain-element';\nexport { toHaveDisplayValue } from './to-have-display-value';\nexport { toHaveProp } from './to-have-prop';\nexport { toHaveStyle } from './to-have-style';\nexport { toHaveTextContent } from './to-have-text-content';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AACA,IAAAU,iBAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAX,OAAA;AACA,IAAAY,WAAA,GAAAZ,OAAA;AACA,IAAAa,YAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="jest" />
2
+ import { ReactTestInstance } from 'react-test-renderer';
3
+ export declare function toBeBusy(this: jest.MatcherContext, element: ReactTestInstance): {
4
+ pass: NonNullable<boolean | undefined>;
5
+ message: () => string;
6
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toBeBusy = toBeBusy;
7
+ var _jestMatcherUtils = require("jest-matcher-utils");
8
+ var _accessiblity = require("../helpers/accessiblity");
9
+ var _utils = require("./utils");
10
+ function toBeBusy(element) {
11
+ (0, _utils.checkHostElement)(element, toBeBusy, this);
12
+ return {
13
+ pass: (0, _accessiblity.isElementBusy)(element),
14
+ message: () => {
15
+ const matcher = (0, _jestMatcherUtils.matcherHint)(`${this.isNot ? '.not' : ''}.toBeBusy`, 'element', '');
16
+ return [matcher, '', `Received element is ${this.isNot ? '' : 'not '}busy:`, (0, _utils.formatElement)(element)].join('\n');
17
+ }
18
+ };
19
+ }
20
+ //# sourceMappingURL=to-be-busy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-be-busy.js","names":["_jestMatcherUtils","require","_accessiblity","_utils","toBeBusy","element","checkHostElement","pass","isElementBusy","message","matcher","matcherHint","isNot","formatElement","join"],"sources":["../../src/matchers/to-be-busy.tsx"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { matcherHint } from 'jest-matcher-utils';\nimport { isElementBusy } from '../helpers/accessiblity';\nimport { checkHostElement, formatElement } from './utils';\n\nexport function toBeBusy(\n this: jest.MatcherContext,\n element: ReactTestInstance\n) {\n checkHostElement(element, toBeBusy, this);\n\n return {\n pass: isElementBusy(element),\n message: () => {\n const matcher = matcherHint(\n `${this.isNot ? '.not' : ''}.toBeBusy`,\n 'element',\n ''\n );\n return [\n matcher,\n '',\n `Received element is ${this.isNot ? '' : 'not '}busy:`,\n formatElement(element),\n ].join('\\n');\n },\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,SAASG,QAAQA,CAEtBC,OAA0B,EAC1B;EACA,IAAAC,uBAAgB,EAACD,OAAO,EAAED,QAAQ,EAAE,IAAI,CAAC;EAEzC,OAAO;IACLG,IAAI,EAAE,IAAAC,2BAAa,EAACH,OAAO,CAAC;IAC5BI,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,OAAO,GAAG,IAAAC,6BAAW,EACxB,GAAE,IAAI,CAACC,KAAK,GAAG,MAAM,GAAG,EAAG,WAAU,EACtC,SAAS,EACT,EACF,CAAC;MACD,OAAO,CACLF,OAAO,EACP,EAAE,EACD,uBAAsB,IAAI,CAACE,KAAK,GAAG,EAAE,GAAG,MAAO,OAAM,EACtD,IAAAC,oBAAa,EAACR,OAAO,CAAC,CACvB,CAACS,IAAI,CAAC,IAAI,CAAC;IACd;EACF,CAAC;AACH"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="jest" />
2
+ import { ReactTestInstance } from 'react-test-renderer';
3
+ export declare function toBeCollapsed(this: jest.MatcherContext, element: ReactTestInstance): {
4
+ pass: NonNullable<boolean | undefined>;
5
+ message: () => string;
6
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toBeCollapsed = toBeCollapsed;
7
+ var _jestMatcherUtils = require("jest-matcher-utils");
8
+ var _accessiblity = require("../helpers/accessiblity");
9
+ var _utils = require("./utils");
10
+ function toBeCollapsed(element) {
11
+ (0, _utils.checkHostElement)(element, toBeCollapsed, this);
12
+ return {
13
+ pass: (0, _accessiblity.isElementCollapsed)(element),
14
+ message: () => {
15
+ const matcher = (0, _jestMatcherUtils.matcherHint)(`${this.isNot ? '.not' : ''}.toBeCollapsed`, 'element', '');
16
+ return [matcher, '', `Received element is ${this.isNot ? '' : 'not '}collapsed:`, (0, _utils.formatElement)(element)].join('\n');
17
+ }
18
+ };
19
+ }
20
+ //# sourceMappingURL=to-be-collapsed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-be-collapsed.js","names":["_jestMatcherUtils","require","_accessiblity","_utils","toBeCollapsed","element","checkHostElement","pass","isElementCollapsed","message","matcher","matcherHint","isNot","formatElement","join"],"sources":["../../src/matchers/to-be-collapsed.tsx"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { matcherHint } from 'jest-matcher-utils';\nimport { isElementCollapsed } from '../helpers/accessiblity';\nimport { checkHostElement, formatElement } from './utils';\n\nexport function toBeCollapsed(\n this: jest.MatcherContext,\n element: ReactTestInstance\n) {\n checkHostElement(element, toBeCollapsed, this);\n\n return {\n pass: isElementCollapsed(element),\n message: () => {\n const matcher = matcherHint(\n `${this.isNot ? '.not' : ''}.toBeCollapsed`,\n 'element',\n ''\n );\n return [\n matcher,\n '',\n `Received element is ${this.isNot ? '' : 'not '}collapsed:`,\n formatElement(element),\n ].join('\\n');\n },\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,SAASG,aAAaA,CAE3BC,OAA0B,EAC1B;EACA,IAAAC,uBAAgB,EAACD,OAAO,EAAED,aAAa,EAAE,IAAI,CAAC;EAE9C,OAAO;IACLG,IAAI,EAAE,IAAAC,gCAAkB,EAACH,OAAO,CAAC;IACjCI,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,OAAO,GAAG,IAAAC,6BAAW,EACxB,GAAE,IAAI,CAACC,KAAK,GAAG,MAAM,GAAG,EAAG,gBAAe,EAC3C,SAAS,EACT,EACF,CAAC;MACD,OAAO,CACLF,OAAO,EACP,EAAE,EACD,uBAAsB,IAAI,CAACE,KAAK,GAAG,EAAE,GAAG,MAAO,YAAW,EAC3D,IAAAC,oBAAa,EAACR,OAAO,CAAC,CACvB,CAACS,IAAI,CAAC,IAAI,CAAC;IACd;EACF,CAAC;AACH"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="jest" />
2
+ import { ReactTestInstance } from 'react-test-renderer';
3
+ export declare function toBeExpanded(this: jest.MatcherContext, element: ReactTestInstance): {
4
+ pass: NonNullable<boolean | undefined>;
5
+ message: () => string;
6
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toBeExpanded = toBeExpanded;
7
+ var _jestMatcherUtils = require("jest-matcher-utils");
8
+ var _accessiblity = require("../helpers/accessiblity");
9
+ var _utils = require("./utils");
10
+ function toBeExpanded(element) {
11
+ (0, _utils.checkHostElement)(element, toBeExpanded, this);
12
+ return {
13
+ pass: (0, _accessiblity.isElementExpanded)(element),
14
+ message: () => {
15
+ const matcher = (0, _jestMatcherUtils.matcherHint)(`${this.isNot ? '.not' : ''}.toBeExpanded`, 'element', '');
16
+ return [matcher, '', `Received element is ${this.isNot ? '' : 'not '}expanded:`, (0, _utils.formatElement)(element)].join('\n');
17
+ }
18
+ };
19
+ }
20
+ //# sourceMappingURL=to-be-expanded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-be-expanded.js","names":["_jestMatcherUtils","require","_accessiblity","_utils","toBeExpanded","element","checkHostElement","pass","isElementExpanded","message","matcher","matcherHint","isNot","formatElement","join"],"sources":["../../src/matchers/to-be-expanded.tsx"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { matcherHint } from 'jest-matcher-utils';\nimport { isElementExpanded } from '../helpers/accessiblity';\nimport { checkHostElement, formatElement } from './utils';\n\nexport function toBeExpanded(\n this: jest.MatcherContext,\n element: ReactTestInstance\n) {\n checkHostElement(element, toBeExpanded, this);\n\n return {\n pass: isElementExpanded(element),\n message: () => {\n const matcher = matcherHint(\n `${this.isNot ? '.not' : ''}.toBeExpanded`,\n 'element',\n ''\n );\n return [\n matcher,\n '',\n `Received element is ${this.isNot ? '' : 'not '}expanded:`,\n formatElement(element),\n ].join('\\n');\n },\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,SAASG,YAAYA,CAE1BC,OAA0B,EAC1B;EACA,IAAAC,uBAAgB,EAACD,OAAO,EAAED,YAAY,EAAE,IAAI,CAAC;EAE7C,OAAO;IACLG,IAAI,EAAE,IAAAC,+BAAiB,EAACH,OAAO,CAAC;IAChCI,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,OAAO,GAAG,IAAAC,6BAAW,EACxB,GAAE,IAAI,CAACC,KAAK,GAAG,MAAM,GAAG,EAAG,eAAc,EAC1C,SAAS,EACT,EACF,CAAC;MACD,OAAO,CACLF,OAAO,EACP,EAAE,EACD,uBAAsB,IAAI,CAACE,KAAK,GAAG,EAAE,GAAG,MAAO,WAAU,EAC1D,IAAAC,oBAAa,EAACR,OAAO,CAAC,CACvB,CAACS,IAAI,CAAC,IAAI,CAAC;IACd;EACF,CAAC;AACH"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="jest" />
2
+ import { ReactTestInstance } from 'react-test-renderer';
3
+ export declare function toBeSelected(this: jest.MatcherContext, element: ReactTestInstance): {
4
+ pass: NonNullable<boolean | undefined>;
5
+ message: () => string;
6
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toBeSelected = toBeSelected;
7
+ var _jestMatcherUtils = require("jest-matcher-utils");
8
+ var _accessiblity = require("../helpers/accessiblity");
9
+ var _utils = require("./utils");
10
+ function toBeSelected(element) {
11
+ (0, _utils.checkHostElement)(element, toBeSelected, this);
12
+ return {
13
+ pass: (0, _accessiblity.isElementSelected)(element),
14
+ message: () => {
15
+ const is = this.isNot ? 'is' : 'is not';
16
+ return [(0, _jestMatcherUtils.matcherHint)(`${this.isNot ? '.not' : ''}.toBeSelected`, 'element', ''), '', `Received element ${is} selected`, (0, _utils.formatElement)(element)].join('\n');
17
+ }
18
+ };
19
+ }
20
+ //# sourceMappingURL=to-be-selected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-be-selected.js","names":["_jestMatcherUtils","require","_accessiblity","_utils","toBeSelected","element","checkHostElement","pass","isElementSelected","message","is","isNot","matcherHint","formatElement","join"],"sources":["../../src/matchers/to-be-selected.ts"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { matcherHint } from 'jest-matcher-utils';\nimport { isElementSelected } from '../helpers/accessiblity';\nimport { checkHostElement, formatElement } from './utils';\n\nexport function toBeSelected(\n this: jest.MatcherContext,\n element: ReactTestInstance\n) {\n checkHostElement(element, toBeSelected, this);\n\n return {\n pass: isElementSelected(element),\n message: () => {\n const is = this.isNot ? 'is' : 'is not';\n return [\n matcherHint(`${this.isNot ? '.not' : ''}.toBeSelected`, 'element', ''),\n '',\n `Received element ${is} selected`,\n formatElement(element),\n ].join('\\n');\n },\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEO,SAASG,YAAYA,CAE1BC,OAA0B,EAC1B;EACA,IAAAC,uBAAgB,EAACD,OAAO,EAAED,YAAY,EAAE,IAAI,CAAC;EAE7C,OAAO;IACLG,IAAI,EAAE,IAAAC,+BAAiB,EAACH,OAAO,CAAC;IAChCI,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,EAAE,GAAG,IAAI,CAACC,KAAK,GAAG,IAAI,GAAG,QAAQ;MACvC,OAAO,CACL,IAAAC,6BAAW,EAAE,GAAE,IAAI,CAACD,KAAK,GAAG,MAAM,GAAG,EAAG,eAAc,EAAE,SAAS,EAAE,EAAE,CAAC,EACtE,EAAE,EACD,oBAAmBD,EAAG,WAAU,EACjC,IAAAG,oBAAa,EAACR,OAAO,CAAC,CACvB,CAACS,IAAI,CAAC,IAAI,CAAC;IACd;EACF,CAAC;AACH"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="jest" />
2
+ import { ReactTestInstance } from 'react-test-renderer';
3
+ export declare function toContainElement(this: jest.MatcherContext, container: ReactTestInstance, element: ReactTestInstance | null): {
4
+ pass: boolean;
5
+ message: () => string;
6
+ };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toContainElement = toContainElement;
7
+ var _jestMatcherUtils = require("jest-matcher-utils");
8
+ var _utils = require("./utils");
9
+ function toContainElement(container, element) {
10
+ (0, _utils.checkHostElement)(container, toContainElement, this);
11
+ if (element !== null) {
12
+ (0, _utils.checkHostElement)(element, toContainElement, this);
13
+ }
14
+ let matches = [];
15
+ if (element) {
16
+ matches = container.findAll(node => node === element);
17
+ }
18
+ return {
19
+ pass: matches.length > 0,
20
+ message: () => {
21
+ return [(0, _jestMatcherUtils.matcherHint)(`${this.isNot ? '.not' : ''}.toContainElement`, 'container', 'element'), '', (0, _jestMatcherUtils.RECEIVED_COLOR)(`${(0, _utils.formatElement)(container)} ${this.isNot ? '\n\ncontains:\n\n' : '\n\ndoes not contain:\n\n'} ${(0, _utils.formatElement)(element)}
22
+ `)].join('\n');
23
+ }
24
+ };
25
+ }
26
+ //# sourceMappingURL=to-contain-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-contain-element.js","names":["_jestMatcherUtils","require","_utils","toContainElement","container","element","checkHostElement","matches","findAll","node","pass","length","message","matcherHint","isNot","RECEIVED_COLOR","formatElement","join"],"sources":["../../src/matchers/to-contain-element.tsx"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport { matcherHint, RECEIVED_COLOR } from 'jest-matcher-utils';\nimport { checkHostElement, formatElement } from './utils';\n\nexport function toContainElement(\n this: jest.MatcherContext,\n container: ReactTestInstance,\n element: ReactTestInstance | null\n) {\n checkHostElement(container, toContainElement, this);\n\n if (element !== null) {\n checkHostElement(element, toContainElement, this);\n }\n\n let matches: ReactTestInstance[] = [];\n if (element) {\n matches = container.findAll((node) => node === element);\n }\n\n return {\n pass: matches.length > 0,\n message: () => {\n return [\n matcherHint(\n `${this.isNot ? '.not' : ''}.toContainElement`,\n 'container',\n 'element'\n ),\n '',\n RECEIVED_COLOR(`${formatElement(container)} ${\n this.isNot ? '\\n\\ncontains:\\n\\n' : '\\n\\ndoes not contain:\\n\\n'\n } ${formatElement(element)}\n `),\n ].join('\\n');\n },\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEO,SAASE,gBAAgBA,CAE9BC,SAA4B,EAC5BC,OAAiC,EACjC;EACA,IAAAC,uBAAgB,EAACF,SAAS,EAAED,gBAAgB,EAAE,IAAI,CAAC;EAEnD,IAAIE,OAAO,KAAK,IAAI,EAAE;IACpB,IAAAC,uBAAgB,EAACD,OAAO,EAAEF,gBAAgB,EAAE,IAAI,CAAC;EACnD;EAEA,IAAII,OAA4B,GAAG,EAAE;EACrC,IAAIF,OAAO,EAAE;IACXE,OAAO,GAAGH,SAAS,CAACI,OAAO,CAAEC,IAAI,IAAKA,IAAI,KAAKJ,OAAO,CAAC;EACzD;EAEA,OAAO;IACLK,IAAI,EAAEH,OAAO,CAACI,MAAM,GAAG,CAAC;IACxBC,OAAO,EAAEA,CAAA,KAAM;MACb,OAAO,CACL,IAAAC,6BAAW,EACR,GAAE,IAAI,CAACC,KAAK,GAAG,MAAM,GAAG,EAAG,mBAAkB,EAC9C,WAAW,EACX,SACF,CAAC,EACD,EAAE,EACF,IAAAC,gCAAc,EAAE,GAAE,IAAAC,oBAAa,EAACZ,SAAS,CAAE,IACzC,IAAI,CAACU,KAAK,GAAG,mBAAmB,GAAG,2BACpC,IAAG,IAAAE,oBAAa,EAACX,OAAO,CAAE;AACnC,SAAS,CAAC,CACH,CAACY,IAAI,CAAC,IAAI,CAAC;IACd;EACF,CAAC;AACH"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="jest" />
2
+ import type { ReactTestInstance } from 'react-test-renderer';
3
+ import { ImageStyle, StyleProp, TextStyle, ViewStyle } from 'react-native';
4
+ export type Style = ViewStyle | TextStyle | ImageStyle;
5
+ export declare function toHaveStyle(this: jest.MatcherContext, element: ReactTestInstance, style: StyleProp<Style>): {
6
+ pass: boolean;
7
+ message: () => string;
8
+ };
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.toHaveStyle = toHaveStyle;
7
+ var _reactNative = require("react-native");
8
+ var _jestMatcherUtils = require("jest-matcher-utils");
9
+ var _utils = require("./utils");
10
+ function toHaveStyle(element, style) {
11
+ (0, _utils.checkHostElement)(element, toHaveStyle, this);
12
+ const expected = _reactNative.StyleSheet.flatten(style) ?? {};
13
+ const received = _reactNative.StyleSheet.flatten(element.props.style) ?? {};
14
+ const pass = Object.keys(expected).every(key => this.equals(expected[key], received[key]));
15
+ return {
16
+ pass,
17
+ message: () => {
18
+ const to = this.isNot ? 'not to' : 'to';
19
+ const matcher = (0, _jestMatcherUtils.matcherHint)(`${this.isNot ? '.not' : ''}.toHaveStyle`, 'element', '');
20
+ if (pass) {
21
+ return (0, _utils.formatMessage)(matcher, `Expected element ${to} have style`, formatStyles(expected), 'Received', formatStyles(pickReceivedStyles(expected, received)));
22
+ } else {
23
+ return [matcher, '', expectedDiff(expected, received)].join('\n');
24
+ }
25
+ }
26
+ };
27
+ }
28
+
29
+ /**
30
+ * Generate diff between `expected` and `received` styles.
31
+ */
32
+ function expectedDiff(expected, received) {
33
+ const receivedNarrow = pickReceivedStyles(expected, received);
34
+ return (0, _jestMatcherUtils.diff)(formatStyles(expected), formatStyles(receivedNarrow));
35
+ }
36
+
37
+ /**
38
+ * Pick from `received` style only the keys present in `expected` style.
39
+ */
40
+ function pickReceivedStyles(expected, received) {
41
+ const result = {};
42
+ Object.keys(received).forEach(key => {
43
+ if (expected[key] !== undefined) {
44
+ result[key] = received[key];
45
+ }
46
+ });
47
+ return result;
48
+ }
49
+ function formatStyles(style) {
50
+ return Object.keys(style).sort().map(prop => Array.isArray(style[prop]) ? `${prop}: ${JSON.stringify(style[prop], null, 2)};` : `${prop}: ${style[prop]};`).join('\n');
51
+ }
52
+ //# sourceMappingURL=to-have-style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-have-style.js","names":["_reactNative","require","_jestMatcherUtils","_utils","toHaveStyle","element","style","checkHostElement","expected","StyleSheet","flatten","received","props","pass","Object","keys","every","key","equals","message","to","isNot","matcher","matcherHint","formatMessage","formatStyles","pickReceivedStyles","expectedDiff","join","receivedNarrow","diff","result","forEach","undefined","sort","map","prop","Array","isArray","JSON","stringify"],"sources":["../../src/matchers/to-have-style.tsx"],"sourcesContent":["import type { ReactTestInstance } from 'react-test-renderer';\nimport {\n ImageStyle,\n StyleProp,\n StyleSheet,\n TextStyle,\n ViewStyle,\n} from 'react-native';\nimport { matcherHint, diff } from 'jest-matcher-utils';\nimport { checkHostElement, formatMessage } from './utils';\n\nexport type Style = ViewStyle | TextStyle | ImageStyle;\n\ntype StyleLike = Record<string, unknown>;\n\nexport function toHaveStyle(\n this: jest.MatcherContext,\n element: ReactTestInstance,\n style: StyleProp<Style>\n) {\n checkHostElement(element, toHaveStyle, this);\n\n const expected = (StyleSheet.flatten(style) as StyleLike) ?? {};\n const received = (StyleSheet.flatten(element.props.style) as StyleLike) ?? {};\n\n const pass = Object.keys(expected).every((key) =>\n this.equals(expected[key], received[key])\n );\n\n return {\n pass,\n message: () => {\n const to = this.isNot ? 'not to' : 'to';\n const matcher = matcherHint(\n `${this.isNot ? '.not' : ''}.toHaveStyle`,\n 'element',\n ''\n );\n\n if (pass) {\n return formatMessage(\n matcher,\n `Expected element ${to} have style`,\n formatStyles(expected),\n 'Received',\n formatStyles(pickReceivedStyles(expected, received))\n );\n } else {\n return [matcher, '', expectedDiff(expected, received)].join('\\n');\n }\n },\n };\n}\n\n/**\n * Generate diff between `expected` and `received` styles.\n */\nfunction expectedDiff(expected: StyleLike, received: StyleLike) {\n const receivedNarrow = pickReceivedStyles(expected, received);\n return diff(formatStyles(expected), formatStyles(receivedNarrow));\n}\n\n/**\n * Pick from `received` style only the keys present in `expected` style.\n */\nfunction pickReceivedStyles(expected: StyleLike, received: StyleLike) {\n const result: StyleLike = {};\n Object.keys(received).forEach((key) => {\n if (expected[key] !== undefined) {\n result[key] = received[key];\n }\n });\n\n return result;\n}\n\nfunction formatStyles(style: StyleLike) {\n return Object.keys(style)\n .sort()\n .map((prop) =>\n Array.isArray(style[prop])\n ? `${prop}: ${JSON.stringify(style[prop], null, 2)};`\n : `${prop}: ${style[prop]};`\n )\n .join('\\n');\n}\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAOA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAMO,SAASG,WAAWA,CAEzBC,OAA0B,EAC1BC,KAAuB,EACvB;EACA,IAAAC,uBAAgB,EAACF,OAAO,EAAED,WAAW,EAAE,IAAI,CAAC;EAE5C,MAAMI,QAAQ,GAAIC,uBAAU,CAACC,OAAO,CAACJ,KAAK,CAAC,IAAkB,CAAC,CAAC;EAC/D,MAAMK,QAAQ,GAAIF,uBAAU,CAACC,OAAO,CAACL,OAAO,CAACO,KAAK,CAACN,KAAK,CAAC,IAAkB,CAAC,CAAC;EAE7E,MAAMO,IAAI,GAAGC,MAAM,CAACC,IAAI,CAACP,QAAQ,CAAC,CAACQ,KAAK,CAAEC,GAAG,IAC3C,IAAI,CAACC,MAAM,CAACV,QAAQ,CAACS,GAAG,CAAC,EAAEN,QAAQ,CAACM,GAAG,CAAC,CAC1C,CAAC;EAED,OAAO;IACLJ,IAAI;IACJM,OAAO,EAAEA,CAAA,KAAM;MACb,MAAMC,EAAE,GAAG,IAAI,CAACC,KAAK,GAAG,QAAQ,GAAG,IAAI;MACvC,MAAMC,OAAO,GAAG,IAAAC,6BAAW,EACxB,GAAE,IAAI,CAACF,KAAK,GAAG,MAAM,GAAG,EAAG,cAAa,EACzC,SAAS,EACT,EACF,CAAC;MAED,IAAIR,IAAI,EAAE;QACR,OAAO,IAAAW,oBAAa,EAClBF,OAAO,EACN,oBAAmBF,EAAG,aAAY,EACnCK,YAAY,CAACjB,QAAQ,CAAC,EACtB,UAAU,EACViB,YAAY,CAACC,kBAAkB,CAAClB,QAAQ,EAAEG,QAAQ,CAAC,CACrD,CAAC;MACH,CAAC,MAAM;QACL,OAAO,CAACW,OAAO,EAAE,EAAE,EAAEK,YAAY,CAACnB,QAAQ,EAAEG,QAAQ,CAAC,CAAC,CAACiB,IAAI,CAAC,IAAI,CAAC;MACnE;IACF;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASD,YAAYA,CAACnB,QAAmB,EAAEG,QAAmB,EAAE;EAC9D,MAAMkB,cAAc,GAAGH,kBAAkB,CAAClB,QAAQ,EAAEG,QAAQ,CAAC;EAC7D,OAAO,IAAAmB,sBAAI,EAACL,YAAY,CAACjB,QAAQ,CAAC,EAAEiB,YAAY,CAACI,cAAc,CAAC,CAAC;AACnE;;AAEA;AACA;AACA;AACA,SAASH,kBAAkBA,CAAClB,QAAmB,EAAEG,QAAmB,EAAE;EACpE,MAAMoB,MAAiB,GAAG,CAAC,CAAC;EAC5BjB,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAAC,CAACqB,OAAO,CAAEf,GAAG,IAAK;IACrC,IAAIT,QAAQ,CAACS,GAAG,CAAC,KAAKgB,SAAS,EAAE;MAC/BF,MAAM,CAACd,GAAG,CAAC,GAAGN,QAAQ,CAACM,GAAG,CAAC;IAC7B;EACF,CAAC,CAAC;EAEF,OAAOc,MAAM;AACf;AAEA,SAASN,YAAYA,CAACnB,KAAgB,EAAE;EACtC,OAAOQ,MAAM,CAACC,IAAI,CAACT,KAAK,CAAC,CACtB4B,IAAI,CAAC,CAAC,CACNC,GAAG,CAAEC,IAAI,IACRC,KAAK,CAACC,OAAO,CAAChC,KAAK,CAAC8B,IAAI,CAAC,CAAC,GACrB,GAAEA,IAAK,KAAIG,IAAI,CAACC,SAAS,CAAClC,KAAK,CAAC8B,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAE,GAAE,GAClD,GAAEA,IAAK,KAAI9B,KAAK,CAAC8B,IAAI,CAAE,GAC9B,CAAC,CACAR,IAAI,CAAC,IAAI,CAAC;AACf"}
@@ -13,8 +13,8 @@ var _redent = _interopRequireDefault(require("redent"));
13
13
  var _componentTree = require("../helpers/component-tree");
14
14
  var _formatDefault = require("../helpers/format-default");
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  class HostElementTypeError extends Error {
19
19
  constructor(received, matcherFn, context) {
20
20
  super();
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["_jestMatcherUtils","require","_prettyFormat","_interopRequireWildcard","_redent","_interopRequireDefault","_componentTree","_formatDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","HostElementTypeError","Error","constructor","received","matcherFn","context","captureStackTrace","withType","printWithType","printReceived","e","message","matcherHint","isNot","name","RECEIVED_COLOR","join","checkHostElement","element","isHostElement","formatElement","children","props","childrenToDisplay","undefined","redent","prettyFormat","$$typeof","Symbol","for","type","defaultMapProps","plugins","ReactTestComponent","ReactElement","printFunctionName","printBasicPrototype","highlight","formatElementArray","elements","length","map","formatMessage","matcher","expectedLabel","expectedValue","receivedLabel","receivedValue","EXPECTED_COLOR","formatValue","value","stringify"],"sources":["../../src/matchers/utils.tsx"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport {\n EXPECTED_COLOR,\n RECEIVED_COLOR,\n matcherHint,\n printWithType,\n printReceived,\n stringify,\n} from 'jest-matcher-utils';\nimport prettyFormat, { plugins } from 'pretty-format';\nimport redent from 'redent';\nimport { isHostElement } from '../helpers/component-tree';\nimport { defaultMapProps } from '../helpers/format-default';\n\nclass HostElementTypeError extends Error {\n constructor(\n received: unknown,\n matcherFn: jest.CustomMatcher,\n context: jest.MatcherContext\n ) {\n super();\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, matcherFn);\n }\n\n let withType = '';\n try {\n withType = printWithType('Received', received, printReceived);\n /* istanbul ignore next */\n } catch (e) {\n // Deliberately empty.\n }\n\n this.message = [\n matcherHint(\n `${context.isNot ? '.not' : ''}.${matcherFn.name}`,\n 'received',\n ''\n ),\n '',\n `${RECEIVED_COLOR('received')} value must be a host element.`,\n withType,\n ].join('\\n');\n }\n}\n\n/**\n * Throws HostElementTypeError if passed element is not a host element.\n *\n * @param element ReactTestInstance to check.\n * @param matcherFn Matcher function calling the check used for formatting error.\n * @param context Jest matcher context used for formatting error.\n */\nexport function checkHostElement(\n element: ReactTestInstance | null | undefined,\n matcherFn: jest.CustomMatcher,\n context: jest.MatcherContext\n): asserts element is ReactTestInstance {\n if (!isHostElement(element)) {\n throw new HostElementTypeError(element, matcherFn, context);\n }\n}\n\n/***\n * Format given element as a pretty-printed string.\n *\n * @param element Element to format.\n */\nexport function formatElement(element: ReactTestInstance | null) {\n if (element == null) {\n return ' null';\n }\n\n const { children, ...props } = element.props;\n const childrenToDisplay =\n typeof children === 'string' ? [children] : undefined;\n\n return redent(\n prettyFormat(\n {\n // This prop is needed persuade the prettyFormat that the element is\n // a ReactTestRendererJSON instance, so it is formatted as JSX.\n $$typeof: Symbol.for('react.test.json'),\n type: element.type,\n props: defaultMapProps(props),\n children: childrenToDisplay,\n },\n {\n plugins: [plugins.ReactTestComponent, plugins.ReactElement],\n printFunctionName: false,\n printBasicPrototype: false,\n highlight: true,\n }\n ),\n 2\n );\n}\n\nexport function formatElementArray(elements: ReactTestInstance[]) {\n if (elements.length === 0) {\n return ' (no elements)';\n }\n\n return redent(elements.map(formatElement).join('\\n'), 2);\n}\n\nexport function formatMessage(\n matcher: string,\n expectedLabel: string,\n expectedValue: string | RegExp,\n receivedLabel: string,\n receivedValue: string | null | undefined\n) {\n return [\n `${matcher}\\n`,\n `${expectedLabel}:\\n${EXPECTED_COLOR(\n redent(formatValue(expectedValue), 2)\n )}`,\n `${receivedLabel}:\\n${RECEIVED_COLOR(\n redent(formatValue(receivedValue), 2)\n )}`,\n ].join('\\n');\n}\n\nfunction formatValue(value: unknown) {\n return typeof value === 'string' ? value : stringify(value);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","names":["_jestMatcherUtils","require","_prettyFormat","_interopRequireWildcard","_redent","_interopRequireDefault","_componentTree","_formatDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","HostElementTypeError","Error","constructor","received","matcherFn","context","captureStackTrace","withType","printWithType","printReceived","message","matcherHint","isNot","name","RECEIVED_COLOR","join","checkHostElement","element","isHostElement","formatElement","children","props","childrenToDisplay","undefined","redent","prettyFormat","$$typeof","Symbol","for","type","defaultMapProps","plugins","ReactTestComponent","ReactElement","printFunctionName","printBasicPrototype","highlight","formatElementArray","elements","length","map","formatMessage","matcher","expectedLabel","expectedValue","receivedLabel","receivedValue","EXPECTED_COLOR","formatValue","value","stringify"],"sources":["../../src/matchers/utils.tsx"],"sourcesContent":["import { ReactTestInstance } from 'react-test-renderer';\nimport {\n EXPECTED_COLOR,\n RECEIVED_COLOR,\n matcherHint,\n printWithType,\n printReceived,\n stringify,\n} from 'jest-matcher-utils';\nimport prettyFormat, { plugins } from 'pretty-format';\nimport redent from 'redent';\nimport { isHostElement } from '../helpers/component-tree';\nimport { defaultMapProps } from '../helpers/format-default';\n\nclass HostElementTypeError extends Error {\n constructor(\n received: unknown,\n matcherFn: jest.CustomMatcher,\n context: jest.MatcherContext\n ) {\n super();\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, matcherFn);\n }\n\n let withType = '';\n try {\n withType = printWithType('Received', received, printReceived);\n /* istanbul ignore next */\n } catch (e) {\n // Deliberately empty.\n }\n\n this.message = [\n matcherHint(\n `${context.isNot ? '.not' : ''}.${matcherFn.name}`,\n 'received',\n ''\n ),\n '',\n `${RECEIVED_COLOR('received')} value must be a host element.`,\n withType,\n ].join('\\n');\n }\n}\n\n/**\n * Throws HostElementTypeError if passed element is not a host element.\n *\n * @param element ReactTestInstance to check.\n * @param matcherFn Matcher function calling the check used for formatting error.\n * @param context Jest matcher context used for formatting error.\n */\nexport function checkHostElement(\n element: ReactTestInstance | null | undefined,\n matcherFn: jest.CustomMatcher,\n context: jest.MatcherContext\n): asserts element is ReactTestInstance {\n if (!isHostElement(element)) {\n throw new HostElementTypeError(element, matcherFn, context);\n }\n}\n\n/***\n * Format given element as a pretty-printed string.\n *\n * @param element Element to format.\n */\nexport function formatElement(element: ReactTestInstance | null) {\n if (element == null) {\n return ' null';\n }\n\n const { children, ...props } = element.props;\n const childrenToDisplay =\n typeof children === 'string' ? [children] : undefined;\n\n return redent(\n prettyFormat(\n {\n // This prop is needed persuade the prettyFormat that the element is\n // a ReactTestRendererJSON instance, so it is formatted as JSX.\n $$typeof: Symbol.for('react.test.json'),\n type: element.type,\n props: defaultMapProps(props),\n children: childrenToDisplay,\n },\n {\n plugins: [plugins.ReactTestComponent, plugins.ReactElement],\n printFunctionName: false,\n printBasicPrototype: false,\n highlight: true,\n }\n ),\n 2\n );\n}\n\nexport function formatElementArray(elements: ReactTestInstance[]) {\n if (elements.length === 0) {\n return ' (no elements)';\n }\n\n return redent(elements.map(formatElement).join('\\n'), 2);\n}\n\nexport function formatMessage(\n matcher: string,\n expectedLabel: string,\n expectedValue: string | RegExp,\n receivedLabel: string,\n receivedValue: string | null | undefined\n) {\n return [\n `${matcher}\\n`,\n `${expectedLabel}:\\n${EXPECTED_COLOR(\n redent(formatValue(expectedValue), 2)\n )}`,\n `${receivedLabel}:\\n${RECEIVED_COLOR(\n redent(formatValue(receivedValue), 2)\n )}`,\n ].join('\\n');\n}\n\nfunction formatValue(value: unknown) {\n return typeof value === 'string' ? value : stringify(value);\n}\n"],"mappings":"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"}
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.checkReactVersionAtLeast = checkReactVersionAtLeast;
7
7
  var React = _interopRequireWildcard(require("react"));
8
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
10
  function checkReactVersionAtLeast(major, minor) {
11
11
  if (React.version === undefined) return false;
12
12
  const [actualMajor, actualMinor] = React.version.split('.').map(Number);
@@ -1 +1 @@
1
- {"version":3,"file":"react-versions.js","names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","checkReactVersionAtLeast","major","minor","version","undefined","actualMajor","actualMinor","split","map","Number"],"sources":["../src/react-versions.ts"],"sourcesContent":["import * as React from 'react';\n\nexport function checkReactVersionAtLeast(\n major: number,\n minor: number\n): boolean {\n if (React.version === undefined) return false;\n const [actualMajor, actualMinor] = React.version.split('.').map(Number);\n\n return actualMajor > major || (actualMajor === major && actualMinor >= minor);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAExB,SAASW,wBAAwBA,CACtCC,KAAa,EACbC,KAAa,EACJ;EACT,IAAI3B,KAAK,CAAC4B,OAAO,KAAKC,SAAS,EAAE,OAAO,KAAK;EAC7C,MAAM,CAACC,WAAW,EAAEC,WAAW,CAAC,GAAG/B,KAAK,CAAC4B,OAAO,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,MAAM,CAAC;EAEvE,OAAOJ,WAAW,GAAGJ,KAAK,IAAKI,WAAW,KAAKJ,KAAK,IAAIK,WAAW,IAAIJ,KAAM;AAC/E"}
1
+ {"version":3,"file":"react-versions.js","names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","checkReactVersionAtLeast","major","minor","version","undefined","actualMajor","actualMinor","split","map","Number"],"sources":["../src/react-versions.ts"],"sourcesContent":["import * as React from 'react';\n\nexport function checkReactVersionAtLeast(\n major: number,\n minor: number\n): boolean {\n if (React.version === undefined) return false;\n const [actualMajor, actualMinor] = React.version.split('.').map(Number);\n\n return actualMajor > major || (actualMajor === major && actualMinor >= minor);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAExB,SAASY,wBAAwBA,CACtCC,KAAa,EACbC,KAAa,EACJ;EACT,IAAI1B,KAAK,CAAC2B,OAAO,KAAKC,SAAS,EAAE,OAAO,KAAK;EAC7C,MAAM,CAACC,WAAW,EAAEC,WAAW,CAAC,GAAG9B,KAAK,CAAC2B,OAAO,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,MAAM,CAAC;EAEvE,OAAOJ,WAAW,GAAGJ,KAAK,IAAKI,WAAW,KAAKJ,KAAK,IAAIK,WAAW,IAAIJ,KAAM;AAC/E"}
package/build/render.js CHANGED
@@ -5,7 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = render;
7
7
  exports.renderInternal = renderInternal;
8
- var React = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var React = _react;
9
10
  var _act = _interopRequireDefault(require("./act"));
10
11
  var _cleanup = require("./cleanup");
11
12
  var _config = require("./config");
@@ -18,8 +19,8 @@ var _renderAct = require("./render-act");
18
19
  var _screen = require("./screen");
19
20
  var _within = require("./within");
20
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
24
  /**
24
25
  * Renders test component deeply using React Test Renderer and exposes helpers
25
26
  * to assert on the output.
@@ -57,7 +58,7 @@ function renderWithStringValidation(component, {
57
58
  (0, _stringValidation.validateStringsRenderedWithinText)(_screen.screen.toJSON());
58
59
  }
59
60
  };
60
- const wrap = element => /*#__PURE__*/React.createElement(React.Profiler, {
61
+ const wrap = element => /*#__PURE__*/React.createElement(_react.Profiler, {
61
62
  id: "renderProfiler",
62
63
  onRender: handleRender
63
64
  }, Wrapper ? /*#__PURE__*/React.createElement(Wrapper, null, element) : element);
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","names":["React","_interopRequireWildcard","require","_act","_interopRequireDefault","_cleanup","_config","_componentTree","_debugDeep","_debugShallow","_hostComponentNames","_stringValidation","_renderAct","_screen","_within","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","render","component","options","renderInternal","wrapper","Wrapper","createNodeMock","unstable_validateStringsRenderedWithinText","detectHostComponentNames","configureHostComponentNamesIfNeeded","renderWithStringValidation","wrap","element","createElement","renderer","renderWithAct","undefined","buildRenderResult","handleRender","_","phase","validateStringsRenderedWithinText","screen","toJSON","Profiler","id","onRender","update","updateWithAct","instance","root","unmount","act","addToCleanupQueue","result","getQueriesForElement","rerender","debug","getHostChildren","UNSAFE_root","enumerable","Error","setRenderResult","debugImpl","defaultDebugOptions","getConfig","debugOptions","message","console","warn","json","debugDeep","shallow","debugShallow"],"sources":["../src/render.tsx"],"sourcesContent":["import type { ReactTestInstance, ReactTestRenderer } from 'react-test-renderer';\nimport * as React from 'react';\nimport { Profiler } from 'react';\nimport act from './act';\nimport { addToCleanupQueue } from './cleanup';\nimport { getConfig } from './config';\nimport { getHostChildren } from './helpers/component-tree';\nimport debugDeep, { DebugOptions } from './helpers/debugDeep';\nimport debugShallow from './helpers/debugShallow';\nimport { configureHostComponentNamesIfNeeded } from './helpers/host-component-names';\nimport { validateStringsRenderedWithinText } from './helpers/stringValidation';\nimport { renderWithAct } from './render-act';\nimport { setRenderResult, screen } from './screen';\nimport { getQueriesForElement } from './within';\n\nexport interface RenderOptions {\n wrapper?: React.ComponentType<any>;\n createNodeMock?: (element: React.ReactElement) => any;\n unstable_validateStringsRenderedWithinText?: boolean;\n}\n\nexport type RenderResult = ReturnType<typeof render>;\n\n/**\n * Renders test component deeply using React Test Renderer and exposes helpers\n * to assert on the output.\n */\nexport default function render<T>(\n component: React.ReactElement<T>,\n options: RenderOptions = {}\n) {\n return renderInternal(component, options);\n}\n\nexport interface RenderInternalOptions extends RenderOptions {\n detectHostComponentNames?: boolean;\n}\n\nexport function renderInternal<T>(\n component: React.ReactElement<T>,\n {\n wrapper: Wrapper,\n createNodeMock,\n unstable_validateStringsRenderedWithinText,\n detectHostComponentNames = true,\n }: RenderInternalOptions = {}\n) {\n if (detectHostComponentNames) {\n configureHostComponentNamesIfNeeded();\n }\n\n if (unstable_validateStringsRenderedWithinText) {\n return renderWithStringValidation(component, {\n wrapper: Wrapper,\n createNodeMock,\n });\n }\n\n const wrap = (element: React.ReactElement) =>\n Wrapper ? <Wrapper>{element}</Wrapper> : element;\n\n const renderer = renderWithAct(\n wrap(component),\n createNodeMock ? { createNodeMock } : undefined\n );\n\n return buildRenderResult(renderer, wrap);\n}\n\nfunction renderWithStringValidation<T>(\n component: React.ReactElement<T>,\n {\n wrapper: Wrapper,\n createNodeMock,\n }: Omit<RenderOptions, 'unstable_validateStringsRenderedWithinText'> = {}\n) {\n const handleRender: React.ProfilerProps['onRender'] = (_, phase) => {\n if (phase === 'update') {\n validateStringsRenderedWithinText(screen.toJSON());\n }\n };\n\n const wrap = (element: React.ReactElement) => (\n <Profiler id=\"renderProfiler\" onRender={handleRender}>\n {Wrapper ? <Wrapper>{element}</Wrapper> : element}\n </Profiler>\n );\n\n const renderer = renderWithAct(\n wrap(component),\n createNodeMock ? { createNodeMock } : undefined\n );\n validateStringsRenderedWithinText(renderer.toJSON());\n\n return buildRenderResult(renderer, wrap);\n}\n\nfunction buildRenderResult(\n renderer: ReactTestRenderer,\n wrap: (element: React.ReactElement) => JSX.Element\n) {\n const update = updateWithAct(renderer, wrap);\n const instance = renderer.root;\n\n const unmount = () => {\n act(() => {\n renderer.unmount();\n });\n };\n\n addToCleanupQueue(unmount);\n\n const result = {\n ...getQueriesForElement(instance),\n update,\n unmount,\n rerender: update, // alias for `update`\n toJSON: renderer.toJSON,\n debug: debug(instance, renderer),\n get root(): ReactTestInstance {\n return getHostChildren(instance)[0];\n },\n UNSAFE_root: instance,\n };\n\n // Add as non-enumerable property, so that it's safe to enumerate\n // `render` result, e.g. using destructuring rest syntax.\n Object.defineProperty(result, 'container', {\n enumerable: false,\n get() {\n throw new Error(\n \"'container' property has been renamed to 'UNSAFE_root'.\\n\\n\" +\n \"Consider using 'root' property which returns root host element.\"\n );\n },\n });\n\n setRenderResult(result);\n return result;\n}\n\nfunction updateWithAct(\n renderer: ReactTestRenderer,\n wrap: (innerElement: React.ReactElement) => React.ReactElement\n) {\n return function (component: React.ReactElement) {\n act(() => {\n renderer.update(wrap(component));\n });\n };\n}\n\nexport interface DebugFunction {\n (options?: DebugOptions | string): void;\n shallow: (message?: string) => void;\n}\n\nfunction debug(\n instance: ReactTestInstance,\n renderer: ReactTestRenderer\n): DebugFunction {\n function debugImpl(options?: DebugOptions | string) {\n const { defaultDebugOptions } = getConfig();\n const debugOptions =\n typeof options === 'string'\n ? { ...defaultDebugOptions, message: options }\n : { ...defaultDebugOptions, ...options };\n\n if (typeof options === 'string') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Using debug(\"message\") is deprecated and will be removed in future release, please use debug({ message; \"message\" }) instead.'\n );\n }\n\n const json = renderer.toJSON();\n if (json) {\n return debugDeep(json, debugOptions);\n }\n }\n debugImpl.shallow = (message?: string) => debugShallow(instance, message);\n return debugImpl;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"render.js","names":["_react","_interopRequireWildcard","require","React","_act","_interopRequireDefault","_cleanup","_config","_componentTree","_debugDeep","_debugShallow","_hostComponentNames","_stringValidation","_renderAct","_screen","_within","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","render","component","options","renderInternal","wrapper","Wrapper","createNodeMock","unstable_validateStringsRenderedWithinText","detectHostComponentNames","configureHostComponentNamesIfNeeded","renderWithStringValidation","wrap","element","createElement","renderer","renderWithAct","undefined","buildRenderResult","handleRender","_","phase","validateStringsRenderedWithinText","screen","toJSON","Profiler","id","onRender","update","updateWithAct","instance","root","unmount","act","addToCleanupQueue","result","getQueriesForElement","rerender","debug","getHostChildren","UNSAFE_root","enumerable","Error","setRenderResult","debugImpl","defaultDebugOptions","getConfig","debugOptions","message","console","warn","json","debugDeep","shallow","debugShallow"],"sources":["../src/render.tsx"],"sourcesContent":["import type { ReactTestInstance, ReactTestRenderer } from 'react-test-renderer';\nimport * as React from 'react';\nimport { Profiler } from 'react';\nimport act from './act';\nimport { addToCleanupQueue } from './cleanup';\nimport { getConfig } from './config';\nimport { getHostChildren } from './helpers/component-tree';\nimport debugDeep, { DebugOptions } from './helpers/debugDeep';\nimport debugShallow from './helpers/debugShallow';\nimport { configureHostComponentNamesIfNeeded } from './helpers/host-component-names';\nimport { validateStringsRenderedWithinText } from './helpers/stringValidation';\nimport { renderWithAct } from './render-act';\nimport { setRenderResult, screen } from './screen';\nimport { getQueriesForElement } from './within';\n\nexport interface RenderOptions {\n wrapper?: React.ComponentType<any>;\n createNodeMock?: (element: React.ReactElement) => any;\n unstable_validateStringsRenderedWithinText?: boolean;\n}\n\nexport type RenderResult = ReturnType<typeof render>;\n\n/**\n * Renders test component deeply using React Test Renderer and exposes helpers\n * to assert on the output.\n */\nexport default function render<T>(\n component: React.ReactElement<T>,\n options: RenderOptions = {}\n) {\n return renderInternal(component, options);\n}\n\nexport interface RenderInternalOptions extends RenderOptions {\n detectHostComponentNames?: boolean;\n}\n\nexport function renderInternal<T>(\n component: React.ReactElement<T>,\n {\n wrapper: Wrapper,\n createNodeMock,\n unstable_validateStringsRenderedWithinText,\n detectHostComponentNames = true,\n }: RenderInternalOptions = {}\n) {\n if (detectHostComponentNames) {\n configureHostComponentNamesIfNeeded();\n }\n\n if (unstable_validateStringsRenderedWithinText) {\n return renderWithStringValidation(component, {\n wrapper: Wrapper,\n createNodeMock,\n });\n }\n\n const wrap = (element: React.ReactElement) =>\n Wrapper ? <Wrapper>{element}</Wrapper> : element;\n\n const renderer = renderWithAct(\n wrap(component),\n createNodeMock ? { createNodeMock } : undefined\n );\n\n return buildRenderResult(renderer, wrap);\n}\n\nfunction renderWithStringValidation<T>(\n component: React.ReactElement<T>,\n {\n wrapper: Wrapper,\n createNodeMock,\n }: Omit<RenderOptions, 'unstable_validateStringsRenderedWithinText'> = {}\n) {\n const handleRender: React.ProfilerProps['onRender'] = (_, phase) => {\n if (phase === 'update') {\n validateStringsRenderedWithinText(screen.toJSON());\n }\n };\n\n const wrap = (element: React.ReactElement) => (\n <Profiler id=\"renderProfiler\" onRender={handleRender}>\n {Wrapper ? <Wrapper>{element}</Wrapper> : element}\n </Profiler>\n );\n\n const renderer = renderWithAct(\n wrap(component),\n createNodeMock ? { createNodeMock } : undefined\n );\n validateStringsRenderedWithinText(renderer.toJSON());\n\n return buildRenderResult(renderer, wrap);\n}\n\nfunction buildRenderResult(\n renderer: ReactTestRenderer,\n wrap: (element: React.ReactElement) => JSX.Element\n) {\n const update = updateWithAct(renderer, wrap);\n const instance = renderer.root;\n\n const unmount = () => {\n act(() => {\n renderer.unmount();\n });\n };\n\n addToCleanupQueue(unmount);\n\n const result = {\n ...getQueriesForElement(instance),\n update,\n unmount,\n rerender: update, // alias for `update`\n toJSON: renderer.toJSON,\n debug: debug(instance, renderer),\n get root(): ReactTestInstance {\n return getHostChildren(instance)[0];\n },\n UNSAFE_root: instance,\n };\n\n // Add as non-enumerable property, so that it's safe to enumerate\n // `render` result, e.g. using destructuring rest syntax.\n Object.defineProperty(result, 'container', {\n enumerable: false,\n get() {\n throw new Error(\n \"'container' property has been renamed to 'UNSAFE_root'.\\n\\n\" +\n \"Consider using 'root' property which returns root host element.\"\n );\n },\n });\n\n setRenderResult(result);\n return result;\n}\n\nfunction updateWithAct(\n renderer: ReactTestRenderer,\n wrap: (innerElement: React.ReactElement) => React.ReactElement\n) {\n return function (component: React.ReactElement) {\n act(() => {\n renderer.update(wrap(component));\n });\n };\n}\n\nexport interface DebugFunction {\n (options?: DebugOptions | string): void;\n shallow: (message?: string) => void;\n}\n\nfunction debug(\n instance: ReactTestInstance,\n renderer: ReactTestRenderer\n): DebugFunction {\n function debugImpl(options?: DebugOptions | string) {\n const { defaultDebugOptions } = getConfig();\n const debugOptions =\n typeof options === 'string'\n ? { ...defaultDebugOptions, message: options }\n : { ...defaultDebugOptions, ...options };\n\n if (typeof options === 'string') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Using debug(\"message\") is deprecated and will be removed in future release, please use debug({ message; \"message\" }) instead.'\n );\n }\n\n const json = renderer.toJSON();\n if (json) {\n return debugDeep(json, debugOptions);\n }\n }\n debugImpl.shallow = (message?: string) => debugShallow(instance, message);\n return debugImpl;\n}\n"],"mappings":"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"}
package/build/screen.js CHANGED
@@ -113,8 +113,7 @@ const defaultScreen = {
113
113
  findByText: notImplemented,
114
114
  findAllByText: notImplemented
115
115
  };
116
- let screen = defaultScreen;
117
- exports.screen = screen;
116
+ let screen = exports.screen = defaultScreen;
118
117
  function setRenderResult(output) {
119
118
  exports.screen = screen = output;
120
119
  }