1
1
/* eslint-disable no-undef, react/no-multi-comp, react/jsx-curly-brace-presence */
2
2
import { act , fireEvent , render } from '@testing-library/react' ;
3
3
import React from 'react' ;
4
- import Menu , { MenuItem , SubMenu } from '../src' ;
4
+ import Menu from '../src' ;
5
5
6
6
describe ( 'Menu.Collapsed' , ( ) => {
7
7
describe ( 'inlineCollapse and siderCollapsed' , ( ) => {
@@ -15,13 +15,31 @@ describe('Menu.Collapsed', () => {
15
15
16
16
it ( 'should always follow openKeys when mode is switched' , ( ) => {
17
17
const genMenu = ( props ?) => (
18
- < Menu openKeys = { [ '1' ] } mode = "inline" { ...props } >
19
- < SubMenu key = "1" title = "submenu1" >
20
- < MenuItem key = "submenu1" > Option 1</ MenuItem >
21
- < MenuItem key = "submenu2" > Option 2</ MenuItem >
22
- </ SubMenu >
23
- < MenuItem key = "2" > menu2</ MenuItem >
24
- </ Menu >
18
+ < Menu
19
+ openKeys = { [ '1' ] }
20
+ mode = "inline"
21
+ { ...props }
22
+ items = { [
23
+ {
24
+ key : '1' ,
25
+ label : 'submenu1' ,
26
+ children : [
27
+ {
28
+ key : 'submenu1' ,
29
+ label : 'Option 1' ,
30
+ } ,
31
+ {
32
+ key : 'submenu2' ,
33
+ label : 'Option 2' ,
34
+ } ,
35
+ ] ,
36
+ } ,
37
+ {
38
+ key : '2' ,
39
+ label : 'menu2' ,
40
+ } ,
41
+ ] }
42
+ />
25
43
) ;
26
44
27
45
const { container, rerender } = render ( genMenu ( ) ) ;
@@ -49,13 +67,28 @@ describe('Menu.Collapsed', () => {
49
67
50
68
it ( 'should always follow submenu popup hidden when mode is switched' , ( ) => {
51
69
const genMenu = ( props ?) => (
52
- < Menu mode = "vertical" { ...props } >
53
- < SubMenu key = "1" title = "submenu1" >
54
- < SubMenu key = "1-1" title = "submenu1-1" >
55
- < MenuItem key = "Option-1" > Option 1</ MenuItem >
56
- </ SubMenu >
57
- </ SubMenu >
58
- </ Menu >
70
+ < Menu
71
+ mode = "vertical"
72
+ { ...props }
73
+ items = { [
74
+ {
75
+ key : '1' ,
76
+ label : 'submenu1' ,
77
+ children : [
78
+ {
79
+ key : '1-1' ,
80
+ label : 'submenu1-1' ,
81
+ children : [
82
+ {
83
+ key : 'Option-1' ,
84
+ label : 'Option 1' ,
85
+ } ,
86
+ ] ,
87
+ } ,
88
+ ] ,
89
+ } ,
90
+ ] }
91
+ />
59
92
) ;
60
93
61
94
const { container, rerender } = render ( genMenu ( ) ) ;
@@ -102,15 +135,31 @@ describe('Menu.Collapsed', () => {
102
135
103
136
it ( 'should always follow openKeys when inlineCollapsed is switched' , ( ) => {
104
137
const genMenu = ( props ?) => (
105
- < Menu defaultOpenKeys = { [ '1' ] } mode = "inline" { ...props } >
106
- < MenuItem key = "menu1" >
107
- < span > Option</ span >
108
- </ MenuItem >
109
- < SubMenu key = "1" title = "submenu1" >
110
- < MenuItem key = "submenu1" > Option</ MenuItem >
111
- < MenuItem key = "submenu2" > Option</ MenuItem >
112
- </ SubMenu >
113
- </ Menu >
138
+ < Menu
139
+ defaultOpenKeys = { [ '1' ] }
140
+ mode = "inline"
141
+ { ...props }
142
+ items = { [
143
+ {
144
+ key : 'menu1' ,
145
+ label : < span > Option</ span > ,
146
+ } ,
147
+ {
148
+ key : '1' ,
149
+ label : 'submenu1' ,
150
+ children : [
151
+ {
152
+ key : 'submenu1' ,
153
+ label : 'Option' ,
154
+ } ,
155
+ {
156
+ key : 'submenu2' ,
157
+ label : 'Option' ,
158
+ } ,
159
+ ] ,
160
+ } ,
161
+ ] }
162
+ />
114
163
) ;
115
164
116
165
const { container, rerender } = render ( genMenu ( ) ) ;
@@ -155,15 +204,31 @@ describe('Menu.Collapsed', () => {
155
204
156
205
it ( 'inlineCollapsed should works well when specify a not existed default openKeys' , ( ) => {
157
206
const genMenu = ( props ?) => (
158
- < Menu defaultOpenKeys = { [ 'not-existed' ] } mode = "inline" { ...props } >
159
- < MenuItem key = "menu1" >
160
- < span > Option</ span >
161
- </ MenuItem >
162
- < SubMenu key = "1" title = "submenu1" >
163
- < MenuItem key = "submenu1" > Option</ MenuItem >
164
- < MenuItem key = "submenu2" > Option</ MenuItem >
165
- </ SubMenu >
166
- </ Menu >
207
+ < Menu
208
+ defaultOpenKeys = { [ 'not-existed' ] }
209
+ mode = "inline"
210
+ { ...props }
211
+ items = { [
212
+ {
213
+ key : 'menu1' ,
214
+ label : < span > Option</ span > ,
215
+ } ,
216
+ {
217
+ key : '1' ,
218
+ label : 'submenu1' ,
219
+ children : [
220
+ {
221
+ key : 'submenu1' ,
222
+ label : 'Option' ,
223
+ } ,
224
+ {
225
+ key : 'submenu2' ,
226
+ label : 'Option' ,
227
+ } ,
228
+ ] ,
229
+ } ,
230
+ ] }
231
+ />
167
232
) ;
168
233
169
234
const { container, rerender } = render ( genMenu ( ) ) ;
@@ -176,9 +241,6 @@ describe('Menu.Collapsed', () => {
176
241
jest . runAllTimers ( ) ;
177
242
} ) ;
178
243
179
- // wrapper
180
- // .find('Overflow')
181
- // .simulate('transitionEnd', { propertyName: 'width' });
182
244
fireEvent . transitionEnd ( container . querySelector ( '.rc-menu-root' ) , {
183
245
propertyName : 'width' ,
184
246
} ) ;
@@ -189,7 +251,6 @@ describe('Menu.Collapsed', () => {
189
251
} ) ;
190
252
191
253
// Hover to show
192
- // wrapper.find('.rc-menu-submenu-title').at(0).simulate('mouseEnter');
193
254
fireEvent . mouseEnter ( container . querySelector ( '.rc-menu-submenu-title' ) ) ;
194
255
195
256
act ( ( ) => {
@@ -222,24 +283,38 @@ describe('Menu.Collapsed', () => {
222
283
mode = "inline"
223
284
inlineCollapsed
224
285
getPopupContainer = { node => node . parentNode as HTMLElement }
225
- >
226
- < MenuItem key = "menu1" > item</ MenuItem >
227
- < MenuItem key = "menu2" title = "title" >
228
- item
229
- </ MenuItem >
230
- < MenuItem key = "menu3" title = { undefined } >
231
- item
232
- </ MenuItem >
233
- < MenuItem key = "menu4" title = { null } >
234
- item
235
- </ MenuItem >
236
- < MenuItem key = "menu5" title = "" >
237
- item
238
- </ MenuItem >
239
- < MenuItem key = "menu6" title = { false as unknown as string } >
240
- item
241
- </ MenuItem >
242
- </ Menu > ,
286
+ items = { [
287
+ {
288
+ key : 'menu1' ,
289
+ label : 'item' ,
290
+ } ,
291
+ {
292
+ key : 'menu2' ,
293
+ label : 'item' ,
294
+ title : 'title' ,
295
+ } ,
296
+ {
297
+ key : 'menu3' ,
298
+ label : 'item' ,
299
+ title : undefined ,
300
+ } ,
301
+ {
302
+ key : 'menu4' ,
303
+ label : 'item' ,
304
+ title : null ,
305
+ } ,
306
+ {
307
+ key : 'menu5' ,
308
+ label : 'item' ,
309
+ title : '' ,
310
+ } ,
311
+ {
312
+ key : 'menu6' ,
313
+ label : 'item' ,
314
+ title : false as unknown as string ,
315
+ } ,
316
+ ] }
317
+ /> ,
243
318
) ;
244
319
245
320
expect (
@@ -259,13 +334,27 @@ describe('Menu.Collapsed', () => {
259
334
defaultSelectedKeys = { [ '1' ] }
260
335
openKeys = { [ '3' ] }
261
336
{ ...props }
262
- >
263
- < MenuItem key = "1" > Option 1</ MenuItem >
264
- < MenuItem key = "2" > Option 2</ MenuItem >
265
- < SubMenu key = "3" title = "Option 3" >
266
- < MenuItem key = "4" > Option 4</ MenuItem >
267
- </ SubMenu >
268
- </ Menu >
337
+ items = { [
338
+ {
339
+ key : '1' ,
340
+ label : 'Option 1' ,
341
+ } ,
342
+ {
343
+ key : '2' ,
344
+ label : 'Option 2' ,
345
+ } ,
346
+ {
347
+ key : '3' ,
348
+ label : 'Option 3' ,
349
+ children : [
350
+ {
351
+ key : '4' ,
352
+ label : 'Option 4' ,
353
+ } ,
354
+ ] ,
355
+ } ,
356
+ ] }
357
+ />
269
358
) ;
270
359
271
360
const { container, rerender } = render ( genMenu ( ) ) ;
@@ -305,13 +394,27 @@ describe('Menu.Collapsed', () => {
305
394
defaultSelectedKeys = { [ '1' ] }
306
395
openKeys = { [ '3' ] }
307
396
{ ...props }
308
- >
309
- < MenuItem key = "1" > Option 1</ MenuItem >
310
- < MenuItem key = "2" > Option 2</ MenuItem >
311
- < SubMenu key = "3" title = "Option 3" >
312
- < MenuItem key = "4" > Option 4</ MenuItem >
313
- </ SubMenu >
314
- </ Menu >
397
+ items = { [
398
+ {
399
+ key : '1' ,
400
+ label : 'Option 1' ,
401
+ } ,
402
+ {
403
+ key : '2' ,
404
+ label : 'Option 2' ,
405
+ } ,
406
+ {
407
+ key : '3' ,
408
+ label : 'Option 3' ,
409
+ children : [
410
+ {
411
+ key : '4' ,
412
+ label : 'Option 4' ,
413
+ } ,
414
+ ] ,
415
+ } ,
416
+ ] }
417
+ />
315
418
) ;
316
419
317
420
const { container, rerender } = render ( genMenu ( ) ) ;
0 commit comments