@mui/internal-test-utils 1.0.1 → 1.0.3

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 (50) hide show
  1. package/build/.tsbuildinfo +1 -1
  2. package/build/createRenderer.d.ts +3 -3
  3. package/build/createRenderer.d.ts.map +1 -1
  4. package/build/describeConformance.d.ts +10 -9
  5. package/build/describeConformance.d.ts.map +1 -1
  6. package/build/describeConformance.js +46 -77
  7. package/build/describeConformance.js.map +1 -1
  8. package/build/flushMicrotasks.js +1 -1
  9. package/build/flushMicrotasks.js.map +1 -1
  10. package/build/index.d.ts +0 -2
  11. package/build/index.d.ts.map +1 -1
  12. package/build/index.js +1 -6
  13. package/build/index.js.map +1 -1
  14. package/build/init.js +0 -6
  15. package/build/init.js.map +1 -1
  16. package/build/mochaHooks.test.js +1 -0
  17. package/build/mochaHooks.test.js.map +1 -1
  18. package/package.json +3 -6
  19. package/src/createRenderer.tsx +3 -3
  20. package/src/describeConformance.tsx +66 -94
  21. package/src/flushMicrotasks.ts +1 -1
  22. package/src/index.ts +0 -2
  23. package/src/init.js +0 -4
  24. package/src/mochaHooks.test.js +1 -0
  25. package/tsconfig.json +1 -0
  26. package/build/createMount.d.ts +0 -9
  27. package/build/createMount.d.ts.map +0 -1
  28. package/build/createMount.js +0 -120
  29. package/build/createMount.js.map +0 -1
  30. package/build/findOutermostIntrinsic.d.ts +0 -14
  31. package/build/findOutermostIntrinsic.d.ts.map +0 -1
  32. package/build/findOutermostIntrinsic.js +0 -22
  33. package/build/findOutermostIntrinsic.js.map +0 -1
  34. package/build/findOutermostIntrinsic.test.d.ts +0 -2
  35. package/build/findOutermostIntrinsic.test.d.ts.map +0 -1
  36. package/build/findOutermostIntrinsic.test.js +0 -70
  37. package/build/findOutermostIntrinsic.test.js.map +0 -1
  38. package/build/until.d.ts +0 -2
  39. package/build/until.d.ts.map +0 -1
  40. package/build/until.js +0 -26
  41. package/build/until.js.map +0 -1
  42. package/build/until.test.d.ts +0 -2
  43. package/build/until.test.d.ts.map +0 -1
  44. package/build/until.test.js +0 -118
  45. package/build/until.test.js.map +0 -1
  46. package/src/createMount.tsx +0 -136
  47. package/src/findOutermostIntrinsic.test.js +0 -68
  48. package/src/findOutermostIntrinsic.ts +0 -19
  49. package/src/until.js +0 -28
  50. package/src/until.test.js +0 -120
