@mui/internal-test-utils 1.0.0-dev.20240529-082515-213b5e33ab
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/CHANGELOG.md +5 -0
- package/LICENSE +21 -0
- package/README.md +9 -0
- package/build/.tsbuildinfo +1 -0
- package/build/KarmaReporterReactProfiler.d.ts +51 -0
- package/build/KarmaReporterReactProfiler.d.ts.map +1 -0
- package/build/KarmaReporterReactProfiler.js +68 -0
- package/build/KarmaReporterReactProfiler.js.map +1 -0
- package/build/components.d.ts +36 -0
- package/build/components.d.ts.map +1 -0
- package/build/components.js +78 -0
- package/build/components.js.map +1 -0
- package/build/createDOM.d.ts +3 -0
- package/build/createDOM.d.ts.map +1 -0
- package/build/createDOM.js +60 -0
- package/build/createDOM.js.map +1 -0
- package/build/createDescribe.d.ts +8 -0
- package/build/createDescribe.d.ts.map +1 -0
- package/build/createDescribe.js +22 -0
- package/build/createDescribe.js.map +1 -0
- package/build/createMount.d.ts +9 -0
- package/build/createMount.d.ts.map +1 -0
- package/build/createMount.js +120 -0
- package/build/createMount.js.map +1 -0
- package/build/createRenderer.d.ts +231 -0
- package/build/createRenderer.d.ts.map +1 -0
- package/build/createRenderer.js +506 -0
- package/build/createRenderer.js.map +1 -0
- package/build/createRenderer.test.d.ts +2 -0
- package/build/createRenderer.test.d.ts.map +1 -0
- package/build/createRenderer.test.js +48 -0
- package/build/createRenderer.test.js.map +1 -0
- package/build/describeConformance.d.ts +152 -0
- package/build/describeConformance.d.ts.map +1 -0
- package/build/describeConformance.js +815 -0
- package/build/describeConformance.js.map +1 -0
- package/build/findOutermostIntrinsic.d.ts +14 -0
- package/build/findOutermostIntrinsic.d.ts.map +1 -0
- package/build/findOutermostIntrinsic.js +22 -0
- package/build/findOutermostIntrinsic.js.map +1 -0
- package/build/findOutermostIntrinsic.test.d.ts +2 -0
- package/build/findOutermostIntrinsic.test.d.ts.map +1 -0
- package/build/findOutermostIntrinsic.test.js +70 -0
- package/build/findOutermostIntrinsic.test.js.map +1 -0
- package/build/fireDiscreteEvent.d.ts +7 -0
- package/build/fireDiscreteEvent.d.ts.map +1 -0
- package/build/fireDiscreteEvent.js +98 -0
- package/build/fireDiscreteEvent.js.map +1 -0
- package/build/flushMicrotasks.d.ts +2 -0
- package/build/flushMicrotasks.d.ts.map +1 -0
- package/build/flushMicrotasks.js +11 -0
- package/build/flushMicrotasks.js.map +1 -0
- package/build/focusVisible.d.ts +7 -0
- package/build/focusVisible.d.ts.map +1 -0
- package/build/focusVisible.js +33 -0
- package/build/focusVisible.js.map +1 -0
- package/build/index.d.ts +18 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +59 -0
- package/build/index.js.map +1 -0
- package/build/init.d.ts +2 -0
- package/build/init.d.ts.map +1 -0
- package/build/init.js +42 -0
- package/build/init.js.map +1 -0
- package/build/initMatchers.d.ts +81 -0
- package/build/initMatchers.d.ts.map +1 -0
- package/build/initMatchers.js +431 -0
- package/build/initMatchers.js.map +1 -0
- package/build/initMatchers.test.d.ts +2 -0
- package/build/initMatchers.test.d.ts.map +1 -0
- package/build/initMatchers.test.js +103 -0
- package/build/initMatchers.test.js.map +1 -0
- package/build/initPlaywrightMatchers.d.ts +25 -0
- package/build/initPlaywrightMatchers.d.ts.map +1 -0
- package/build/initPlaywrightMatchers.js +63 -0
- package/build/initPlaywrightMatchers.js.map +1 -0
- package/build/mochaHooks.d.ts +25 -0
- package/build/mochaHooks.d.ts.map +1 -0
- package/build/mochaHooks.js +171 -0
- package/build/mochaHooks.js.map +1 -0
- package/build/mochaHooks.test.d.ts +2 -0
- package/build/mochaHooks.test.d.ts.map +1 -0
- package/build/mochaHooks.test.js +112 -0
- package/build/mochaHooks.test.js.map +1 -0
- package/build/setup.d.ts +2 -0
- package/build/setup.d.ts.map +1 -0
- package/build/setup.js +10 -0
- package/build/setup.js.map +1 -0
- package/build/setupBabel.d.ts +2 -0
- package/build/setupBabel.d.ts.map +1 -0
- package/build/setupBabel.js +5 -0
- package/build/setupBabel.js.map +1 -0
- package/build/setupBabelPlaywright.d.ts +2 -0
- package/build/setupBabelPlaywright.d.ts.map +1 -0
- package/build/setupBabelPlaywright.js +11 -0
- package/build/setupBabelPlaywright.js.map +1 -0
- package/build/setupJSDOM.d.ts +7 -0
- package/build/setupJSDOM.d.ts.map +1 -0
- package/build/setupJSDOM.js +17 -0
- package/build/setupJSDOM.js.map +1 -0
- package/build/setupKarma.d.ts +2 -0
- package/build/setupKarma.d.ts.map +1 -0
- package/build/setupKarma.js +56 -0
- package/build/setupKarma.js.map +1 -0
- package/build/until.d.ts +2 -0
- package/build/until.d.ts.map +1 -0
- package/build/until.js +26 -0
- package/build/until.js.map +1 -0
- package/build/until.test.d.ts +2 -0
- package/build/until.test.d.ts.map +1 -0
- package/build/until.test.js +118 -0
- package/build/until.test.js.map +1 -0
- package/build/userEvent.d.ts +8 -0
- package/build/userEvent.d.ts.map +1 -0
- package/build/userEvent.js +61 -0
- package/build/userEvent.js.map +1 -0
- package/package.json +76 -0
- package/src/KarmaReporterReactProfiler.js +81 -0
- package/src/components.tsx +61 -0
- package/src/createDOM.d.ts +9 -0
- package/src/createDOM.js +67 -0
- package/src/createDescribe.ts +31 -0
- package/src/createMount.tsx +136 -0
- package/src/createRenderer.test.js +31 -0
- package/src/createRenderer.tsx +737 -0
- package/src/describeConformance.tsx +1117 -0
- package/src/findOutermostIntrinsic.test.js +68 -0
- package/src/findOutermostIntrinsic.ts +19 -0
- package/src/fireDiscreteEvent.ts +76 -0
- package/src/flushMicrotasks.ts +8 -0
- package/src/focusVisible.ts +28 -0
- package/src/index.ts +24 -0
- package/src/init.js +15 -0
- package/src/initMatchers.test.js +126 -0
- package/src/initMatchers.ts +658 -0
- package/src/initPlaywrightMatchers.ts +96 -0
- package/src/mochaHooks.js +209 -0
- package/src/mochaHooks.test.js +113 -0
- package/src/setup.js +10 -0
- package/src/setupBabel.js +3 -0
- package/src/setupBabelPlaywright.js +10 -0
- package/src/setupJSDOM.js +20 -0
- package/src/setupKarma.js +65 -0
- package/src/until.js +28 -0
- package/src/until.test.js +120 -0
- package/src/userEvent.ts +35 -0
- package/tsconfig.build.json +17 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const chai_1 = __importStar(require("chai"));
|
|
27
|
+
chai_1.default.use((chaiAPI, utils) => {
|
|
28
|
+
chai_1.default.Assertion.addMethod('toHaveFocus', async function elementHandleIsFocused() {
|
|
29
|
+
const $elementOrHandle = utils.flag(this, 'object');
|
|
30
|
+
if ($elementOrHandle == null) {
|
|
31
|
+
throw new chai_1.AssertionError(`Expected an element handle but got ${String($elementOrHandle)}.`);
|
|
32
|
+
}
|
|
33
|
+
const $element = typeof $elementOrHandle.then === 'function'
|
|
34
|
+
? await $elementOrHandle
|
|
35
|
+
: $elementOrHandle;
|
|
36
|
+
const { isFocused, stringifiedActiveElement, stringifiedElement } = await $element.evaluate((element) => {
|
|
37
|
+
const activeElement = element.ownerDocument !== null ? element.ownerDocument.activeElement : null;
|
|
38
|
+
return {
|
|
39
|
+
isFocused: activeElement === element,
|
|
40
|
+
stringifiedElement: window.elementToString(element),
|
|
41
|
+
stringifiedActiveElement: window.elementToString(activeElement),
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
this.assert(isFocused, `expected element to have focus`, `expected element to NOT have focus \n${stringifiedElement}`, stringifiedElement, stringifiedActiveElement);
|
|
45
|
+
});
|
|
46
|
+
chai_1.default.Assertion.addMethod('toHaveAttribute', async function elementHandleHasAttribute(attributeName, attributeValue) {
|
|
47
|
+
const $elementOrHandle = utils.flag(this, 'object');
|
|
48
|
+
if ($elementOrHandle == null) {
|
|
49
|
+
throw new chai_1.AssertionError(`Expected an element handle but got ${String($elementOrHandle)}.`);
|
|
50
|
+
}
|
|
51
|
+
const $element = typeof $elementOrHandle.then === 'function'
|
|
52
|
+
? await $elementOrHandle
|
|
53
|
+
: $elementOrHandle;
|
|
54
|
+
const actualAttributeValue = await $element.getAttribute(attributeName);
|
|
55
|
+
if (attributeValue === undefined) {
|
|
56
|
+
this.assert(actualAttributeValue !== null, `expected element to have attribute \`${attributeName}\``, `expected element to NOT have attribute \`${attributeName}\``, null, null);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.assert(actualAttributeValue === attributeValue, `expected element to have attribute \`${attributeName}="${attributeValue}"\``, `expected element to NOT have attribute \`${attributeName}="${attributeValue}"\``, attributeValue, actualAttributeValue);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=initPlaywrightMatchers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initPlaywrightMatchers.js","sourceRoot":"","sources":["../src/initPlaywrightMatchers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AA8B5C,cAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;IAC1B,cAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,UAAU,sBAAsB;QAC3E,MAAM,gBAAgB,GAA2C,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,qBAAc,CAAC,sCAAsC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,QAAQ,GACZ,OAAQ,gBAAiC,CAAC,IAAI,KAAK,UAAU;YAC3D,CAAC,CAAC,MAAO,gBAA2C;YACpD,CAAC,CAAE,gBAAkC,CAAC;QAE1C,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,CACzF,CAAC,OAAO,EAAE,EAAE;YACV,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9E,OAAO;gBACL,SAAS,EAAE,aAAa,KAAK,OAAO;gBACpC,kBAAkB,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;gBACnD,wBAAwB,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa,CAAC;aAChE,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CACT,SAAS,EACT,gCAAgC,EAChC,wCAAwC,kBAAkB,EAAE,EAC5D,kBAAkB,EAClB,wBAAwB,CACzB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,cAAI,CAAC,SAAS,CAAC,SAAS,CACtB,iBAAiB,EACjB,KAAK,UAAU,yBAAyB,CAAC,aAAqB,EAAE,cAAuB;QACrF,MAAM,gBAAgB,GAA2C,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,gBAAgB,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,qBAAc,CAAC,sCAAsC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,QAAQ,GACZ,OAAQ,gBAAiC,CAAC,IAAI,KAAK,UAAU;YAC3D,CAAC,CAAC,MAAO,gBAA2C;YACpD,CAAC,CAAE,gBAAkC,CAAC;QAE1C,MAAM,oBAAoB,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAExE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CACT,oBAAoB,KAAK,IAAI,EAC7B,wCAAwC,aAAa,IAAI,EACzD,4CAA4C,aAAa,IAAI,EAC7D,IAAI,EACJ,IAAI,CACL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CACT,oBAAoB,KAAK,cAAc,EACvC,wCAAwC,aAAa,KAAK,cAAc,KAAK,EAC7E,4CAA4C,aAAa,KAAK,cAAc,KAAK,EACjF,cAAc,EACd,oBAAoB,CACrB,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/// <reference types="mocha" />
|
|
2
|
+
export type MochaHook = (this: import('mocha').Context) => void;
|
|
3
|
+
export type MochaHooks = {
|
|
4
|
+
beforeAll: MochaHook[];
|
|
5
|
+
afterAll: MochaHook[];
|
|
6
|
+
beforeEach: MochaHook[];
|
|
7
|
+
afterEach: MochaHook[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* -- custom definition for `const mocha = require('mocha')`
|
|
11
|
+
*/
|
|
12
|
+
export type Mocha = {
|
|
13
|
+
utils: typeof Mocha.utils;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @param {Mocha} Mocha
|
|
17
|
+
* @returns MochaHooks
|
|
18
|
+
*/
|
|
19
|
+
export function createMochaHooks(Mocha: Mocha): {
|
|
20
|
+
beforeAll: MochaHook[];
|
|
21
|
+
afterAll: MochaHook[];
|
|
22
|
+
beforeEach: MochaHook[];
|
|
23
|
+
afterEach: MochaHook[];
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=mochaHooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mochaHooks.d.ts","sourceRoot":"","sources":["../src/mochaHooks.js"],"names":[],"mappings":";wBAIa,CAAC,IAAI,EAAE,OAAO,OAAO,EAAE,OAAO,KAAK,IAAI;;eAGtC,SAAS,EAAE;cACX,SAAS,EAAE;gBACX,SAAS,EAAE;eACX,SAAS,EAAE;;;;;;;;AAsLzB;;;GAGG;AACH,wCAHW,KAAK;;;;;EAaf"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// @ts-check
|
|
3
|
+
const formatUtil = require('format-util');
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {(this: import('mocha').Context) => void} MochaHook
|
|
6
|
+
*
|
|
7
|
+
* @typedef {object} MochaHooks
|
|
8
|
+
* @property {MochaHook[]} beforeAll
|
|
9
|
+
* @property {MochaHook[]} afterAll
|
|
10
|
+
* @property {MochaHook[]} beforeEach
|
|
11
|
+
* @property {MochaHook[]} afterEach
|
|
12
|
+
*
|
|
13
|
+
* @typedef {object} Mocha -- custom definition for `const mocha = require('mocha')`
|
|
14
|
+
* @property {import('mocha').utils} utils
|
|
15
|
+
*/
|
|
16
|
+
const isKarma = Boolean(process.env.KARMA);
|
|
17
|
+
/**
|
|
18
|
+
* Polyfills for https://github.com/facebook/react/issues/19416.
|
|
19
|
+
* @param {[stack: string, message: string][]} consoleCalls
|
|
20
|
+
* @returns {[stack: string, message: string][]}
|
|
21
|
+
*/
|
|
22
|
+
function dedupeActWarningsByComponent(consoleCalls) {
|
|
23
|
+
/**
|
|
24
|
+
* @type {[stack: string, message: string][]}
|
|
25
|
+
*/
|
|
26
|
+
const dedupedCalls = [];
|
|
27
|
+
/**
|
|
28
|
+
* @type {string | undefined}
|
|
29
|
+
*/
|
|
30
|
+
let updatingComponentOutsideAct;
|
|
31
|
+
consoleCalls.forEach(([stack, message]) => {
|
|
32
|
+
const componentName = message.match(/An update to (.+?) ran an effect, but was not wrapped in act/)?.[1];
|
|
33
|
+
const duplicateMissingActWarning = componentName !== undefined && componentName === updatingComponentOutsideAct;
|
|
34
|
+
if (!duplicateMissingActWarning) {
|
|
35
|
+
dedupedCalls.push([stack, message]);
|
|
36
|
+
}
|
|
37
|
+
updatingComponentOutsideAct = componentName;
|
|
38
|
+
});
|
|
39
|
+
return dedupedCalls;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @param {Mocha} Mocha
|
|
43
|
+
* @param {'warn' | 'error'} methodName
|
|
44
|
+
* @param {string} expectedMatcher
|
|
45
|
+
* @returns MochaHooks
|
|
46
|
+
*/
|
|
47
|
+
function createUnexpectedConsoleMessagesHooks(Mocha, methodName, expectedMatcher) {
|
|
48
|
+
/**
|
|
49
|
+
* @type {MochaHooks}
|
|
50
|
+
*/
|
|
51
|
+
const mochaHooks = {
|
|
52
|
+
beforeAll: [],
|
|
53
|
+
afterAll: [],
|
|
54
|
+
beforeEach: [],
|
|
55
|
+
afterEach: [],
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* @type {[stack: string, message: string][]}
|
|
59
|
+
*/
|
|
60
|
+
const unexpectedCalls = [];
|
|
61
|
+
const stackTraceFilter = Mocha.utils.stackTraceFilter();
|
|
62
|
+
/**
|
|
63
|
+
* @param {string} format
|
|
64
|
+
* @param {...unknown} args
|
|
65
|
+
* @returns {void}
|
|
66
|
+
*/
|
|
67
|
+
function logUnexpectedConsoleCalls(format, ...args) {
|
|
68
|
+
const message = formatUtil(format, ...args);
|
|
69
|
+
// Safe stack so that test dev can track where the unexpected console message was created.
|
|
70
|
+
const { stack } = new Error();
|
|
71
|
+
if (stack === undefined) {
|
|
72
|
+
throw new TypeError(`Unable to get stack. Logging unexpected console calls is only supported in environments where Error.prototype.stack is implemented.`);
|
|
73
|
+
}
|
|
74
|
+
if (process.env.NODE_ENV === 'production') {
|
|
75
|
+
// TODO: mock scheduler
|
|
76
|
+
if (message.indexOf('act(...) is not supported in production builds of React') !== -1) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Ignore legacy root deprecation warnings
|
|
81
|
+
// TODO: Remove once we no longer use legacy roots.
|
|
82
|
+
if (message.indexOf('Use createRoot instead.') !== -1 ||
|
|
83
|
+
message.indexOf('Use hydrateRoot instead.') !== -1) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (message.indexOf('Warning: useLayoutEffect does nothing on the server') !== -1) {
|
|
87
|
+
// Controversial warning that is commonly ignored by switching to `useEffect` on the server.
|
|
88
|
+
// https://github.com/facebook/react/issues/14927
|
|
89
|
+
// However, this switch doesn't work since it relies on environment sniffing and we test SSR in a browser environment.
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// Unclear why this is an issue for the current occurrences of this warning.
|
|
93
|
+
// TODO: Revisit once https://github.com/facebook/react/issues/22796 is resolved
|
|
94
|
+
if (message.indexOf('Detected multiple renderers concurrently rendering the same context provider.') !== -1) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
unexpectedCalls.push([
|
|
98
|
+
// first line includes the (empty) error message
|
|
99
|
+
// i.e. Remove the `Error:` line
|
|
100
|
+
// second line is this frame
|
|
101
|
+
stackTraceFilter(stack.split('\n').slice(2).join('\n')),
|
|
102
|
+
message,
|
|
103
|
+
]);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @type {Console['warn' | 'error']}
|
|
107
|
+
*/
|
|
108
|
+
let originalConsoleMethod;
|
|
109
|
+
mochaHooks.beforeAll.push(function registerConsoleStub() {
|
|
110
|
+
// eslint-disable-next-line no-console
|
|
111
|
+
originalConsoleMethod = console[methodName];
|
|
112
|
+
// eslint-disable-next-line no-console
|
|
113
|
+
console[methodName] = logUnexpectedConsoleCalls;
|
|
114
|
+
});
|
|
115
|
+
mochaHooks.afterAll.push(function registerConsoleStub() {
|
|
116
|
+
// eslint-disable-next-line no-console
|
|
117
|
+
console[methodName] = originalConsoleMethod;
|
|
118
|
+
});
|
|
119
|
+
mochaHooks.afterEach.push(function flushUnexpectedCalls() {
|
|
120
|
+
const actionableCalls = dedupeActWarningsByComponent(unexpectedCalls);
|
|
121
|
+
const actionableCallCount = actionableCalls.length;
|
|
122
|
+
const formattedCalls = actionableCalls.map(([stack, message], index) => `console.${methodName} message #${index + 1}:\n ${message}\n\nStack:\n${stack}`);
|
|
123
|
+
unexpectedCalls.length = 0;
|
|
124
|
+
// eslint-disable-next-line no-console
|
|
125
|
+
if (console[methodName] !== logUnexpectedConsoleCalls) {
|
|
126
|
+
throw new Error(`Did not tear down spy or stub of console.${methodName} in your test.`);
|
|
127
|
+
}
|
|
128
|
+
if (actionableCallCount > 0) {
|
|
129
|
+
// In karma `file` is `null`.
|
|
130
|
+
// We still have the stacktrace though
|
|
131
|
+
// @ts-expect-error -- this.currentTest being undefined would be a bug
|
|
132
|
+
const location = this.currentTest.file ?? '(unknown file)';
|
|
133
|
+
const message = `Expected test not to call console.${methodName}() but instead received ${actionableCallCount} calls.\n\n` +
|
|
134
|
+
'If the warning is expected, test for it explicitly by ' +
|
|
135
|
+
// Don't add any punctuation after the location.
|
|
136
|
+
// Otherwise it's not clickable in IDEs
|
|
137
|
+
`using the ${expectedMatcher}() matcher.\nTest location:\n ${location} `;
|
|
138
|
+
const error = new Error(`${message}\n\n${formattedCalls.join('\n\n')}`);
|
|
139
|
+
// The stack of `flushUnexpectedCalls` is irrelevant.
|
|
140
|
+
// It includes no clue where the test was triggered
|
|
141
|
+
error.stack = '';
|
|
142
|
+
if (isKarma) {
|
|
143
|
+
// @ts-expect-error -- this.currentTest being undefined would be a bug
|
|
144
|
+
const testPath = `"${this.currentTest.fullTitle()}"`;
|
|
145
|
+
error.message += `\n\nin ${testPath}`;
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// @ts-expect-error -- this.test being undefined would be a bug
|
|
150
|
+
this.test.error(error);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
return mochaHooks;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* @param {Mocha} Mocha
|
|
158
|
+
* @returns MochaHooks
|
|
159
|
+
*/
|
|
160
|
+
function createMochaHooks(Mocha) {
|
|
161
|
+
const warnHooks = createUnexpectedConsoleMessagesHooks(Mocha, 'warn', 'toWarnDev');
|
|
162
|
+
const errorHooks = createUnexpectedConsoleMessagesHooks(Mocha, 'error', 'toErrorDev');
|
|
163
|
+
return {
|
|
164
|
+
beforeAll: [...warnHooks.beforeAll, ...errorHooks.beforeAll],
|
|
165
|
+
afterAll: [...warnHooks.afterAll, ...errorHooks.afterAll],
|
|
166
|
+
beforeEach: [...warnHooks.beforeEach, ...errorHooks.beforeEach],
|
|
167
|
+
afterEach: [...warnHooks.afterEach, ...errorHooks.afterEach],
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
module.exports = { createMochaHooks };
|
|
171
|
+
//# sourceMappingURL=mochaHooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mochaHooks.js","sourceRoot":"","sources":["../src/mochaHooks.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mochaHooks.test.d.ts","sourceRoot":"","sources":["../src/mochaHooks.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const Mocha = __importStar(require("mocha"));
|
|
27
|
+
const chai_1 = require("chai");
|
|
28
|
+
const React = __importStar(require("react"));
|
|
29
|
+
const sinon_1 = require("sinon");
|
|
30
|
+
const mochaHooks_1 = require("./mochaHooks");
|
|
31
|
+
const createRenderer_1 = require("./createRenderer");
|
|
32
|
+
describe('mochaHooks', () => {
|
|
33
|
+
// one block per hook.
|
|
34
|
+
describe('afterEach', () => {
|
|
35
|
+
describe('on unexpected console.(warn|error) in afterEach', function suite() {
|
|
36
|
+
const mochaHooks = (0, mochaHooks_1.createMochaHooks)(Mocha);
|
|
37
|
+
beforeEach(function beforeEachHook() {
|
|
38
|
+
mochaHooks.beforeAll.forEach((beforeAllMochaHook) => {
|
|
39
|
+
beforeAllMochaHook.call(this);
|
|
40
|
+
});
|
|
41
|
+
mochaHooks.beforeEach.forEach((beforeEachMochaHook) => {
|
|
42
|
+
beforeEachMochaHook.call(this);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
it('throws an error', () => {
|
|
46
|
+
console.warn('unexpected warning');
|
|
47
|
+
console.error('unexpected error');
|
|
48
|
+
});
|
|
49
|
+
afterEach(function afterEachHook() {
|
|
50
|
+
const errorStub = (0, sinon_1.stub)(this.test, 'error');
|
|
51
|
+
mochaHooks.afterEach.forEach((afterEachMochaHook) => {
|
|
52
|
+
afterEachMochaHook.call(this);
|
|
53
|
+
});
|
|
54
|
+
mochaHooks.afterAll.forEach((afterAllMochaHook) => {
|
|
55
|
+
afterAllMochaHook.call(this);
|
|
56
|
+
});
|
|
57
|
+
(0, chai_1.expect)(errorStub.callCount).to.equal(2);
|
|
58
|
+
(0, chai_1.expect)(String(errorStub.firstCall.args[0])).to.include('console.warn message #1:\n unexpected warning\n\nStack:');
|
|
59
|
+
(0, chai_1.expect)(String(errorStub.secondCall.args[0])).to.include('console.error message #1:\n unexpected error\n\nStack:');
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
// TODO: May not be relevant in React 18
|
|
63
|
+
describe('when having missing act() warnings by component', () => {
|
|
64
|
+
const mochaHooks = (0, mochaHooks_1.createMochaHooks)(Mocha);
|
|
65
|
+
// missing act warnings only happen in StrictMode
|
|
66
|
+
const { render } = (0, createRenderer_1.createRenderer)({ strict: true });
|
|
67
|
+
beforeEach(function beforeEachHook() {
|
|
68
|
+
mochaHooks.beforeAll.forEach((beforeAllMochaHook) => {
|
|
69
|
+
beforeAllMochaHook.call(this);
|
|
70
|
+
});
|
|
71
|
+
mochaHooks.beforeEach.forEach((beforeEachMochaHook) => {
|
|
72
|
+
beforeEachMochaHook.call(this);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
it('dedupes them', () => {
|
|
76
|
+
const Child = React.forwardRef(function Child() {
|
|
77
|
+
React.useEffect(() => { });
|
|
78
|
+
React.useEffect(() => { });
|
|
79
|
+
return null;
|
|
80
|
+
});
|
|
81
|
+
let unsafeSetState;
|
|
82
|
+
function Parent() {
|
|
83
|
+
const [state, setState] = React.useState(0);
|
|
84
|
+
unsafeSetState = setState;
|
|
85
|
+
React.useEffect(() => { });
|
|
86
|
+
React.useEffect(() => { });
|
|
87
|
+
return React.createElement(Child, { rerender: state });
|
|
88
|
+
}
|
|
89
|
+
render(React.createElement(Parent, null));
|
|
90
|
+
// not wrapped in act()
|
|
91
|
+
unsafeSetState(1);
|
|
92
|
+
// make sure effects are flushed
|
|
93
|
+
(0, createRenderer_1.act)(() => { });
|
|
94
|
+
});
|
|
95
|
+
afterEach(function afterEachHook() {
|
|
96
|
+
const errorStub = (0, sinon_1.stub)(this.test, 'error');
|
|
97
|
+
mochaHooks.afterEach.forEach((afterEachMochaHook) => {
|
|
98
|
+
afterEachMochaHook.call(this);
|
|
99
|
+
});
|
|
100
|
+
mochaHooks.afterAll.forEach((afterAllMochaHook) => {
|
|
101
|
+
afterAllMochaHook.call(this);
|
|
102
|
+
});
|
|
103
|
+
(0, chai_1.expect)(errorStub.callCount).to.equal(1);
|
|
104
|
+
const error = String(errorStub.firstCall.args[0]);
|
|
105
|
+
(0, chai_1.expect)(error.match(/An update to Parent inside a test was not wrapped in act/g)).to.have.lengthOf(1);
|
|
106
|
+
(0, chai_1.expect)(error.match(/An update to Parent ran an effect, but was not wrapped in act/g) ?? []).to.have.lengthOf(React.startTransition !== undefined ? 0 : 1);
|
|
107
|
+
(0, chai_1.expect)(error.match(/An update to ForwardRef\(Child\) ran an effect, but was not wrapped in act/g) ?? []).to.have.lengthOf(React.startTransition !== undefined ? 0 : 1);
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=mochaHooks.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mochaHooks.test.js","sourceRoot":"","sources":["../src/mochaHooks.test.js"],"names":[],"mappings":"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"}
|
package/build/setup.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.js"],"names":[],"mappings":""}
|
package/build/setup.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const testingLibrary = require('@testing-library/dom');
|
|
3
|
+
const createDOM = require('./createDOM');
|
|
4
|
+
createDOM();
|
|
5
|
+
require('./init');
|
|
6
|
+
testingLibrary.configure({
|
|
7
|
+
// JSDOM logs errors otherwise on `getComputedStyle(element, pseudoElement)` calls.
|
|
8
|
+
computedStyleSupportsPseudoElements: false,
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.js"],"names":[],"mappings":";AAAA,MAAM,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACvD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzC,SAAS,EAAE,CAAC;AACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElB,cAAc,CAAC,SAAS,CAAC;IACvB,mFAAmF;IACnF,mCAAmC,EAAE,KAAK;CAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupBabel.d.ts","sourceRoot":"","sources":["../src/setupBabel.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupBabel.js","sourceRoot":"","sources":["../src/setupBabel.js"],"names":[],"mappings":";AAAA,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;CACnC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupBabelPlaywright.d.ts","sourceRoot":"","sources":["../src/setupBabelPlaywright.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// In playwright we sometimes write functions that are executed in the browser environment.
|
|
3
|
+
// Since we can't tell babel which parts of the code are executed in which environment we can only disable it entirely.
|
|
4
|
+
// We're only stripping types and compiling ES6 to CommonJS modules which should be safe.
|
|
5
|
+
require('@babel/register')({
|
|
6
|
+
configFile: false,
|
|
7
|
+
extensions: ['.js', '.ts', '.tsx'],
|
|
8
|
+
presets: [require.resolve('@babel/preset-typescript')],
|
|
9
|
+
plugins: [require.resolve('@babel/plugin-transform-modules-commonjs')],
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=setupBabelPlaywright.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupBabelPlaywright.js","sourceRoot":"","sources":["../src/setupBabelPlaywright.js"],"names":[],"mappings":";AAAA,2FAA2F;AAC3F,uHAAuH;AACvH,yFAAyF;AAEzF,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;CACvE,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const mochaHooks: {
|
|
2
|
+
beforeAll: import("./mochaHooks").MochaHook[];
|
|
3
|
+
afterAll: import("./mochaHooks").MochaHook[];
|
|
4
|
+
beforeEach: import("./mochaHooks").MochaHook[];
|
|
5
|
+
afterEach: import("./mochaHooks").MochaHook[];
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=setupJSDOM.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupJSDOM.d.ts","sourceRoot":"","sources":["../src/setupJSDOM.js"],"names":[],"mappings":"AAiBA;;;;;EAA2C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const testingLibrary = require('@testing-library/dom');
|
|
3
|
+
const Mocha = require('mocha');
|
|
4
|
+
const createDOM = require('./createDOM');
|
|
5
|
+
const { createMochaHooks } = require('./mochaHooks');
|
|
6
|
+
// Enable missing act warnings: https://github.com/reactwg/react-18/discussions/102
|
|
7
|
+
global.jest = null;
|
|
8
|
+
global.IS_REACT_ACT_ENVIRONMENT = true;
|
|
9
|
+
createDOM();
|
|
10
|
+
require('./init');
|
|
11
|
+
testingLibrary.configure({
|
|
12
|
+
// JSDOM logs errors otherwise on `getComputedStyle(element, pseudoElement)` calls.
|
|
13
|
+
computedStyleSupportsPseudoElements: false,
|
|
14
|
+
});
|
|
15
|
+
const mochaHooks = createMochaHooks(Mocha);
|
|
16
|
+
module.exports = { mochaHooks };
|
|
17
|
+
//# sourceMappingURL=setupJSDOM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupJSDOM.js","sourceRoot":"","sources":["../src/setupJSDOM.js"],"names":[],"mappings":";AAAA,MAAM,cAAc,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AACvD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACzC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAErD,mFAAmF;AACnF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAEvC,SAAS,EAAE,CAAC;AACZ,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElB,cAAc,CAAC,SAAS,CAAC;IACvB,mFAAmF;IACnF,mCAAmC,EAAE,KAAK;CAC3C,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAE3C,MAAM,CAAC,OAAO,GAAG,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupKarma.d.ts","sourceRoot":"","sources":["../src/setupKarma.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-env mocha */
|
|
4
|
+
const mochaHooks_1 = require("./mochaHooks");
|
|
5
|
+
const mochaHooks = (0, mochaHooks_1.createMochaHooks)(window.Mocha);
|
|
6
|
+
/**
|
|
7
|
+
* Emit events from `DispatchingProfiler` as `browser_info` karma events.
|
|
8
|
+
*/
|
|
9
|
+
function handleReactProfilerResults(event) {
|
|
10
|
+
// Only own properties are persisted when sending the object.
|
|
11
|
+
const info = { type: event.type, detail: event.detail };
|
|
12
|
+
// eslint-disable-next-line no-underscore-dangle -- public: http://karma-runner.github.io/5.2/dev/plugins.html
|
|
13
|
+
window.__karma__.info(info);
|
|
14
|
+
}
|
|
15
|
+
before(function beforeAllHook() {
|
|
16
|
+
mochaHooks.beforeAll.forEach((mochaHook) => {
|
|
17
|
+
mochaHook.call(this);
|
|
18
|
+
});
|
|
19
|
+
window.addEventListener('reactProfilerResults', handleReactProfilerResults);
|
|
20
|
+
});
|
|
21
|
+
after(function afterAllHook() {
|
|
22
|
+
window.removeEventListener('reactProfilerResults', handleReactProfilerResults);
|
|
23
|
+
mochaHooks.afterAll.forEach((mochaHook) => {
|
|
24
|
+
mochaHook.call(this);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
beforeEach(function beforeEachHook() {
|
|
28
|
+
mochaHooks.beforeEach.forEach((mochaHook) => {
|
|
29
|
+
mochaHook.call(this);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
afterEach(function afterEachHook() {
|
|
33
|
+
mochaHooks.afterEach.forEach((mochaHook) => {
|
|
34
|
+
mochaHook.call(this);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
// Ensure that uncaught exceptions between tests result in the tests failing.
|
|
38
|
+
// This works around an issue with mocha / karma-mocha, see
|
|
39
|
+
// https://github.com/karma-runner/karma-mocha/issues/227
|
|
40
|
+
let pendingError = null;
|
|
41
|
+
let pendingErrorNotice = null;
|
|
42
|
+
window.addEventListener('error', (event) => {
|
|
43
|
+
pendingError = event.error;
|
|
44
|
+
pendingErrorNotice = 'An uncaught exception was thrown between tests';
|
|
45
|
+
});
|
|
46
|
+
window.addEventListener('unhandledrejection', (event) => {
|
|
47
|
+
pendingError = event.reason;
|
|
48
|
+
pendingErrorNotice = 'An uncaught promise rejection occurred between tests';
|
|
49
|
+
});
|
|
50
|
+
afterEach(() => {
|
|
51
|
+
if (pendingError) {
|
|
52
|
+
console.error(pendingErrorNotice);
|
|
53
|
+
throw pendingError;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=setupKarma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupKarma.js","sourceRoot":"","sources":["../src/setupKarma.js"],"names":[],"mappings":";;AAAA,sBAAsB;AACtB,6CAAgD;AAEhD,MAAM,UAAU,GAAG,IAAA,6BAAgB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAElD;;GAEG;AACH,SAAS,0BAA0B,CAAC,KAAK;IACvC,6DAA6D;IAC7D,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACxD,8GAA8G;IAC9G,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,SAAS,aAAa;IAC3B,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,SAAS,YAAY;IACzB,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;IAE/E,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACxC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,UAAU,CAAC,SAAS,cAAc;IAChC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC1C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,SAAS,aAAa;IAC9B,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QACzC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,2DAA2D;AAC3D,yDAAyD;AACzD,IAAI,YAAY,GAAG,IAAI,CAAC;AACxB,IAAI,kBAAkB,GAAG,IAAI,CAAC;AAE9B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;IACzC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,kBAAkB,GAAG,gDAAgD,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;IACtD,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,kBAAkB,GAAG,sDAAsD,CAAC;AAC9E,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,MAAM,YAAY,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/build/until.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"until.d.ts","sourceRoot":"","sources":["../src/until.js"],"names":[],"mappings":"AAyBA,gEAEC"}
|
package/build/until.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function shallowRecursively(wrapper, selector, { context, ...other }) {
|
|
4
|
+
if (wrapper.isEmptyRender() || typeof wrapper.getElement().type === 'string') {
|
|
5
|
+
return wrapper;
|
|
6
|
+
}
|
|
7
|
+
let newContext = context;
|
|
8
|
+
const instance = wrapper.root().instance();
|
|
9
|
+
// The instance can be null with a stateless functional component and react >= 16.
|
|
10
|
+
if (instance && instance.getChildContext) {
|
|
11
|
+
newContext = {
|
|
12
|
+
...context,
|
|
13
|
+
...instance.getChildContext(),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const nextWrapper = wrapper.shallow({ context: newContext, ...other });
|
|
17
|
+
if (selector && wrapper.is(selector)) {
|
|
18
|
+
return nextWrapper;
|
|
19
|
+
}
|
|
20
|
+
return shallowRecursively(nextWrapper, selector, { context: newContext });
|
|
21
|
+
}
|
|
22
|
+
function until(selector, options = {}) {
|
|
23
|
+
return this.single('until', () => shallowRecursively(this, selector, options));
|
|
24
|
+
}
|
|
25
|
+
exports.default = until;
|
|
26
|
+
//# sourceMappingURL=until.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"until.js","sourceRoot":"","sources":["../src/until.js"],"names":[],"mappings":";;AAAA,SAAS,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE;IAClE,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,UAAU,GAAG,OAAO,CAAC;IAEzB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC3C,kFAAkF;IAClF,IAAI,QAAQ,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QACzC,UAAU,GAAG;YACX,GAAG,OAAO;YACV,GAAG,QAAQ,CAAC,eAAe,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAEvE,IAAI,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAwB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,EAAE;IAClD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACjF,CAAC;AAFD,wBAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"until.test.d.ts","sourceRoot":"","sources":["../src/until.test.js"],"names":[],"mappings":""}
|