Skip to content

Commit c4c0802

Browse files
authored
Avoid deep imports and migrate tests (#202)
* test: migrate tests to testing library * test: assert character render output * fix: trim public exports
1 parent 87c72e7 commit c4c0802

7 files changed

Lines changed: 171 additions & 159 deletions

File tree

jest.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
module.exports = {
2-
setupFiles: ["./tests/setup.js"],
3-
snapshotSerializers: [require.resolve("enzyme-to-json/serializer")],
2+
setupFiles: ['./tests/setup.js'],
43
};

package.json

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,31 +40,28 @@
4040
"tsc": "bunx tsc --noEmit"
4141
},
4242
"dependencies": {
43-
"@rc-component/util": "^1.3.0",
43+
"@rc-component/util": "^1.11.1",
4444
"clsx": "^2.1.1"
4545
},
4646
"devDependencies": {
47-
"@rc-component/father-plugin": "^2.1.3",
47+
"@rc-component/father-plugin": "^2.2.0",
4848
"@rc-component/np": "^1.0.0",
4949
"@rc-component/tooltip": "^1.2.1",
50+
"@testing-library/react": "^16.0.1",
5051
"@types/jest": "^29.5.1",
5152
"@types/node": "^24.5.2",
52-
"@types/react": "^17.0.15",
53-
"@types/react-dom": "^17.0.9",
53+
"@types/react": "^18.0.0",
54+
"@types/react-dom": "^18.0.0",
5455
"@umijs/fabric": "^3.0.0",
55-
"cheerio": "1.0.0-rc.12",
5656
"cross-env": "^7.0.0",
5757
"dumi": "^2.1.2",
58-
"enzyme": "^3.1.1",
59-
"enzyme-adapter-react-16": "^1.15.6",
60-
"enzyme-to-json": "^3.1.2",
6158
"eslint": "^7.1.0",
6259
"father": "^4.0.0",
6360
"gh-pages": "^3.1.0",
6461
"less": "^3.0.0",
6562
"rc-test": "^7.0.15",
66-
"react": "^16.0.0",
67-
"react-dom": "^16.0.0",
63+
"react": "^18.0.0",
64+
"react-dom": "^18.0.0",
6865
"typescript": "^5.0.4"
6966
},
7067
"peerDependencies": {

src/Rate.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import useControlledState from '@rc-component/util/lib/hooks/useControlledState';
2-
import KeyCode from '@rc-component/util/lib/KeyCode';
3-
import pickAttrs from '@rc-component/util/lib/pickAttrs';
1+
import { KeyCode, pickAttrs, useControlledState } from '@rc-component/util';
42
import { clsx } from 'clsx';
53
import React from 'react';
64
import type { StarProps } from './Star';

src/Star.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import React from 'react';
2-
import KeyCode from '@rc-component/util/lib/KeyCode';
1+
import { KeyCode } from '@rc-component/util';
32
import { clsx } from 'clsx';
3+
import React from 'react';
44

55
export interface StarProps {
66
value?: number;

tests/props.spec.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1+
import { render } from '@testing-library/react';
12
import React from 'react';
2-
import { mount } from 'enzyme';
33
import Rate from '../src';
44

55
describe('props', () => {
66
it('characterRender', () => {
7-
const wrapper = mount(
7+
const { container } = render(
88
<Rate characterRender={(_, { index }) => <span className="render-holder">{index}</span>} />,
99
);
1010

11-
wrapper.find('li').forEach((li, index) => {
12-
expect(li.find('span.render-holder').length).toEqual(1);
13-
expect(li.text()).toEqual(index);
11+
const holders = container.querySelectorAll('span.render-holder');
12+
expect(holders).toHaveLength(5);
13+
14+
holders.forEach((span, index) => {
15+
expect(span.textContent).toEqual(String(index));
1416
});
1517
});
1618
});

tests/setup.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
global.requestAnimationFrame = cb => setTimeout(cb, 0);
2-
3-
const Enzyme = require('enzyme');
4-
const Adapter = require('enzyme-adapter-react-16');
5-
6-
Enzyme.configure({ adapter: new Adapter() });
1+
global.requestAnimationFrame = (cb) => setTimeout(cb, 0);

0 commit comments

Comments
 (0)