@@ -1,120 +0,0 @@
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
- /* eslint-env mocha */
27
- const React = __importStar(require("react"));
28
- const ReactDOM = __importStar(require("react-dom"));
29
- const ReactDOMTestUtils = __importStar(require("react-dom/test-utils"));
30
- const enzyme_1 = require("enzyme");
31
- /**
32
- * Can't just mount <React.Fragment>{node}</React.Fragment>
33
- * because that swallows wrapper.setProps
34
- *
35
- * why class component:
36
- * https://github.com/airbnb/enzyme/issues/2043
37
- */
38
- // eslint-disable-next-line react/prefer-stateless-function
39
- class Mode extends React.Component {
40
- render() {
41
- // Excess props will come from e.g. enzyme setProps
42
- // eslint-disable-next-line @typescript-eslint/naming-convention
43
- const { __element, __strict, ...other } = this.props;
44
- const Component = __strict ? React.StrictMode : React.Fragment;
45
- return React.createElement(Component, null, React.cloneElement(__element, other));
46
- }
47
- }
48
- // Generate an enhanced mount function.
49
- function createMount(options = {}) {
50
- const { mount = enzyme_1.mount, strict: globalStrict = true, ...globalEnzymeOptions } = options;
51
- let container = null;
52
- function computeTestName(test) {
53
- let current = test;
54
- const titles = [];
55
- while (current != null) {
56
- titles.push(current.title);
57
- current = current.parent;
58
- }
59
- return titles.filter(Boolean).reverse().join(' -> ');
60
- }
61
- // save stack to re-use in test-hooks
62
- const { stack: createMountStack } = new Error();
63
- /**
64
- * Flag whether `createMount` was called in a suite i.e. describe() block.
65
- * For legacy reasons `createMount` might accidentally be called in a before(Each) hook.
66
- */
67
- let wasCalledInSuite = false;
68
- before(() => {
69
- wasCalledInSuite = true;
70
- });
71
- beforeEach(() => {
72
- if (!wasCalledInSuite) {
73
- const error = new Error('Unable to run `before` hook for `createMount`. This usually indicates that `createMount` was called in a `before` hook instead of in a `describe()` block.');
74
- error.stack = createMountStack;
75
- throw error;
76
- }
77
- });
78
- beforeEach(function beforeEachMountTest() {
79
- container = document.createElement('div');
80
- container.setAttribute('data-test', computeTestName(this.currentTest));
81
- document.body.insertBefore(container, document.body.firstChild);
82
- });
83
- afterEach(() => {
84
- ReactDOMTestUtils.act(() => {
85
- // eslint-disable-next-line react/no-deprecated
86
- ReactDOM.unmountComponentAtNode(container);
87
- });
88
- container.parentElement.removeChild(container);
89
- container = null;
90
- });
91
- const mountWithContext = function mountWithContext(node, localOptions = {}) {
92
- const { strict = globalStrict, ...localEnzymeOptions } = localOptions;
93
- if (container === null) {
94
- throw new Error(`Tried to mount without setup. Mounting inside before() is not allowed. Try mounting in beforeEach or better: in each test`);
95
- }
96
- ReactDOMTestUtils.act(() => {
97
- // eslint-disable-next-line react/no-deprecated
98
- ReactDOM.unmountComponentAtNode(container);
99
- });
100
- // some tests require that no other components are in the tree
101
- // for example when doing .instance(), .state() etc.
102
- const wrapper = mount(strict == null ? node : React.createElement(Mode, { __element: node, __strict: Boolean(strict) }), {
103
- attachTo: container,
104
- ...globalEnzymeOptions,
105
- ...localEnzymeOptions,
106
- });
107
- const originalUnmount = wrapper.unmount;
108
- wrapper.unmount = () => {
109
- // flush effect cleanup functions
110
- ReactDOMTestUtils.act(() => {
111
- originalUnmount.call(wrapper);
112
- });
113
- return wrapper;
114
- };
115
- return wrapper;
116
- };
117
- return mountWithContext;
118
- }
119
- exports.default = createMount;
120
- //# sourceMappingURL=createMount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createMount.js","sourceRoot":"","sources":["../src/createMount.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { ReactWrapper } from 'enzyme';
2
- /**
3
- * checks if a given react wrapper wraps an intrinsic element i.e. a DOM node
4
- * @param {import('enzyme').ReactWrapper} reactWrapper
5
- * @returns {boolean} true if the given reactWrapper wraps an intrinsic element
6
- */
7
- export declare function wrapsIntrinsicElement(reactWrapper: ReactWrapper): boolean;
8
- /**
9
- * like ReactWrapper#getDOMNode() but returns a ReactWrapper
10
- * @param {import('enzyme').ReactWrapper} reactWrapper
11
- * @returns {import('enzyme').ReactWrapper} the wrapper for the outermost DOM node
12
- */
13
- export default function findOutermostIntrinsic(reactWrapper: ReactWrapper): ReactWrapper;
14
- //# sourceMappingURL=findOutermostIntrinsic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findOutermostIntrinsic.d.ts","sourceRoot":"","sources":["../src/findOutermostIntrinsic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAEzE;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CAEvF"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wrapsIntrinsicElement = void 0;
4
- /**
5
- * checks if a given react wrapper wraps an intrinsic element i.e. a DOM node
6
- * @param {import('enzyme').ReactWrapper} reactWrapper
7
- * @returns {boolean} true if the given reactWrapper wraps an intrinsic element
8
- */
9
- function wrapsIntrinsicElement(reactWrapper) {
10
- return typeof reactWrapper.type() === 'string';
11
- }
12
- exports.wrapsIntrinsicElement = wrapsIntrinsicElement;
13
- /**
14
- * like ReactWrapper#getDOMNode() but returns a ReactWrapper
15
- * @param {import('enzyme').ReactWrapper} reactWrapper
16
- * @returns {import('enzyme').ReactWrapper} the wrapper for the outermost DOM node
17
- */
18
- function findOutermostIntrinsic(reactWrapper) {
19
- return reactWrapper.findWhere((n) => n.exists() && wrapsIntrinsicElement(n)).first();
20
- }
21
- exports.default = findOutermostIntrinsic;
22
- //# sourceMappingURL=findOutermostIntrinsic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findOutermostIntrinsic.js","sourceRoot":"","sources":["../src/findOutermostIntrinsic.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,YAA0B;IAC9D,OAAO,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC;AACjD,CAAC;AAFD,sDAEC;AAED;;;;GAIG;AACH,SAAwB,sBAAsB,CAAC,YAA0B;IACvE,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACvF,CAAC;AAFD,yCAEC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=findOutermostIntrinsic.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findOutermostIntrinsic.test.d.ts","sourceRoot":"","sources":["../src/findOutermostIntrinsic.test.js"],"names":[],"mappings":""}
@@ -1,70 +0,0 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const React = __importStar(require("react"));
30
- const chai_1 = require("chai");
31
- const createMount_1 = __importDefault(require("./createMount"));
32
- const findOutermostIntrinsic_1 = __importDefault(require("./findOutermostIntrinsic"));
33
- describe('findOutermostIntrinsic', () => {
34
- const mount = (0, createMount_1.default)({ strict: null });
35
- const expectIntrinsic = (node, expected) => {
36
- const wrapper = mount(node);
37
- const outermostIntrinsic = (0, findOutermostIntrinsic_1.default)(wrapper);
38
- if (expected === null) {
39
- (0, chai_1.expect)(outermostIntrinsic.exists()).to.equal(false);
40
- }
41
- else {
42
- (0, chai_1.expect)(outermostIntrinsic.type()).to.equal(expected);
43
- (0, chai_1.expect)(outermostIntrinsic.type()).to.equal(outermostIntrinsic.getDOMNode().nodeName.toLowerCase());
44
- }
45
- };
46
- const Headless = ({ children }) => children;
47
- it('returns immediate DOM nodes', () => {
48
- expectIntrinsic(React.createElement("div", null, "Hello, World!"), 'div');
49
- });
50
- it('only returns the outermost', () => {
51
- expectIntrinsic(React.createElement("span", null,
52
- React.createElement("div", null, "Hello, World!")), 'span');
53
- });
54
- it('ignores components', () => {
55
- expectIntrinsic(React.createElement(Headless, null,
56
- React.createElement("div", null, "Hello, World!")), 'div');
57
- expectIntrinsic(React.createElement(Headless, null,
58
- React.createElement(Headless, null,
59
- React.createElement("div", null, "Hello, World!"))), 'div');
60
- expectIntrinsic(React.createElement(Headless, null,
61
- React.createElement(Headless, null,
62
- React.createElement("div", null,
63
- React.createElement(Headless, null,
64
- React.createElement("span", null, "Hello, World!"))))), 'div');
65
- });
66
- it('can handle that no DOM node is rendered', () => {
67
- expectIntrinsic(React.createElement(Headless, null, false && React.createElement(Headless, null)), null);
68
- });
69
- });
70
- //# sourceMappingURL=findOutermostIntrinsic.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findOutermostIntrinsic.test.js","sourceRoot":"","sources":["../src/findOutermostIntrinsic.test.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,+BAA8B;AAC9B,gEAAwC;AACxC,sFAA8D;AAE9D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,MAAM,KAAK,GAAG,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,kBAAkB,GAAG,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;QAE3D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAA,aAAM,EAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAA,aAAM,EAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAA,aAAM,EAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CACxC,kBAAkB,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CACvD,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;IAE5C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,eAAe,CAAC,iDAAwB,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,eAAe,CACb;YACE,iDAAwB,CACnB,EACP,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,eAAe,CACb,oBAAC,QAAQ;YACP,iDAAwB,CACf,EACX,KAAK,CACN,CAAC;QACF,eAAe,CACb,oBAAC,QAAQ;YACP,oBAAC,QAAQ;gBACP,iDAAwB,CACf,CACF,EACX,KAAK,CACN,CAAC;QACF,eAAe,CACb,oBAAC,QAAQ;YACP,oBAAC,QAAQ;gBACP;oBACE,oBAAC,QAAQ;wBACP,kDAA0B,CACjB,CACP,CACG,CACF,EACX,KAAK,CACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,eAAe,CAAC,oBAAC,QAAQ,QAAE,KAAK,IAAI,oBAAC,QAAQ,OAAG,CAAY,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/build/until.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export default function until(selector: any, options?: {}): any;
2
- //# sourceMappingURL=until.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"until.d.ts","sourceRoot":"","sources":["../src/until.js"],"names":[],"mappings":"AAyBA,gEAEC"}
package/build/until.js DELETED
@@ -1,26 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=until.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"until.test.d.ts","sourceRoot":"","sources":["../src/until.test.js"],"names":[],"mappings":""}
@@ -1,118 +0,0 @@
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
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const React = __importStar(require("react"));
30
- const chai_1 = require("chai");
31
- const prop_types_1 = __importDefault(require("prop-types"));
32
- const enzyme_1 = require("enzyme");
33
- const until_1 = __importDefault(require("./until"));
34
- function Div() {
35
- return React.createElement("div", null);
36
- }
37
- const hoc = (Component) => function Wrapper() {
38
- return React.createElement(Component, null);
39
- };
40
- describe('until', () => {
41
- it('shallow renders the current wrapper one level deep', () => {
42
- const EnhancedDiv = hoc(Div);
43
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(EnhancedDiv, null)), 'Div');
44
- (0, chai_1.expect)(wrapper.contains(React.createElement("div", null))).to.equal(true);
45
- });
46
- it('shallow renders the current wrapper several levels deep', () => {
47
- const EnhancedDiv = hoc(hoc(hoc(Div)));
48
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(EnhancedDiv, null)), 'Div');
49
- (0, chai_1.expect)(wrapper.contains(React.createElement("div", null))).to.equal(true);
50
- });
51
- it('stops shallow rendering when the wrapper is empty', () => {
52
- const nullHoc = () => () => null;
53
- const EnhancedDiv = nullHoc();
54
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(EnhancedDiv, null)), 'Div');
55
- (0, chai_1.expect)(wrapper.html()).to.equal(null);
56
- });
57
- it('shallow renders as much as possible when no selector is provided', () => {
58
- const EnhancedDiv = hoc(hoc(Div));
59
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(EnhancedDiv, null)));
60
- (0, chai_1.expect)(wrapper.contains(React.createElement("div", null))).to.equal(true);
61
- });
62
- it('shallow renders the current wrapper even if the selector never matches', () => {
63
- const EnhancedDiv = hoc(Div);
64
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(EnhancedDiv, null)), 'NotDiv');
65
- (0, chai_1.expect)(wrapper.contains(React.createElement("div", null))).to.equal(true);
66
- });
67
- it('stops shallow rendering when it encounters a HTML element', () => {
68
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement("div", null,
69
- React.createElement(Div, null))), 'Div');
70
- (0, chai_1.expect)(wrapper.contains(React.createElement("div", null,
71
- React.createElement(Div, null)))).to.equal(true);
72
- });
73
- it('throws when until called on an empty wrapper', () => {
74
- (0, chai_1.expect)(() => {
75
- until_1.default.call((0, enzyme_1.shallow)(React.createElement(Div, null)).find('Foo'), 'div');
76
- }).to.throw(Error);
77
- });
78
- it('shallow renders non-root wrappers', () => {
79
- function Container() {
80
- return (React.createElement("div", null,
81
- React.createElement(Div, null)));
82
- }
83
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(Container, null)).find(Div));
84
- (0, chai_1.expect)(wrapper.contains(React.createElement("div", null))).to.equal(true);
85
- });
86
- // eslint-disable-next-line react/prefer-stateless-function
87
- class Foo extends React.Component {
88
- render() {
89
- return React.createElement(Div, null);
90
- }
91
- }
92
- Foo.contextTypes = {
93
- quux: prop_types_1.default.bool.isRequired,
94
- };
95
- it('context propagation passes down context from the root component', () => {
96
- const EnhancedFoo = hoc(Foo);
97
- const options = { context: { quux: true } };
98
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(EnhancedFoo, null), options), 'Foo', options);
99
- (0, chai_1.expect)(wrapper.context('quux')).to.equal(true);
100
- (0, chai_1.expect)(wrapper.contains(React.createElement(Div, null))).to.equal(true);
101
- });
102
- class Bar extends React.Component {
103
- getChildContext() {
104
- return { quux: true };
105
- }
106
- render() {
107
- return React.createElement(Foo, null);
108
- }
109
- }
110
- Bar.childContextTypes = { quux: prop_types_1.default.bool };
111
- it('context propagation passes down context from an intermediary component', () => {
112
- const EnhancedBar = hoc(Bar);
113
- const wrapper = until_1.default.call((0, enzyme_1.shallow)(React.createElement(EnhancedBar, null)), 'Foo');
114
- (0, chai_1.expect)(wrapper.context('quux')).to.equal(true);
115
- (0, chai_1.expect)(wrapper.contains(React.createElement(Div, null))).to.equal(true);
116
- });
117
- });
118
- //# sourceMappingURL=until.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"until.test.js","sourceRoot":"","sources":["../src/until.test.js"],"names":[],"mappings":"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"}
@@ -1,136 +0,0 @@
1
- /* eslint-env mocha */
2
- import * as React from 'react';
3
- import * as ReactDOM from 'react-dom';
4
- import * as ReactDOMTestUtils from 'react-dom/test-utils';
5
- import { Test, Suite } from 'mocha';
6
- import { mount as enzymeMount, MountRendererProps } from 'enzyme';
7
-
8
- interface ModeProps {
9
- /**
10
- * this is essentially children. However, we can't use children because then
11
- * using `wrapper.setProps({ children })` would work differently if this component
12
- * would be the root.
13
- */
14
- __element: React.ReactElement<any>;
15
- __strict: boolean;
16
- }
17
-
18
- /**
19
- * Can't just mount <React.Fragment>{node}</React.Fragment>
20
- * because that swallows wrapper.setProps
21
- *
22
- * why class component:
23
- * https://github.com/airbnb/enzyme/issues/2043
24
- */
25
- // eslint-disable-next-line react/prefer-stateless-function
26
- class Mode extends React.Component<ModeProps> {
27
- render() {
28
- // Excess props will come from e.g. enzyme setProps
29
- // eslint-disable-next-line @typescript-eslint/naming-convention
30
- const { __element, __strict, ...other } = this.props;
31
- const Component = __strict ? React.StrictMode : React.Fragment;
32
-
33
- return <Component>{React.cloneElement(__element, other)}</Component>;
34
- }
35
- }
36
-
37
- interface CreateMountOptions extends MountRendererProps {
38
- mount?: typeof enzymeMount;
39
- strict?: boolean;
40
- }
41
- // Generate an enhanced mount function.
42
- export default function createMount(options: CreateMountOptions = {}) {
43
- const { mount = enzymeMount, strict: globalStrict = true, ...globalEnzymeOptions } = options;
44
-
45
- let container: HTMLElement | null = null;
46
-
47
- function computeTestName(test: Test | undefined) {
48
- let current: Test | Suite | undefined = test;
49
- const titles: string[] = [];
50
- while (current != null) {
51
- titles.push(current.title);
52
- current = current.parent;
53
- }
54
-
55
- return titles.filter(Boolean).reverse().join(' -> ');
56
- }
57
-
58
- // save stack to re-use in test-hooks
59
- const { stack: createMountStack } = new Error();
60
-
61
- /**
62
- * Flag whether `createMount` was called in a suite i.e. describe() block.
63
- * For legacy reasons `createMount` might accidentally be called in a before(Each) hook.
64
- */
65
- let wasCalledInSuite = false;
66
- before(() => {
67
- wasCalledInSuite = true;
68
- });
69
-
70
- beforeEach(() => {
71
- if (!wasCalledInSuite) {
72
- const error = new Error(
73
- 'Unable to run `before` hook for `createMount`. This usually indicates that `createMount` was called in a `before` hook instead of in a `describe()` block.',
74
- );
75
- error.stack = createMountStack;
76
- throw error;
77
- }
78
- });
79
-
80
- beforeEach(function beforeEachMountTest() {
81
- container = document.createElement('div');
82
- container.setAttribute('data-test', computeTestName(this.currentTest));
83
- document.body.insertBefore(container, document.body.firstChild);
84
- });
85
-
86
- afterEach(() => {
87
- ReactDOMTestUtils.act(() => {
88
- // eslint-disable-next-line react/no-deprecated
89
- ReactDOM.unmountComponentAtNode(container!);
90
- });
91
- container!.parentElement!.removeChild(container!);
92
- container = null;
93
- });
94
-
95
- const mountWithContext = function mountWithContext(
96
- node: React.ReactElement<any>,
97
- localOptions: Omit<CreateMountOptions, 'mount'> = {},
98
- ) {
99
- const { strict = globalStrict, ...localEnzymeOptions } = localOptions;
100
-
101
- if (container === null) {
102
- throw new Error(
103
- `Tried to mount without setup. Mounting inside before() is not allowed. Try mounting in beforeEach or better: in each test`,
104
- );
105
- }
106
- ReactDOMTestUtils.act(() => {
107
- // eslint-disable-next-line react/no-deprecated
108
- ReactDOM.unmountComponentAtNode(container!);
109
- });
110
-
111
- // some tests require that no other components are in the tree
112
- // for example when doing .instance(), .state() etc.
113
- const wrapper = mount(
114
- strict == null ? node : <Mode __element={node} __strict={Boolean(strict)} />,
115
- {
116
- attachTo: container,
117
- ...globalEnzymeOptions,
118
- ...localEnzymeOptions,
119
- },
120
- );
121
- const originalUnmount = wrapper.unmount;
122
-
123
- wrapper.unmount = () => {
124
- // flush effect cleanup functions
125
- ReactDOMTestUtils.act(() => {
126
- originalUnmount.call(wrapper);
127
- });
128
-
129
- return wrapper;
130
- };
131
-
132
- return wrapper;
133
- };
134
-
135
- return mountWithContext;
136
- }
@@ -1,68 +0,0 @@
1
- import * as React from 'react';
2
- import { expect } from 'chai';
3
- import createMount from './createMount';
4
- import findOutermostIntrinsic from './findOutermostIntrinsic';
5
-
6
- describe('findOutermostIntrinsic', () => {
7
- const mount = createMount({ strict: null });
8
- const expectIntrinsic = (node, expected) => {
9
- const wrapper = mount(node);
10
- const outermostIntrinsic = findOutermostIntrinsic(wrapper);
11
-
12
- if (expected === null) {
13
- expect(outermostIntrinsic.exists()).to.equal(false);
14
- } else {
15
- expect(outermostIntrinsic.type()).to.equal(expected);
16
- expect(outermostIntrinsic.type()).to.equal(
17
- outermostIntrinsic.getDOMNode().nodeName.toLowerCase(),
18
- );
19
- }
20
- };
21
- const Headless = ({ children }) => children;
22
-
23
- it('returns immediate DOM nodes', () => {
24
- expectIntrinsic(<div>Hello, World!</div>, 'div');
25
- });
26
-
27
- it('only returns the outermost', () => {
28
- expectIntrinsic(
29
- <span>
30
- <div>Hello, World!</div>
31
- </span>,
32
- 'span',
33
- );
34
- });
35
-
36
- it('ignores components', () => {
37
- expectIntrinsic(
38
- <Headless>
39
- <div>Hello, World!</div>
40
- </Headless>,
41
- 'div',
42
- );
43
- expectIntrinsic(
44
- <Headless>
45
- <Headless>
46
- <div>Hello, World!</div>
47
- </Headless>
48
- </Headless>,
49
- 'div',
50
- );
51
- expectIntrinsic(
52
- <Headless>
53
- <Headless>
54
- <div>
55
- <Headless>
56
- <span>Hello, World!</span>
57
- </Headless>
58
- </div>
59
- </Headless>
60
- </Headless>,
61
- 'div',
62
- );
63
- });
64
-
65
- it('can handle that no DOM node is rendered', () => {
66
- expectIntrinsic(<Headless>{false && <Headless />}</Headless>, null);
67
- });
68
- });
@@ -1,19 +0,0 @@
1
- import { ReactWrapper } from 'enzyme';
2
-
3
- /**
4
- * checks if a given react wrapper wraps an intrinsic element i.e. a DOM node
5
- * @param {import('enzyme').ReactWrapper} reactWrapper
6
- * @returns {boolean} true if the given reactWrapper wraps an intrinsic element
7
- */
8
- export function wrapsIntrinsicElement(reactWrapper: ReactWrapper): boolean {
9
- return typeof reactWrapper.type() === 'string';
10
- }
11
-
12
- /**
13
- * like ReactWrapper#getDOMNode() but returns a ReactWrapper
14
- * @param {import('enzyme').ReactWrapper} reactWrapper
15
- * @returns {import('enzyme').ReactWrapper} the wrapper for the outermost DOM node
16
- */
17
- export default function findOutermostIntrinsic(reactWrapper: ReactWrapper): ReactWrapper {
18
- return reactWrapper.findWhere((n) => n.exists() && wrapsIntrinsicElement(n)).first();
19
- }