@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.
- package/{src/chai.types.ts → chai.types.d.ts} +7 -40
- package/chai.types.js +5 -0
- package/chaiPlugin.d.ts +4 -0
- package/chaiPlugin.js +287 -0
- package/{build/components.d.ts → components.d.ts} +18 -19
- package/components.js +64 -0
- package/createDOM.d.ts +2 -0
- package/{src/createDOM.js → createDOM.js} +17 -35
- package/createDescribe.d.ts +7 -0
- package/createDescribe.js +26 -0
- package/createRenderer.d.ts +214 -0
- package/createRenderer.js +428 -0
- package/createRenderer.test.d.ts +1 -0
- package/describeConformance.d.ts +200 -0
- package/describeConformance.js +1038 -0
- package/env.d.ts +1 -0
- package/env.js +11 -0
- package/esm/chai.types.d.ts +74 -0
- package/esm/chai.types.js +3 -0
- package/esm/chaiPlugin.d.ts +4 -0
- package/esm/chaiPlugin.js +281 -0
- package/esm/components.d.ts +35 -0
- package/esm/components.js +56 -0
- package/esm/createDOM.d.ts +2 -0
- package/esm/createDOM.js +47 -0
- package/esm/createDescribe.d.ts +7 -0
- package/esm/createDescribe.js +19 -0
- package/esm/createRenderer.d.ts +214 -0
- package/esm/createRenderer.js +390 -0
- package/esm/createRenderer.test.d.ts +1 -0
- package/esm/describeConformance.d.ts +200 -0
- package/esm/describeConformance.js +1024 -0
- package/esm/env.d.ts +1 -0
- package/esm/env.js +5 -0
- package/{build → esm}/fireDiscreteEvent.d.ts +1 -2
- package/{src/fireDiscreteEvent.ts → esm/fireDiscreteEvent.js} +10 -18
- package/esm/flushMicrotasks.d.ts +1 -0
- package/{src/flushMicrotasks.ts → esm/flushMicrotasks.js} +2 -3
- package/{build → esm}/focusVisible.d.ts +1 -2
- package/{src/focusVisible.ts → esm/focusVisible.js} +10 -9
- package/esm/index.d.ts +18 -0
- package/esm/index.js +27 -0
- package/esm/init.d.ts +1 -0
- package/{src → esm}/init.js +4 -2
- package/esm/initMatchers.d.ts +1 -0
- package/esm/initMatchers.js +6 -0
- package/esm/initMatchers.test.d.ts +1 -0
- package/esm/initPlaywrightMatchers.d.ts +24 -0
- package/esm/initPlaywrightMatchers.js +40 -0
- package/esm/package.json +1 -0
- package/esm/reactMajor.d.ts +2 -0
- package/esm/reactMajor.js +2 -0
- package/esm/setup.d.ts +1 -0
- package/{src → esm}/setup.js +2 -4
- package/esm/setupVitest.d.ts +1 -0
- package/esm/setupVitest.js +28 -0
- package/esm/setupVitestBrowser.d.ts +1 -0
- package/esm/setupVitestBrowser.js +30 -0
- package/fireDiscreteEvent.d.ts +6 -0
- package/fireDiscreteEvent.js +79 -0
- package/flushMicrotasks.d.ts +1 -0
- package/flushMicrotasks.js +10 -0
- package/focusVisible.d.ts +7 -0
- package/focusVisible.js +44 -0
- package/index.d.ts +18 -0
- package/index.js +139 -0
- package/init.d.ts +1 -0
- package/init.js +15 -0
- package/initMatchers.d.ts +1 -0
- package/initMatchers.js +10 -0
- package/initMatchers.test.d.ts +1 -0
- package/initPlaywrightMatchers.d.ts +24 -0
- package/initPlaywrightMatchers.js +42 -0
- package/package.json +89 -46
- package/reactMajor.d.ts +2 -0
- package/reactMajor.js +9 -0
- package/setup.d.ts +1 -0
- package/setup.js +10 -0
- package/setupVitest.d.ts +1 -0
- package/setupVitest.js +32 -0
- package/setupVitestBrowser.d.ts +1 -0
- package/setupVitestBrowser.js +34 -0
- package/build/.tsbuildinfo +0 -1
- package/build/KarmaReporterReactProfiler.d.ts +0 -51
- package/build/KarmaReporterReactProfiler.d.ts.map +0 -1
- package/build/KarmaReporterReactProfiler.js +0 -66
- package/build/KarmaReporterReactProfiler.js.map +0 -1
- package/build/chai.types.d.ts +0 -75
- package/build/chai.types.d.ts.map +0 -1
- package/build/chai.types.js +0 -3
- package/build/chai.types.js.map +0 -1
- package/build/chaiPlugin.d.ts +0 -5
- package/build/chaiPlugin.d.ts.map +0 -1
- package/build/chaiPlugin.js +0 -416
- package/build/chaiPlugin.js.map +0 -1
- package/build/components.d.ts.map +0 -1
- package/build/components.js +0 -88
- package/build/components.js.map +0 -1
- package/build/createDOM.d.ts +0 -3
- package/build/createDOM.d.ts.map +0 -1
- package/build/createDOM.js +0 -60
- package/build/createDOM.js.map +0 -1
- package/build/createDescribe.d.ts +0 -8
- package/build/createDescribe.d.ts.map +0 -1
- package/build/createDescribe.js +0 -22
- package/build/createDescribe.js.map +0 -1
- package/build/createRenderer.d.ts +0 -215
- package/build/createRenderer.d.ts.map +0 -1
- package/build/createRenderer.js +0 -564
- package/build/createRenderer.js.map +0 -1
- package/build/createRenderer.test.d.ts +0 -2
- package/build/createRenderer.test.d.ts.map +0 -1
- package/build/createRenderer.test.js +0 -58
- package/build/createRenderer.test.js.map +0 -1
- package/build/describeConformance.d.ts +0 -201
- package/build/describeConformance.d.ts.map +0 -1
- package/build/describeConformance.js +0 -859
- package/build/describeConformance.js.map +0 -1
- package/build/describeSkipIf.d.ts +0 -4
- package/build/describeSkipIf.d.ts.map +0 -1
- package/build/describeSkipIf.js +0 -10
- package/build/describeSkipIf.js.map +0 -1
- package/build/fireDiscreteEvent.d.ts.map +0 -1
- package/build/fireDiscreteEvent.js +0 -77
- package/build/fireDiscreteEvent.js.map +0 -1
- package/build/flushMicrotasks.d.ts +0 -2
- package/build/flushMicrotasks.d.ts.map +0 -1
- package/build/flushMicrotasks.js +0 -8
- package/build/flushMicrotasks.js.map +0 -1
- package/build/focusVisible.d.ts.map +0 -1
- package/build/focusVisible.js +0 -38
- package/build/focusVisible.js.map +0 -1
- package/build/index.d.ts +0 -18
- package/build/index.d.ts.map +0 -1
- package/build/index.js +0 -68
- package/build/index.js.map +0 -1
- package/build/init.d.ts +0 -2
- package/build/init.d.ts.map +0 -1
- package/build/init.js +0 -46
- package/build/init.js.map +0 -1
- package/build/initMatchers.d.ts +0 -2
- package/build/initMatchers.d.ts.map +0 -1
- package/build/initMatchers.js +0 -45
- package/build/initMatchers.js.map +0 -1
- package/build/initMatchers.test.d.ts +0 -2
- package/build/initMatchers.test.d.ts.map +0 -1
- package/build/initMatchers.test.js +0 -101
- package/build/initMatchers.test.js.map +0 -1
- package/build/initPlaywrightMatchers.d.ts +0 -25
- package/build/initPlaywrightMatchers.d.ts.map +0 -1
- package/build/initPlaywrightMatchers.js +0 -73
- package/build/initPlaywrightMatchers.js.map +0 -1
- package/build/mochaHooks.d.ts +0 -24
- package/build/mochaHooks.d.ts.map +0 -1
- package/build/mochaHooks.js +0 -165
- package/build/mochaHooks.js.map +0 -1
- package/build/mochaHooks.test.d.ts +0 -2
- package/build/mochaHooks.test.d.ts.map +0 -1
- package/build/mochaHooks.test.js +0 -128
- package/build/mochaHooks.test.js.map +0 -1
- package/build/reactMajor.d.ts +0 -3
- package/build/reactMajor.d.ts.map +0 -1
- package/build/reactMajor.js +0 -38
- package/build/reactMajor.js.map +0 -1
- package/build/setup.d.ts +0 -2
- package/build/setup.d.ts.map +0 -1
- package/build/setup.js +0 -10
- package/build/setup.js.map +0 -1
- package/build/setupBabel.d.ts +0 -2
- package/build/setupBabel.d.ts.map +0 -1
- package/build/setupBabel.js +0 -5
- package/build/setupBabel.js.map +0 -1
- package/build/setupBabelPlaywright.d.ts +0 -2
- package/build/setupBabelPlaywright.d.ts.map +0 -1
- package/build/setupBabelPlaywright.js +0 -14
- package/build/setupBabelPlaywright.js.map +0 -1
- package/build/setupJSDOM.d.ts +0 -7
- package/build/setupJSDOM.d.ts.map +0 -1
- package/build/setupJSDOM.js +0 -17
- package/build/setupJSDOM.js.map +0 -1
- package/build/setupKarma.d.ts +0 -2
- package/build/setupKarma.d.ts.map +0 -1
- package/build/setupKarma.js +0 -56
- package/build/setupKarma.js.map +0 -1
- package/build/setupVitest.d.ts +0 -2
- package/build/setupVitest.d.ts.map +0 -1
- package/build/setupVitest.js +0 -131
- package/build/setupVitest.js.map +0 -1
- package/src/KarmaReporterReactProfiler.js +0 -82
- package/src/chai-augmentation.d.ts +0 -8
- package/src/chaiPlugin.ts +0 -515
- package/src/components.tsx +0 -61
- package/src/createDOM.d.ts +0 -9
- package/src/createDescribe.ts +0 -31
- package/src/createRenderer.test.js +0 -31
- package/src/createRenderer.tsx +0 -808
- package/src/describeConformance.tsx +0 -1257
- package/src/describeSkipIf.tsx +0 -11
- package/src/index.ts +0 -25
- package/src/initMatchers.test.js +0 -124
- package/src/initMatchers.ts +0 -7
- package/src/initPlaywrightMatchers.ts +0 -101
- package/src/mochaHooks.js +0 -200
- package/src/mochaHooks.test.js +0 -116
- package/src/reactMajor.ts +0 -3
- package/src/setupBabel.js +0 -3
- package/src/setupBabelPlaywright.js +0 -13
- package/src/setupJSDOM.js +0 -20
- package/src/setupKarma.js +0 -65
- package/src/setupVitest.ts +0 -117
- package/tsconfig.build.json +0 -16
- 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";
|
package/initMatchers.js
ADDED
|
@@ -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.
|
|
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.
|
|
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
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"
|
|
78
|
-
"
|
|
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
|
}
|
package/reactMajor.d.ts
ADDED
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
|
+
});
|
package/setupVitest.d.ts
ADDED
|
@@ -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
|
+
}
|