@mui/internal-test-utils 2.0.15 → 2.0.16

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 (212) hide show
  1. package/{src/chai.types.ts → chai.types.d.ts} +7 -40
  2. package/chai.types.js +5 -0
  3. package/chaiPlugin.d.ts +4 -0
  4. package/chaiPlugin.js +287 -0
  5. package/{build/components.d.ts → components.d.ts} +18 -19
  6. package/components.js +64 -0
  7. package/createDOM.d.ts +2 -0
  8. package/{src/createDOM.js → createDOM.js} +17 -35
  9. package/createDescribe.d.ts +7 -0
  10. package/createDescribe.js +26 -0
  11. package/createRenderer.d.ts +214 -0
  12. package/createRenderer.js +428 -0
  13. package/createRenderer.test.d.ts +1 -0
  14. package/describeConformance.d.ts +200 -0
  15. package/describeConformance.js +1038 -0
  16. package/env.d.ts +1 -0
  17. package/env.js +11 -0
  18. package/esm/chai.types.d.ts +74 -0
  19. package/esm/chai.types.js +3 -0
  20. package/esm/chaiPlugin.d.ts +4 -0
  21. package/esm/chaiPlugin.js +281 -0
  22. package/esm/components.d.ts +35 -0
  23. package/esm/components.js +56 -0
  24. package/esm/createDOM.d.ts +2 -0
  25. package/esm/createDOM.js +47 -0
  26. package/esm/createDescribe.d.ts +7 -0
  27. package/esm/createDescribe.js +19 -0
  28. package/esm/createRenderer.d.ts +214 -0
  29. package/esm/createRenderer.js +390 -0
  30. package/esm/createRenderer.test.d.ts +1 -0
  31. package/esm/describeConformance.d.ts +200 -0
  32. package/esm/describeConformance.js +1024 -0
  33. package/esm/env.d.ts +1 -0
  34. package/esm/env.js +5 -0
  35. package/{build → esm}/fireDiscreteEvent.d.ts +1 -2
  36. package/{src/fireDiscreteEvent.ts → esm/fireDiscreteEvent.js} +10 -18
  37. package/esm/flushMicrotasks.d.ts +1 -0
  38. package/{src/flushMicrotasks.ts → esm/flushMicrotasks.js} +2 -3
  39. package/{build → esm}/focusVisible.d.ts +1 -2
  40. package/{src/focusVisible.ts → esm/focusVisible.js} +10 -9
  41. package/esm/index.d.ts +18 -0
  42. package/esm/index.js +27 -0
  43. package/esm/init.d.ts +1 -0
  44. package/{src → esm}/init.js +4 -2
  45. package/esm/initMatchers.d.ts +1 -0
  46. package/esm/initMatchers.js +6 -0
  47. package/esm/initMatchers.test.d.ts +1 -0
  48. package/esm/initPlaywrightMatchers.d.ts +24 -0
  49. package/esm/initPlaywrightMatchers.js +40 -0
  50. package/esm/package.json +1 -0
  51. package/esm/reactMajor.d.ts +2 -0
  52. package/esm/reactMajor.js +2 -0
  53. package/esm/setup.d.ts +1 -0
  54. package/{src → esm}/setup.js +2 -4
  55. package/esm/setupVitest.d.ts +1 -0
  56. package/esm/setupVitest.js +28 -0
  57. package/esm/setupVitestBrowser.d.ts +1 -0
  58. package/esm/setupVitestBrowser.js +30 -0
  59. package/fireDiscreteEvent.d.ts +6 -0
  60. package/fireDiscreteEvent.js +79 -0
  61. package/flushMicrotasks.d.ts +1 -0
  62. package/flushMicrotasks.js +10 -0
  63. package/focusVisible.d.ts +7 -0
  64. package/focusVisible.js +44 -0
  65. package/index.d.ts +18 -0
  66. package/index.js +139 -0
  67. package/init.d.ts +1 -0
  68. package/init.js +15 -0
  69. package/initMatchers.d.ts +1 -0
  70. package/initMatchers.js +10 -0
  71. package/initMatchers.test.d.ts +1 -0
  72. package/initPlaywrightMatchers.d.ts +24 -0
  73. package/initPlaywrightMatchers.js +42 -0
  74. package/package.json +89 -46
  75. package/reactMajor.d.ts +2 -0
  76. package/reactMajor.js +9 -0
  77. package/setup.d.ts +1 -0
  78. package/setup.js +10 -0
  79. package/setupVitest.d.ts +1 -0
  80. package/setupVitest.js +32 -0
  81. package/setupVitestBrowser.d.ts +1 -0
  82. package/setupVitestBrowser.js +34 -0
  83. package/build/.tsbuildinfo +0 -1
  84. package/build/KarmaReporterReactProfiler.d.ts +0 -51
  85. package/build/KarmaReporterReactProfiler.d.ts.map +0 -1
  86. package/build/KarmaReporterReactProfiler.js +0 -66
  87. package/build/KarmaReporterReactProfiler.js.map +0 -1
  88. package/build/chai.types.d.ts +0 -75
  89. package/build/chai.types.d.ts.map +0 -1
  90. package/build/chai.types.js +0 -3
  91. package/build/chai.types.js.map +0 -1
  92. package/build/chaiPlugin.d.ts +0 -5
  93. package/build/chaiPlugin.d.ts.map +0 -1
  94. package/build/chaiPlugin.js +0 -416
  95. package/build/chaiPlugin.js.map +0 -1
  96. package/build/components.d.ts.map +0 -1
  97. package/build/components.js +0 -88
  98. package/build/components.js.map +0 -1
  99. package/build/createDOM.d.ts +0 -3
  100. package/build/createDOM.d.ts.map +0 -1
  101. package/build/createDOM.js +0 -60
  102. package/build/createDOM.js.map +0 -1
  103. package/build/createDescribe.d.ts +0 -8
  104. package/build/createDescribe.d.ts.map +0 -1
  105. package/build/createDescribe.js +0 -22
  106. package/build/createDescribe.js.map +0 -1
  107. package/build/createRenderer.d.ts +0 -215
  108. package/build/createRenderer.d.ts.map +0 -1
  109. package/build/createRenderer.js +0 -564
  110. package/build/createRenderer.js.map +0 -1
  111. package/build/createRenderer.test.d.ts +0 -2
  112. package/build/createRenderer.test.d.ts.map +0 -1
  113. package/build/createRenderer.test.js +0 -58
  114. package/build/createRenderer.test.js.map +0 -1
  115. package/build/describeConformance.d.ts +0 -201
  116. package/build/describeConformance.d.ts.map +0 -1
  117. package/build/describeConformance.js +0 -859
  118. package/build/describeConformance.js.map +0 -1
  119. package/build/describeSkipIf.d.ts +0 -4
  120. package/build/describeSkipIf.d.ts.map +0 -1
  121. package/build/describeSkipIf.js +0 -10
  122. package/build/describeSkipIf.js.map +0 -1
  123. package/build/fireDiscreteEvent.d.ts.map +0 -1
  124. package/build/fireDiscreteEvent.js +0 -77
  125. package/build/fireDiscreteEvent.js.map +0 -1
  126. package/build/flushMicrotasks.d.ts +0 -2
  127. package/build/flushMicrotasks.d.ts.map +0 -1
  128. package/build/flushMicrotasks.js +0 -8
  129. package/build/flushMicrotasks.js.map +0 -1
  130. package/build/focusVisible.d.ts.map +0 -1
  131. package/build/focusVisible.js +0 -38
  132. package/build/focusVisible.js.map +0 -1
  133. package/build/index.d.ts +0 -18
  134. package/build/index.d.ts.map +0 -1
  135. package/build/index.js +0 -68
  136. package/build/index.js.map +0 -1
  137. package/build/init.d.ts +0 -2
  138. package/build/init.d.ts.map +0 -1
  139. package/build/init.js +0 -46
  140. package/build/init.js.map +0 -1
  141. package/build/initMatchers.d.ts +0 -2
  142. package/build/initMatchers.d.ts.map +0 -1
  143. package/build/initMatchers.js +0 -45
  144. package/build/initMatchers.js.map +0 -1
  145. package/build/initMatchers.test.d.ts +0 -2
  146. package/build/initMatchers.test.d.ts.map +0 -1
  147. package/build/initMatchers.test.js +0 -101
  148. package/build/initMatchers.test.js.map +0 -1
  149. package/build/initPlaywrightMatchers.d.ts +0 -25
  150. package/build/initPlaywrightMatchers.d.ts.map +0 -1
  151. package/build/initPlaywrightMatchers.js +0 -73
  152. package/build/initPlaywrightMatchers.js.map +0 -1
  153. package/build/mochaHooks.d.ts +0 -24
  154. package/build/mochaHooks.d.ts.map +0 -1
  155. package/build/mochaHooks.js +0 -165
  156. package/build/mochaHooks.js.map +0 -1
  157. package/build/mochaHooks.test.d.ts +0 -2
  158. package/build/mochaHooks.test.d.ts.map +0 -1
  159. package/build/mochaHooks.test.js +0 -128
  160. package/build/mochaHooks.test.js.map +0 -1
  161. package/build/reactMajor.d.ts +0 -3
  162. package/build/reactMajor.d.ts.map +0 -1
  163. package/build/reactMajor.js +0 -38
  164. package/build/reactMajor.js.map +0 -1
  165. package/build/setup.d.ts +0 -2
  166. package/build/setup.d.ts.map +0 -1
  167. package/build/setup.js +0 -10
  168. package/build/setup.js.map +0 -1
  169. package/build/setupBabel.d.ts +0 -2
  170. package/build/setupBabel.d.ts.map +0 -1
  171. package/build/setupBabel.js +0 -5
  172. package/build/setupBabel.js.map +0 -1
  173. package/build/setupBabelPlaywright.d.ts +0 -2
  174. package/build/setupBabelPlaywright.d.ts.map +0 -1
  175. package/build/setupBabelPlaywright.js +0 -14
  176. package/build/setupBabelPlaywright.js.map +0 -1
  177. package/build/setupJSDOM.d.ts +0 -7
  178. package/build/setupJSDOM.d.ts.map +0 -1
  179. package/build/setupJSDOM.js +0 -17
  180. package/build/setupJSDOM.js.map +0 -1
  181. package/build/setupKarma.d.ts +0 -2
  182. package/build/setupKarma.d.ts.map +0 -1
  183. package/build/setupKarma.js +0 -56
  184. package/build/setupKarma.js.map +0 -1
  185. package/build/setupVitest.d.ts +0 -2
  186. package/build/setupVitest.d.ts.map +0 -1
  187. package/build/setupVitest.js +0 -131
  188. package/build/setupVitest.js.map +0 -1
  189. package/src/KarmaReporterReactProfiler.js +0 -82
  190. package/src/chai-augmentation.d.ts +0 -8
  191. package/src/chaiPlugin.ts +0 -515
  192. package/src/components.tsx +0 -61
  193. package/src/createDOM.d.ts +0 -9
  194. package/src/createDescribe.ts +0 -31
  195. package/src/createRenderer.test.js +0 -31
  196. package/src/createRenderer.tsx +0 -808
  197. package/src/describeConformance.tsx +0 -1257
  198. package/src/describeSkipIf.tsx +0 -11
  199. package/src/index.ts +0 -25
  200. package/src/initMatchers.test.js +0 -124
  201. package/src/initMatchers.ts +0 -7
  202. package/src/initPlaywrightMatchers.ts +0 -101
  203. package/src/mochaHooks.js +0 -200
  204. package/src/mochaHooks.test.js +0 -116
  205. package/src/reactMajor.ts +0 -3
  206. package/src/setupBabel.js +0 -3
  207. package/src/setupBabelPlaywright.js +0 -13
  208. package/src/setupJSDOM.js +0 -20
  209. package/src/setupKarma.js +0 -65
  210. package/src/setupVitest.ts +0 -117
  211. package/tsconfig.build.json +0 -16
  212. package/tsconfig.json +0 -17
