Skip to content

Commit 54912b6

Browse files
authored
refactor: upgrade to father 4 & dumi 2 (#626)
* chore: bump father * part test * test: more test case * test: more test case * test: rest test * chore: doc dest
1 parent 8057e38 commit 54912b6

27 files changed

+460
-392
lines changed

Diff for: .dumirc.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { defineConfig } from 'dumi';
2+
3+
export default defineConfig({
4+
themeConfig: {
5+
name: 'Tabs',
6+
},
7+
mfsu: false,
8+
});

Diff for: .fatherrc.js

+5-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
export default {
2-
cjs: 'babel',
3-
esm: { type: 'babel', importLibToEs: true },
4-
preCommit: {
5-
eslint: true,
6-
prettier: true,
7-
},
8-
runtimeHelpers: true,
9-
};
1+
import { defineConfig } from 'father';
2+
3+
export default defineConfig({
4+
plugins: ['@rc-component/father-plugin'],
5+
});

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,4 @@ package-lock.json
3737
.umi-production
3838
.umi-test
3939
.env.local
40+
.dumi

Diff for: .umirc.ts

-22
This file was deleted.

Diff for: docs/demo/animated.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## animated
1+
---
2+
title: Animated
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/animated.tsx">
8+
<code src="../examples/animated.tsx"></code>

Diff for: docs/demo/basic.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## basic
1+
---
2+
title: Basic
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/basic.tsx">
8+
<code src="../examples/basic.tsx"></code>

Diff for: docs/demo/editable.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## editable
1+
---
2+
title: Editable
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/editable.tsx">
8+
<code src="../examples/editable.tsx"></code>

Diff for: docs/demo/extra.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## extra
1+
---
2+
title: Extra
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/extra.tsx">
8+
<code src="../examples/extra.tsx"></code>

Diff for: docs/demo/mix.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## mix
1+
---
2+
title: Mix
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/mix.tsx">
8+
<code src="../examples/mix.tsx"></code>

Diff for: docs/demo/overflow.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## overflow
1+
---
2+
title: Overflow
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/overflow.tsx">
8+
<code src="../examples/overflow.tsx"></code>

Diff for: docs/demo/position.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## position
1+
---
2+
title: Position
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/position.tsx">
8+
<code src="../examples/position.tsx"></code>

Diff for: docs/demo/renderTabBar-dragable.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## renderTabBar-dragable
1+
---
2+
title: renderTabBar-dragable
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/renderTabBar-dragable.tsx">
8+
<code src="../examples/renderTabBar-dragable.tsx"></code>

Diff for: docs/demo/renderTabBar-sticky.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
---
2+
title: renderTabBar-sticky
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
7+
18
## renderTabBar-sticky
29

3-
<code src="../examples/renderTabBar-sticky.tsx">
10+
<code src="../examples/renderTabBar-sticky.tsx"></code>

Diff for: docs/demo/renderTabBar-use-panes.md

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1-
## renderTabBar-use-panes
1+
---
2+
title: enderTabBar-use-panes
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
27

3-
<code src="../examples/renderTabBar-use-panes.tsx">
8+
<code src="../examples/renderTabBar-use-panes.tsx"></code>

Diff for: jest.config.js

+22-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
1+
// Copy from antd jest config file. We need compile `rc-resize-observer`
2+
const compileModules = [
3+
'array-move',
4+
'react-dnd',
5+
'react-dnd-html5-backend',
6+
'@react-dnd',
7+
'dnd-core',
8+
'tween-one',
9+
'@babel',
10+
'@ant-design',
11+
];
12+
13+
const ignoreList = [];
14+
15+
// cnpm use `_` as prefix
16+
['', '_'].forEach((prefix) => {
17+
compileModules.forEach((module) => {
18+
ignoreList.push(`${prefix}${module}`);
19+
});
20+
});
21+
122
module.exports = {
2-
setupFiles: ['./tests/setup.js'],
3-
snapshotSerializers: [require.resolve('enzyme-to-json/serializer')],
4-
setupFilesAfterEnv: ['<rootDir>/tests/setupFilesAfterEnv.js'],
23+
transformIgnorePatterns: [`/node_modules/(?!${ignoreList.join('|')})[^/]+?/(?!(es)/)`],
524
};

Diff for: package.json

+11-14
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"build": "dumi build",
3434
"docs:deploy": "gh-pages -d .doc",
3535
"compile": "father build && npm run compile:style",
36-
"test": "father test",
36+
"test": "rc-test",
3737
"coverage": "father test --coverage",
3838
"now-build": "npm run build",
3939
"lint": "eslint src/ docs/examples/ --ext .tsx,.ts,.jsx,.js",
@@ -42,38 +42,35 @@
4242
},
4343
"devDependencies": {
4444
"@testing-library/jest-dom": "^5.16.4",
45-
"@testing-library/react": "^12.0.0",
45+
"@testing-library/react": "^13.0.0",
4646
"@types/classnames": "^2.2.10",
4747
"@types/enzyme": "^3.10.5",
48-
"@types/keyv": "3.1.4",
4948
"@types/jest": "^25.2.3",
49+
"@types/keyv": "3.1.4",
5050
"@types/react": "^17.0.14",
5151
"@types/react-dom": "^16.9.8",
5252
"@umijs/fabric": "^2.3.1",
5353
"coveralls": "^3.0.6",
5454
"cross-env": "^7.0.2",
55-
"dumi": "^1.1.0",
56-
"enzyme": "^3.7.0",
57-
"enzyme-adapter-react-16": "^1.7.0",
58-
"enzyme-to-json": "^3.3.4",
55+
"dumi": "^2.0.0",
5956
"eslint": "^7.0.0",
6057
"fastclick": "~1.0.6",
61-
"father": "^2.29.2",
58+
"father": "^4.0.0",
6259
"gh-pages": "^3.1.0",
6360
"history": "^1.17.0",
6461
"immutability-helper": "^3.0.1",
6562
"less": "^3.11.1",
6663
"np": "^7.5.0",
67-
"preact": "^8.2.1",
6864
"preact-compat": "^3.16.0",
69-
"react": "^16.0.0",
65+
"rc-test": "^7.0.14",
66+
"react": "^18.0.0",
7067
"react-dnd": "^10.0.0",
7168
"react-dnd-html5-backend": "^10.0.0",
72-
"react-dom": "^16.0.0",
69+
"react-dom": "^18.0.0",
7370
"react-sticky": "^6.0.3",
74-
"react-test-renderer": "^16.0.0",
7571
"sortablejs": "^1.7.0",
76-
"typescript": "^4.0.5"
72+
"typescript": "^4.0.5",
73+
"@rc-component/father-plugin": "^1.0.0"
7774
},
7875
"dependencies": {
7976
"@babel/runtime": "^7.11.2",
@@ -88,4 +85,4 @@
8885
"react": ">=16.9.0",
8986
"react-dom": ">=16.9.0"
9087
}
91-
}
88+
}

