Skip to content

Commit f419525

Browse files
committed
test: Init responsive test
1 parent c823770 commit f419525

File tree

5 files changed

+62
-5
lines changed

5 files changed

+62
-5
lines changed

src/Overflow.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ function Overflow<ItemType = any>(
159159
}
160160
}
161161
}, [containerWidth, itemWidths, mergedRestWidth, getKey, mergedData]);
162+
163+
164+
console.log('>>>', displayCount);
162165

163166
// ================================ Render ================================
164167
let overflowNode = (

tests/index.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ describe('Overflow', () => {
2424
<Overflow<ItemType> data={getData(6)} renderItem={renderItem} />,
2525
);
2626
expect(wrapper.find('ResizeObserver')).toHaveLength(0);
27-
expect(wrapper.find('div.rc-overflow-item')).toHaveLength(6);
27+
expect(wrapper.findItems()).toHaveLength(6);
2828
expect(wrapper.findRest()).toHaveLength(0);
2929
});
3030

@@ -37,7 +37,7 @@ describe('Overflow', () => {
3737
/>,
3838
);
3939
expect(wrapper.find('ResizeObserver')).toHaveLength(0);
40-
expect(wrapper.find('div.rc-overflow-item')).toHaveLength(4 + 1);
40+
expect(wrapper.findItems()).toHaveLength(4 + 1);
4141
expect(wrapper.findRest()).toHaveLength(1);
4242
});
4343

tests/responsive.spec.tsx

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import React from 'react';
2+
import Overflow from '../src';
3+
import { mount } from './wrapper';
4+
5+
interface ItemType {
6+
label: React.ReactNode;
7+
key: React.Key;
8+
}
9+
10+
function renderItem(item: ItemType) {
11+
return item.label;
12+
}
13+
14+
describe('Overflow.Responsive', () => {
15+
function getData(count: number) {
16+
return new Array(count).fill(undefined).map((_, index) => ({
17+
label: `Label ${index}`,
18+
key: `k-${index}`,
19+
}));
20+
}
21+
22+
beforeEach(() => {
23+
jest.useFakeTimers();
24+
});
25+
26+
afterEach(() => {
27+
jest.useRealTimers();
28+
});
29+
30+
it('basic', () => {
31+
const wrapper = mount(
32+
<Overflow<ItemType>
33+
data={getData(6)}
34+
renderItem={renderItem}
35+
maxCount="responsive"
36+
/>,
37+
);
38+
39+
wrapper.initSize(100, 20); // [0][1][2][3][4][+2]
40+
expect(wrapper.findItems()).toHaveLength(5);
41+
expect(wrapper.findRest()).toHaveLength(1);
42+
expect(wrapper.findRest().text()).toEqual('+2...');
43+
});
44+
});

tests/setup.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ window.requestAnimationFrame = func => {
1010
Enzyme.configure({ adapter: new Adapter() });
1111

1212
Object.assign(Enzyme.ReactWrapper.prototype, {
13-
triggerResize(offsetWidth) {
13+
triggerResize(clientWidth) {
1414
act(() => {
1515
this.find('ResizeObserver')
1616
.first()
1717
.props()
18-
.onResize({ offsetWidth });
18+
.onResize({}, { clientWidth });
19+
jest.runAllTimers();
20+
this.update();
1921
});
2022
},
2123
triggerItemResize(index, offsetWidth) {
@@ -25,11 +27,18 @@ Object.assign(Enzyme.ReactWrapper.prototype, {
2527
.find('ResizeObserver')
2628
.props()
2729
.onResize({ offsetWidth });
30+
jest.runAllTimers();
31+
this.update();
2832
});
2933
},
3034
initSize(width, itemWidth) {
3135
this.triggerResize(width);
32-
this.triggerItemResize(itemWidth);
36+
this.find('Item').forEach((_, index) => {
37+
this.triggerItemResize(index, itemWidth);
38+
});
39+
},
40+
findItems() {
41+
return this.find('div.rc-overflow-item');
3342
},
3443
findRest() {
3544
return this.find('div.rc-overflow-item-rest');

tests/wrapper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export interface WrapperType extends ReactWrapper {
66
triggerResize: (offsetWidth: number) => WrapperType;
77
triggerItemResize: (index: number, offsetWidth: number) => WrapperType;
88
initSize: (width: number, itemWidth: number) => WrapperType;
9+
findItems: () => WrapperType;
910
findRest: () => WrapperType;
1011
}
1112

0 commit comments

Comments
 (0)