package/index.js ADDED
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @mui/internal-test-utils v2.0.16
3
+ *
4
+ * @license undefined
5
+ * This source code is licensed under the undefined license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ "use strict";
9
+
10
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
11
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
12
+ Object.defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ var _exportNames = {
16
+ strictModeDoubleLoggingSuppressed: true,
17
+ describeConformance: true,
18
+ createDescribe: true,
19
+ focusVisible: true,
20
+ simulatePointerDevice: true,
21
+ simulateKeyboardDevice: true,
22
+ programmaticFocusTriggersFocusVisible: true,
23
+ fireDiscreteEvent: true,
24
+ flushMicrotasks: true,
25
+ reactMajor: true
26
+ };
27
+ Object.defineProperty(exports, "createDescribe", {
28
+ enumerable: true,
29
+ get: function () {
30
+ return _createDescribe.default;
31
+ }
32
+ });
33
+ Object.defineProperty(exports, "describeConformance", {
34
+ enumerable: true,
35
+ get: function () {
36
+ return _describeConformance.default;
37
+ }
38
+ });
39
+ exports.fireDiscreteEvent = void 0;
40
+ Object.defineProperty(exports, "flushMicrotasks", {
41
+ enumerable: true,
42
+ get: function () {
43
+ return _flushMicrotasks.default;
44
+ }
45
+ });
46
+ Object.defineProperty(exports, "focusVisible", {
47
+ enumerable: true,
48
+ get: function () {
49
+ return _focusVisible.default;
50
+ }
51
+ });
52
+ Object.defineProperty(exports, "programmaticFocusTriggersFocusVisible", {
53
+ enumerable: true,
54
+ get: function () {
55
+ return _focusVisible.programmaticFocusTriggersFocusVisible;
56
+ }
57
+ });
58
+ Object.defineProperty(exports, "reactMajor", {
59
+ enumerable: true,
60
+ get: function () {
61
+ return _reactMajor.default;
62
+ }
63
+ });
64
+ Object.defineProperty(exports, "simulateKeyboardDevice", {
65
+ enumerable: true,
66
+ get: function () {
67
+ return _focusVisible.simulateKeyboardDevice;
68
+ }
69
+ });
70
+ Object.defineProperty(exports, "simulatePointerDevice", {
71
+ enumerable: true,
72
+ get: function () {
73
+ return _focusVisible.simulatePointerDevice;
74
+ }
75
+ });
76
+ exports.strictModeDoubleLoggingSuppressed = void 0;
77
+ var React = _interopRequireWildcard(require("react"));
78
+ var _components = require("./components");
79
+ Object.keys(_components).forEach(function (key) {
80
+ if (key === "default" || key === "__esModule") return;
81
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
82
+ if (key in exports && exports[key] === _components[key]) return;
83
+ Object.defineProperty(exports, key, {
84
+ enumerable: true,
85
+ get: function () {
86
+ return _components[key];
87
+ }
88
+ });
89
+ });
90
+ var _describeConformance = _interopRequireWildcard(require("./describeConformance"));
91
+ Object.keys(_describeConformance).forEach(function (key) {
92
+ if (key === "default" || key === "__esModule") return;
93
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
94
+ if (key in exports && exports[key] === _describeConformance[key]) return;
95
+ Object.defineProperty(exports, key, {
96
+ enumerable: true,
97
+ get: function () {
98
+ return _describeConformance[key];
99
+ }
100
+ });
101
+ });
102
+ var _createDescribe = _interopRequireDefault(require("./createDescribe"));
103
+ var _createRenderer = require("./createRenderer");
104
+ Object.keys(_createRenderer).forEach(function (key) {
105
+ if (key === "default" || key === "__esModule") return;
106
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
107
+ if (key in exports && exports[key] === _createRenderer[key]) return;
108
+ Object.defineProperty(exports, key, {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _createRenderer[key];
112
+ }
113
+ });
114
+ });
115
+ var _focusVisible = _interopRequireWildcard(require("./focusVisible"));
116
+ require("./initMatchers");
117
+ var _fireDiscreteEvent = _interopRequireWildcard(require("./fireDiscreteEvent"));
118
+ exports.fireDiscreteEvent = _fireDiscreteEvent;
119
+ var _flushMicrotasks = _interopRequireDefault(require("./flushMicrotasks"));
120
+ var _reactMajor = _interopRequireDefault(require("./reactMajor"));
121
+ var _env = require("./env");
122
+ Object.keys(_env).forEach(function (key) {
123
+ if (key === "default" || key === "__esModule") return;
124
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
125
+ if (key in exports && exports[key] === _env[key]) return;
126
+ Object.defineProperty(exports, key, {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _env[key];
130
+ }
131
+ });
132
+ });
133
+ /**
134
+ * Set to true if console logs during [lifecycles that are invoked twice in `React.StrictMode`](https://reactjs.org/docs/strict-mode.html#detecting-unexpected-side-effects) are suppressed.
135
+ * Useful for asserting on `console.warn` or `console.error` via `toErrorDev()`.
136
+ * TODO: Refactor to use reactMajor when fixing the React 17 cron test.
137
+ * https://github.com/mui/material-ui/issues/43153
138
+ */
139
+ const strictModeDoubleLoggingSuppressed = exports.strictModeDoubleLoggingSuppressed = React.version.startsWith('17');
package/init.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/init.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var testingLibrary = _interopRequireWildcard(require("@testing-library/react/pure"));
5
+ require("./initMatchers");
6
+ // checking if an element is hidden is quite expensive
7
+ // this is only done in CI as a fail safe. It can still explicitly be checked
8
+ // in the test files which helps documenting what is part of the DOM but hidden
9
+ // from assistive technology
10
+ const defaultHidden = !process.env.CI;
11
+ // adds verbosity for something that might be confusing
12
+ console.warn(`${defaultHidden ? 'including' : 'excluding'} inaccessible elements by default`);
13
+ testingLibrary.configure({
14
+ defaultHidden
15
+ });
@@ -0,0 +1 @@
1
+ import "./chai.types.js";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var chai = _interopRequireWildcard(require("chai"));
6
+ var _chaiDom = _interopRequireDefault(require("chai-dom"));
7
+ require("./chai.types");
8
+ var _chaiPlugin = _interopRequireDefault(require("./chaiPlugin"));
9
+ chai.use(_chaiDom.default);
10
+ chai.use(_chaiPlugin.default);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import * as DomTestingLibrary from '@testing-library/dom';
2
+ declare global {
3
+ namespace Chai {
4
+ interface Assertion {
5
+ /**
6
+ * Checks if the element handle is actually focused i.e. the element handle is pointing to `document.activeElement`.
7
+ */
8
+ toHaveFocus(): Promise<void>;
9
+ /**
10
+ * Checks if the element handle has the given attribute.
11
+ * @example expect($element).toHaveAttribute('aria-expanded') is like `[aria-expanded]` CSS selector
12
+ * @example expect($element).toHaveAttribute('aria-expanded', 'true') is like `[aria-expanded="true"]` CSS selector
13
+ */
14
+ toHaveAttribute(attributeName: string, attributeValue?: string): Promise<void>;
15
+ }
16
+ }
17
+ interface Window {
18
+ DomTestingLibrary: typeof DomTestingLibrary;
19
+ /**
20
+ * @example $element.evaluate(element => window.pageElementToString(element))
21
+ */
22
+ elementToString(element: Node | null | undefined): string | false;
23
+ }
24
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var chai = _interopRequireWildcard(require("chai"));
5
+ var _assertionError = require("assertion-error");
6
+ // https://stackoverflow.com/a/46755166/3406963
7
+
8
+ chai.use((chaiAPI, utils) => {
9
+ chai.Assertion.addMethod('toHaveFocus', async function elementHandleIsFocused() {
10
+ const $elementOrHandle = utils.flag(this, 'object');
11
+ if ($elementOrHandle == null) {
12
+ throw new _assertionError.AssertionError(`Expected an element handle but got ${String($elementOrHandle)}.`);
13
+ }
14
+ const $element = typeof $elementOrHandle.then === 'function' ? await $elementOrHandle : $elementOrHandle;
15
+ const {
16
+ isFocused,
17
+ stringifiedActiveElement,
18
+ stringifiedElement
19
+ } = await $element.evaluate(element => {
20
+ const activeElement = element.ownerDocument !== null ? element.ownerDocument.activeElement : null;
21
+ return {
22
+ isFocused: activeElement === element,
23
+ stringifiedElement: window.elementToString(element),
24
+ stringifiedActiveElement: window.elementToString(activeElement)
25
+ };
26
+ });
27
+ this.assert(isFocused, `expected element to have focus`, `expected element to NOT have focus \n${stringifiedElement}`, stringifiedElement, stringifiedActiveElement);
28
+ });
29
+ chai.Assertion.addMethod('toHaveAttribute', async function elementHandleHasAttribute(attributeName, attributeValue) {
30
+ const $elementOrHandle = utils.flag(this, 'object');
31
+ if ($elementOrHandle == null) {
32
+ throw new _assertionError.AssertionError(`Expected an element handle but got ${String($elementOrHandle)}.`);
33
+ }
34
+ const $element = typeof $elementOrHandle.then === 'function' ? await $elementOrHandle : $elementOrHandle;
35
+ const actualAttributeValue = await $element.getAttribute(attributeName);
36
+ if (attributeValue === undefined) {
37
+ this.assert(actualAttributeValue !== null, `expected element to have attribute \`${attributeName}\``, `expected element to NOT have attribute \`${attributeName}\``, null, null);
38
+ } else {
39
+ this.assert(actualAttributeValue === attributeValue, `expected element to have attribute \`${attributeName}="${attributeValue}"\``, `expected element to NOT have attribute \`${attributeName}="${attributeValue}"\``, attributeValue, actualAttributeValue);
40
+ }
41
+ });
42
+ });
package/package.json CHANGED
@@ -1,66 +1,29 @@
1
1
  {
2
2
  "name": "@mui/internal-test-utils",
3
- "version": "2.0.15",
3
+ "version": "2.0.16",
4
4
  "author": "MUI Team",
5
5
  "description": "Utilities for MUI tests. This is an internal package not meant for general use.",
6
- "main": "./build/index.js",
7
6
  "repository": {
8
7
  "type": "git",
9
8
  "url": "git+https://github.com/mui/material-ui.git",
10
9
  "directory": "packages-internal/test-utils"
11
10
  },
12
- "exports": {
13
- ".": "./build/index.js",
14
- "./createDescribe": "./build/createDescribe.js",
15
- "./createRenderer": "./build/createRenderer.js",
16
- "./init": "./build/init.js",
17
- "./initMatchers": {
18
- "types": "./build/initMatchers.d.ts",
19
- "default": "./build/initMatchers.js"
20
- },
21
- "./initPlaywrightMatchers": {
22
- "types": "./build/initPlaywrightMatchers.d.ts",
23
- "default": "./build/initPlaywrightMatchers.js"
24
- },
25
- "./KarmaReporterReactProfiler": "./build/KarmaReporterReactProfiler.js",
26
- "./setupBabel": "./build/setupBabel.js",
27
- "./setupBabelPlaywright": "./build/setupBabelPlaywright.js",
28
- "./setupJSDOM": "./build/setupJSDOM.js",
29
- "./setupKarma": "./build/setupKarma.js",
30
- "./chaiPlugin": "./build/chaiPlugin.js",
31
- "./setupVitest": "./build/setupVitest.js",
32
- "./describeSkipIf": "./build/describeSkipIf.js"
33
- },
34
11
  "dependencies": {
35
- "@babel/plugin-transform-modules-commonjs": "^7.27.1",
36
- "@babel/preset-typescript": "^7.27.1",
37
- "@babel/register": "^7.28.3",
38
12
  "@babel/runtime": "^7.28.4",
39
13
  "@emotion/cache": "^11.14.0",
40
14
  "@emotion/react": "^11.14.0",
41
15
  "@testing-library/dom": "^10.4.1",
42
16
  "@testing-library/react": "^16.3.0",
43
17
  "@testing-library/user-event": "^14.6.1",
18
+ "assertion-error": "^2.0.1",
44
19
  "chai-dom": "^1.12.1",
45
20
  "dom-accessibility-api": "^0.7.0",
46
- "es-toolkit": "^1.40.0",
21
+ "es-toolkit": "^1.41.0",
47
22
  "format-util": "^1.0.5",
48
23
  "jsdom": "^26.1.0",
49
- "mocha": "^11.7.4",
50
24
  "prop-types": "^15.8.1",
51
25
  "sinon": "^21.0.0"
52
26
  },
53
- "devDependencies": {
54
- "@playwright/test": "^1.56.1",
55
- "@types/chai": "^4.3.20",
56
- "@types/chai-dom": "^1.11.3",
57
- "@types/format-util": "^1.0.4",
58
- "@types/prop-types": "^15.7.15",
59
- "@types/react": "^19.2.2",
60
- "@types/react-dom": "^19.2.2",
61
- "@types/sinon": "^17.0.4",
62
- "typescript": "^5.9.2"
63
- },
64
27
  "peerDependencies": {
65
28
  "@playwright/test": "^1.53.1",
66
29
  "chai": "^4.5.0 || ^5.0.0 || ^6.0.0",
@@ -70,11 +33,91 @@
70
33
  "publishConfig": {
71
34
  "access": "public"
72
35
  },
73
- "scripts": {
74
- "prebuild": "rimraf ./build",
75
- "build": "tsc -p tsconfig.build.json",
76
- "typescript": "tsc -p tsconfig.json",
77
- "release:publish": "pnpm publish --tag latest",
78
- "release:publish:dry-run": "pnpm publish --tag latest --registry=\"http://localhost:4873/\""
36
+ "type": "commonjs",
37
+ "main": "./index.js",
38
+ "types": "./index.d.ts",
39
+ "exports": {
40
+ "./package.json": "./package.json",
41
+ ".": {
42
+ "require": {
43
+ "types": "./index.d.ts",
44
+ "default": "./index.js"
45
+ },
46
+ "default": {
47
+ "types": "./esm/index.d.ts",
48
+ "default": "./esm/index.js"
49
+ }
50
+ },
51
+ "./createDescribe": {
52
+ "require": {
53
+ "types": "./createDescribe.d.ts",
54
+ "default": "./createDescribe.js"
55
+ },
56
+ "default": {
57
+ "types": "./esm/createDescribe.d.ts",
58
+ "default": "./esm/createDescribe.js"
59
+ }
60
+ },
61
+ "./createRenderer": {
62
+ "require": {
63
+ "types": "./createRenderer.d.ts",
64
+ "default": "./createRenderer.js"
65
+ },
66
+ "default": {
67
+ "types": "./esm/createRenderer.d.ts",
68
+ "default": "./esm/createRenderer.js"
69
+ }
70
+ },
71
+ "./init": {
72
+ "require": {
73
+ "types": "./init.d.ts",
74
+ "default": "./init.js"
75
+ },
76
+ "default": {
77
+ "types": "./esm/init.d.ts",
78
+ "default": "./esm/init.js"
79
+ }
80
+ },
81
+ "./initMatchers": {
82
+ "require": {
83
+ "types": "./initMatchers.d.ts",
84
+ "default": "./initMatchers.js"
85
+ },
86
+ "default": {
87
+ "types": "./esm/initMatchers.d.ts",
88
+ "default": "./esm/initMatchers.js"
89
+ }
90
+ },
91
+ "./initPlaywrightMatchers": {
92
+ "require": {
93
+ "types": "./initPlaywrightMatchers.d.ts",
94
+ "default": "./initPlaywrightMatchers.js"
95
+ },
96
+ "default": {
97
+ "types": "./esm/initPlaywrightMatchers.d.ts",
98
+ "default": "./esm/initPlaywrightMatchers.js"
99
+ }
100
+ },
101
+ "./chaiPlugin": {
102
+ "require": {
103
+ "types": "./chaiPlugin.d.ts",
104
+ "default": "./chaiPlugin.js"
105
+ },
106
+ "default": {
107
+ "types": "./esm/chaiPlugin.d.ts",
108
+ "default": "./esm/chaiPlugin.js"
109
+ }
110
+ },
111
+ "./setupVitest": {
112
+ "require": {
113
+ "types": "./setupVitest.d.ts",
114
+ "default": "./setupVitest.js"
115
+ },
116
+ "default": {
117
+ "types": "./esm/setupVitest.d.ts",
118
+ "default": "./esm/setupVitest.js"
119
+ }
120
+ },
121
+ "./esm": null
79
122
  }
80
123
  }
@@ -0,0 +1,2 @@
1
+ declare const _default: number;
2
+ export default _default;
package/reactMajor.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _default = exports.default = parseInt(React.version, 10);
package/setup.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/setup.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ const testingLibrary = require('@testing-library/dom');
4
+ const createDOM = require('./createDOM');
5
+ createDOM();
6
+ require('./init');
7
+ testingLibrary.configure({
8
+ // JSDOM logs errors otherwise on `getComputedStyle(element, pseudoElement)` calls.
9
+ computedStyleSupportsPseudoElements: false
10
+ });
@@ -0,0 +1 @@
1
+ import "./chai.types.js";
package/setupVitest.js ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _vitestFailOnConsole = _interopRequireDefault(require("vitest-fail-on-console"));
6
+ var chai = _interopRequireWildcard(require("chai"));
7
+ require("./chai.types");
8
+ var _chaiPlugin = _interopRequireDefault(require("./chaiPlugin"));
9
+ chai.use(_chaiPlugin.default);
10
+ (0, _vitestFailOnConsole.default)({
11
+ silenceMessage: message => {
12
+ if (process.env.NODE_ENV === 'production') {
13
+ // TODO: mock scheduler
14
+ if (message.includes('act(...) is not supported in production builds of React')) {
15
+ return true;
16
+ }
17
+ }
18
+ if (message.includes('Warning: useLayoutEffect does nothing on the server')) {
19
+ // Controversial warning that is commonly ignored by switching to `useEffect` on the server.
20
+ // https://github.com/facebook/react/issues/14927
21
+ // However, this switch doesn't work since it relies on environment sniffing and we test SSR in a browser environment.
22
+ return true;
23
+ }
24
+
25
+ // Unclear why this is an issue for the current occurrences of this warning.
26
+ // TODO: Revisit once https://github.com/facebook/react/issues/22796 is resolved
27
+ if (message.includes('Detected multiple renderers concurrently rendering the same context provider.')) {
28
+ return true;
29
+ }
30
+ return false;
31
+ }
32
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var chai = _interopRequireWildcard(require("chai"));
6
+ var _chaiDom = _interopRequireDefault(require("chai-dom"));
7
+ chai.use(_chaiDom.default);
8
+
9
+ // Enable missing act warnings: https://github.com/reactwg/react-18/discussions/102
10
+ globalThis.jest = null;
11
+ globalThis.IS_REACT_ACT_ENVIRONMENT = true;
12
+ if (window.navigator.userAgent.includes('jsdom')) {
13
+ // Not yet supported: https://github.com/jsdom/jsdom/issues/2152
14
+ globalThis.window.Touch = class Touch {
15
+ constructor(instance) {
16
+ this.instance = instance;
17
+ }
18
+ get identifier() {
19
+ return this.instance.identifier;
20
+ }
21
+ get pageX() {
22
+ return this.instance.pageX;
23
+ }
24
+ get pageY() {
25
+ return this.instance.pageY;
26
+ }
27
+ get clientX() {
28
+ return this.instance.clientX;
29
+ }
30
+ get clientY() {
31
+ return this.instance.clientY;
32
+ }
33
+ };
34
+ }