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 16fcd21
Show file tree
Hide file tree
Showing 23 changed files with 42 additions and 35 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
3 changes: 1 addition & 2 deletions components/button/__tests__/index.test.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { Component } from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import { SearchOutlined } from '@ant-design/icons';
Expand All @@ -9,7 +8,7 @@ import Button from '..';
import ConfigProvider from '../../config-provider';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import { sleep } from '../../../tests/utils';
import { sleep, render } from '../../../tests/utils';
import { SizeType } from '../../config-provider/SizeContext';

describe('Button', () => {
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,8 +1,8 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import { render } from '../../../tests/utils';
import ConfigProvider from '..';
import zhCN from '../../locale/zh_CN';
import Form from '../../form';
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
3 changes: 1 addition & 2 deletions components/form/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { Component, useState } from 'react';
import { mount } from 'enzyme';
import { render, fireEvent } from '@testing-library/react';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import scrollIntoView from 'scroll-into-view-if-needed';
Expand All @@ -13,7 +12,7 @@ import Select from '../../select';

import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import { sleep } from '../../../tests/utils';
import { sleep, render, fireEvent } from '../../../tests/utils';
import ConfigProvider from '../../config-provider';
import zhCN from '../../locale/zh_CN';

Expand Down
3 changes: 1 addition & 2 deletions components/form/__tests__/list.test.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import React from 'react';
import { mount } from 'enzyme';
import { act } from 'react-dom/test-utils';
import { render, fireEvent } from '@testing-library/react';
import '@testing-library/jest-dom';
import Form from '..';
import Input from '../../input';
import Button from '../../button';
import { sleep } from '../../../tests/utils';
import { sleep, render, fireEvent } from '../../../tests/utils';

describe('Form.List', () => {
async function change(wrapper, index, value) {
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,8 +1,8 @@
import React from 'react';
import ReactDOMServer from 'react-dom/server';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
import { mount } from 'enzyme';
import { render } from '../../../tests/utils';
import { Col, Row } from '..';
// eslint-disable-next-line no-unused-vars
import * as styleChecker from '../../_util/styleChecker';
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
3 changes: 1 addition & 2 deletions components/input/__tests__/textarea.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React, { useState } from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
import RcTextArea from 'rc-textarea';
import Input from '..';
import focusTest from '../../../tests/shared/focusTest';
import { sleep } from '../../../tests/utils';
import { sleep, render } from '../../../tests/utils';

const { TextArea } = Input;

Expand Down
3 changes: 1 addition & 2 deletions components/menu/__tests__/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,8 @@ import {
PieChartOutlined,
UserOutlined,
} from '@ant-design/icons';
import { render, fireEvent } from '@testing-library/react';
import '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import { act, render, fireEvent } from 'react-dom/test-utils';
import Menu from '..';
import Layout from '../../layout';
import Tooltip from '../../tooltip';
Expand Down
3 changes: 1 addition & 2 deletions components/popconfirm/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import { mount } from 'enzyme';
import { spyElementPrototype } from 'rc-util/lib/test/domHook';
import { render, fireEvent } from '@testing-library/react';
import '@testing-library/jest-dom';
import Popconfirm from '..';
import mountTest from '../../../tests/shared/mountTest';
import { sleep } from '../../../tests/utils';
import { sleep, render, fireEvent } from '../../../tests/utils';
import rtlTest from '../../../tests/shared/rtlTest';
import Button from '../../button';

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
3 changes: 1 addition & 2 deletions components/table/__tests__/Table.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
import Table from '..';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import { sleep } from '../../../tests/utils';
import { sleep, render } from '../../../tests/utils';

const { Column, ColumnGroup } = Table;

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
3 changes: 1 addition & 2 deletions components/typography/__tests__/index.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React from 'react';
import { mount } from 'enzyme';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
import { SmileOutlined, LikeOutlined, HighlightOutlined, CheckOutlined } from '@ant-design/icons';
import KeyCode from 'rc-util/lib/KeyCode';
Expand All @@ -15,7 +14,7 @@ import Base from '../Base';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import Typography from '../Typography';
import { sleep } from '../../../tests/utils';
import { sleep, render } from '../../../tests/utils';

jest.mock('copy-to-clipboard');

Expand Down
3 changes: 1 addition & 2 deletions components/upload/__tests__/upload.test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
/* 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 '@testing-library/jest-dom';
import { act } from 'react-dom/test-utils';
import produce from 'immer';
Expand All @@ -13,7 +12,7 @@ import { setup, teardown } from './mock';
import { resetWarned } from '../../_util/devWarning';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import { sleep } from '../../../tests/utils';
import { sleep, render, fireEvent } from '../../../tests/utils';

globalThis.IS_REACT_ACT_ENVIRONMENT = true;

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 16fcd21

Please sign in to comment.