Diff for: src/TabNavList/OperationNode.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import * as React from 'react';
21
import classNames from 'classnames';
3-
import { useState, useEffect } from 'react';
4-
import KeyCode from 'rc-util/lib/KeyCode';
5-
import Menu, { MenuItem } from 'rc-menu';
62
import Dropdown from 'rc-dropdown';
7-
import type { Tab, TabsLocale, EditableConfig } from '../interface';
3+
import Menu, { MenuItem } from 'rc-menu';
4+
import KeyCode from 'rc-util/lib/KeyCode';
5+
import * as React from 'react';
6+
import { useEffect, useState } from 'react';
7+
import type { EditableConfig, Tab, TabsLocale } from '../interface';
88
import AddButton from './AddButton';
99

1010
export interface OperationNodeProps {

Diff for: tests/common/util.tsx

+22-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
/* eslint-disable @typescript-eslint/no-invalid-this */
2-
import React from 'react';
2+
import { act } from '@testing-library/react';
33
import type { ReactWrapper } from 'enzyme';
4+
import { _rs as onEsResize } from 'rc-resize-observer/es/utils/observerUtil';
5+
import { _rs as onLibResize } from 'rc-resize-observer/lib/utils/observerUtil';
6+
import React from 'react';
47
import Tabs from '../../src';
58
import type { TabsProps } from '../../src/Tabs';
69

@@ -85,23 +88,23 @@ export function btnOffsetPosition() {
8588
return 20 * index;
8689
}
8790

88-
export function getTransformX(wrapper: ReactWrapper) {
89-
const { transform } = wrapper.find('.rc-tabs-nav-list').props().style;
91+
export function getTransformX(container: Element) {
92+
const { transform } = container.querySelector<HTMLElement>('.rc-tabs-nav-list').style;
9093
const match = transform.match(/\(([-\d.]+)px/);
9194
if (!match) {
9295
// eslint-disable-next-line no-console
93-
console.log(wrapper.find('.rc-tabs-nav-list').html());
96+
// console.log(container.querySelector('.rc-tabs-nav-list').innerHTML);
9497
throw new Error(`Not find transformX: ${transform}`);
9598
}
9699
return Number(match[1]);
97100
}
98101

99-
export function getTransformY(wrapper: ReactWrapper) {
100-
const { transform } = wrapper.find('.rc-tabs-nav-list').props().style;
102+
export function getTransformY(container: Element) {
103+
const { transform } = container.querySelector<HTMLElement>('.rc-tabs-nav-list').style;
101104
const match = transform.match(/,\s*([-\d.]+)px/);
102105
if (!match) {
103106
// eslint-disable-next-line no-console
104-
console.log(wrapper.find('.rc-tabs-nav-list').html());
107+
// console.log(wrapper.find('.rc-tabs-nav-list').html());
105108
throw new Error(`Not find transformY: ${transform}`);
106109
}
107110
return Number(match[1]);
@@ -143,6 +146,15 @@ export function getTabs(props: TabsProps = null) {
143146
);
144147
}
145148

146-
export function triggerResize(wrapper: ReactWrapper) {
147-
(wrapper.find('.rc-tabs-nav').find('ResizeObserver').first().props() as any).onResize();
148-
}
149+
// export function triggerResize(wrapper: ReactWrapper) {
150+
// (wrapper.find('.rc-tabs-nav').find('ResizeObserver').first().props() as any).onResize();
151+
// }
152+
153+
export const triggerResize = (container: Element) => {
154+
const target = container.querySelector('.rc-tabs-nav');
155+
156+
act(() => {
157+
onLibResize([{ target } as ResizeObserverEntry]);
158+
onEsResize([{ target } as ResizeObserverEntry]);
159+
});
160+
};

0 commit comments

Comments
 (0)