|
1 | 1 | const React = require('react');
|
2 | 2 | const util = require('util');
|
3 | 3 |
|
4 |
| -const { _rs: onLibResize } = require('rc-resize-observer/lib/utils/observerUtil'); |
5 |
| -const { _rs: onEsResize } = require('rc-resize-observer/es/utils/observerUtil'); |
6 |
| - |
7 | 4 | // eslint-disable-next-line no-console
|
8 | 5 | console.log('Current React Version:', React.version);
|
9 | 6 |
|
10 |
| -// jest.mock('react', () => ({ |
11 |
| -// ...jest.requireActual('react'), |
12 |
| -// useLayoutEffect: jest.requireActual('react').useEffect, |
13 |
| -// })); |
14 |
| - |
15 | 7 | /* eslint-disable global-require */
|
16 | 8 | if (typeof window !== 'undefined') {
|
17 | 9 | global.window.resizeTo = (width, height) => {
|
@@ -39,62 +31,6 @@ if (typeof window !== 'undefined') {
|
39 | 31 |
|
40 | 32 | // ref: https://jestjs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom
|
41 | 33 | // ref: https://github.com/jsdom/jsdom/issues/2524
|
42 |
| - Object.defineProperty(window, 'TextEncoder', { |
43 |
| - writable: true, |
44 |
| - value: util.TextEncoder, |
45 |
| - }); |
46 |
| - Object.defineProperty(window, 'TextDecoder', { |
47 |
| - writable: true, |
48 |
| - value: util.TextDecoder, |
49 |
| - }); |
| 34 | + Object.defineProperty(window, 'TextEncoder', { writable: true, value: util.TextEncoder }); |
| 35 | + Object.defineProperty(window, 'TextDecoder', { writable: true, value: util.TextDecoder }); |
50 | 36 | }
|
51 |
| - |
52 |
| -const Enzyme = require('enzyme'); |
53 |
| - |
54 |
| -const Adapter = |
55 |
| - process.env.REACT === '16' |
56 |
| - ? require('enzyme-adapter-react-16') // eslint-disable-line import/no-extraneous-dependencies,import/no-unresolved |
57 |
| - : require('@wojtekmaj/enzyme-adapter-react-17'); |
58 |
| - |
59 |
| -Enzyme.configure({ adapter: new Adapter() }); |
60 |
| - |
61 |
| -Object.assign(Enzyme.ReactWrapper.prototype, { |
62 |
| - findObserver(index = 0) { |
63 |
| - return this.find('ResizeObserver').at(index); |
64 |
| - }, |
65 |
| - triggerResize(index = 0) { |
66 |
| - const target = this.findObserver(index).getDOMNode(); |
67 |
| - const originGetBoundingClientRect = target.getBoundingClientRect; |
68 |
| - |
69 |
| - target.getBoundingClientRect = () => ({ width: 510, height: 903 }); |
70 |
| - onLibResize([{ target }]); |
71 |
| - onEsResize([{ target }]); |
72 |
| - |
73 |
| - target.getBoundingClientRect = originGetBoundingClientRect; |
74 |
| - }, |
75 |
| -}); |
76 |
| - |
77 |
| -// React.StrictMode wrapper |
78 |
| -jest.mock('enzyme', () => { |
79 |
| - const enzyme = jest.requireActual('enzyme'); |
80 |
| - const { StrictMode, cloneElement } = jest.requireActual('react'); |
81 |
| - const { mount, render } = enzyme; |
82 |
| - |
83 |
| - function EnzymeWrapper({ strictMode, children, ...props }) { |
84 |
| - // Not wrap StrictMode for some test case need count render times |
85 |
| - if (strictMode === false) { |
86 |
| - return cloneElement(children, props); |
87 |
| - } |
88 |
| - |
89 |
| - return <StrictMode>{cloneElement(children, props)}</StrictMode>; |
90 |
| - } |
91 |
| - |
92 |
| - return { |
93 |
| - ...enzyme, |
94 |
| - mount: (ui, { strictMode, ...config } = {}, ...args) => |
95 |
| - mount(<EnzymeWrapper strictMode={strictMode}>{ui}</EnzymeWrapper>, config, ...args), |
96 |
| - render: (ui, { strictMode, ...config } = {}, ...args) => |
97 |
| - render(<EnzymeWrapper strictMode={strictMode}>{ui}</EnzymeWrapper>, config, ...args), |
98 |
| - originMount: mount, |
99 |
| - }; |
100 |
| -}); |
0 commit comments