Skip to content

Commit

Permalink
test: React StrictMode
Browse files Browse the repository at this point in the history
  • Loading branch information
afc163 committed Apr 14, 2022
1 parent 4c8041d commit a10a373
Show file tree
Hide file tree
Showing 23 changed files with 42 additions and 26 deletions.
2 changes: 1 addition & 1 deletion components/avatar/__tests__/Avatar.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import ReactDOM from 'react-dom';
import { act } from 'react-dom/test-utils';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Avatar from '..';
import mountTest from '../../../tests/shared/mountTest';
Expand Down
2 changes: 1 addition & 1 deletion components/breadcrumb/__tests__/Breadcrumb.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Breadcrumb from '../index';
import mountTest from '../../../tests/shared/mountTest';
Expand Down
2 changes: 1 addition & 1 deletion components/button/__tests__/index.test.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import { SearchOutlined } from '@ant-design/icons';
Expand Down
2 changes: 1 addition & 1 deletion components/config-provider/__tests__/form.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import ConfigProvider from '..';
Expand Down
2 changes: 1 addition & 1 deletion components/drawer/__tests__/Drawer.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Drawer from '..';
import ConfigProvider from '../../config-provider';
Expand Down
2 changes: 1 addition & 1 deletion components/form/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { Component, useState } from 'react';
import { mount } from 'enzyme';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import scrollIntoView from 'scroll-into-view-if-needed';
Expand Down
2 changes: 1 addition & 1 deletion components/form/__tests__/list.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import { mount } from 'enzyme';
import { act } from 'react-dom/test-utils';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Form from '..';
import Input from '../../input';
Expand Down
2 changes: 1 addition & 1 deletion components/grid/__tests__/gap.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import ReactDOMServer from 'react-dom/server';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import { mount } from 'enzyme';
import { Col, Row } from '..';
Expand Down
2 changes: 1 addition & 1 deletion components/input/__tests__/index.test.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useState } from 'react';
import { mount } from 'enzyme';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
// eslint-disable-next-line import/no-unresolved
import Form from '../../form';
Expand Down
2 changes: 1 addition & 1 deletion components/input/__tests__/textarea.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useState } from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import RcTextArea from 'rc-textarea';
import Input from '..';
Expand Down
2 changes: 1 addition & 1 deletion components/menu/__tests__/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
PieChartOutlined,
UserOutlined,
} from '@ant-design/icons';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import Menu from '..';
Expand Down
2 changes: 1 addition & 1 deletion components/popconfirm/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React from 'react';
import { mount } from 'enzyme';
import { spyElementPrototype } from 'rc-util/lib/test/domHook';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Popconfirm from '..';
import mountTest from '../../../tests/shared/mountTest';
Expand Down
2 changes: 1 addition & 1 deletion components/popover/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Popover from '..';
import mountTest from '../../../tests/shared/mountTest';
Expand Down
2 changes: 1 addition & 1 deletion components/result/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Result from '..';
import Button from '../../button';
Expand Down
2 changes: 1 addition & 1 deletion components/table/__tests__/Table.filter.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import React from 'react';
import { mount } from 'enzyme';
import { act } from 'react-dom/test-utils';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Table from '..';
import Input from '../../input';
Expand Down
2 changes: 1 addition & 1 deletion components/table/__tests__/Table.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Table from '..';
import mountTest from '../../../tests/shared/mountTest';
Expand Down
2 changes: 1 addition & 1 deletion components/transfer/__tests__/customize.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Transfer from '../index';

Expand Down
2 changes: 1 addition & 1 deletion components/transfer/__tests__/search.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
import Search from '../search';
import Transfer from '../index';
Expand Down
2 changes: 1 addition & 1 deletion components/typography/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import { render } from '../../../tests/utils';
import '@testing-library/jest-dom';
import { SmileOutlined, LikeOutlined, HighlightOutlined, CheckOutlined } from '@ant-design/icons';
import KeyCode from 'rc-util/lib/KeyCode';
Expand Down
2 changes: 1 addition & 1 deletion components/upload/__tests__/upload.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* eslint-disable react/no-string-refs, react/prefer-es6-class */
import React from 'react';
import { mount } from 'enzyme';
import { render, fireEvent } from '@testing-library/react';
import { render, fireEvent } from '../../../tests/utils';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import produce from 'immer';
Expand Down
16 changes: 12 additions & 4 deletions tests/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ const { _rs: onEsResize } = require('rc-resize-observer/es/utils/observerUtil');
// eslint-disable-next-line no-console
console.log('Current React Version:', React.version);

// jest.mock('react', () => ({
// ...jest.requireActual('react'),
// useLayoutEffect: jest.requireActual('react').useEffect,
// }));
jest.mock('react', () => ({
...jest.requireActual('react'),
useLayoutEffect: jest.requireActual('react').useEffect,
}));

/* eslint-disable global-require */
if (typeof window !== 'undefined') {
Expand Down Expand Up @@ -60,3 +60,11 @@ Object.assign(Enzyme.ReactWrapper.prototype, {
target.getBoundingClientRect = originGetBoundingClientRect;
},
});

// React.StrictMode wrapper
const originalEnzymeRender = Enzyme.render;
const originalEnzymeMount = Enzyme.mount;
Object.assign(Enzyme, {
render: (ui, ...args) => originalEnzymeRender(<React.StrictMode>{ui}</React.StrictMode>, ...args),
mount: (ui, ...args) => originalEnzymeMount(<React.StrictMode>{ui}</React.StrictMode>, ...args),
});
3 changes: 1 addition & 2 deletions tests/shared/focusTest.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import React from 'react';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
import { mount, ReactWrapper } from 'enzyme';
import { sleep } from '../utils';
import { sleep, render } from '../utils';

// eslint-disable-next-line jest/no-export
export default function focusTest(
Expand Down
9 changes: 9 additions & 0 deletions tests/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import MockDate from 'mockdate';
import { StrictMode, ReactElement } from 'react';
import { act } from 'react-dom/test-utils';
import { render, RenderOptions } from '@testing-library/react';

export function setMockDate(dateString = '2017-09-18T03:30:07.795') {
MockDate.set(dateString);
Expand All @@ -18,3 +20,10 @@ export const sleep = async (timeout = 0) => {
});
});
};

const customRender = (ui: ReactElement, options?: Omit<RenderOptions, 'wrapper'>) =>
render(ui, { wrapper: StrictMode, ...options });

export { customRender as render };

export * from '@testing-library/react';

0 comments on commit a10a373

Please sign in to comment.