@@ -15,6 +15,7 @@ const dotMenuItemVerticalWrapper = dotNs.b() + '-item-vertical-wrapper';
1515const dotSubMenu = dotSubNs . b ( ) ;
1616const submenuDisabled = SubNs . b ( ) + '-disabled' ;
1717const menuitemDisabled = ns . b ( ) + '-item-disabled' ;
18+ const dotMenuItemSelect = dotNs . b ( ) + '-item-select' ;
1819
1920// fix: TypeError: Array.from(...).at is not a function
2021! Array . prototype . at && ( Array . prototype . at = function at ( n ) {
@@ -151,13 +152,74 @@ describe('menu test', () => {
151152 expect ( wrapper . findAll ( 'i' ) [ 0 ] . classes ( ) . includes ( 'is-opened' ) ) . toBe ( true ) ;
152153 expect ( wrapper . findAll ( 'i' ) [ 1 ] . classes ( ) . includes ( 'is-opened' ) ) . toBe ( false ) ;
153154 } ) ;
154- it . todo ( 'props mode(vertical/horizontal) work well.' ) ;
155-
156- it . todo ( 'props multiple work well.' ) ;
155+ it ( 'props mode(vertical/horizontal) work well.' , async ( ) => {
156+ wrapper = mount ( {
157+ components : {
158+ 'd-menu' : Menu ,
159+ 'd-menu-item' : MenuItem ,
160+ } ,
161+ template : `
162+ <d-menu>
163+ <d-menu-item key="home">首页</d-menu-item>
164+ <d-menu-item key="person">个人</d-menu-item>
165+ <d-menu-item key="custom" href="https://www.baidu.com"> Link To Baidu </d-menu-item>
166+ </d-menu>
167+ ` ,
168+ } ) ;
169+ await wrapper . setProps ( {
170+ mode : 'horizontal' ,
171+ } ) ;
172+ expect ( wrapper . classes ( ) . includes ( menuHorizontal ) ) . toBe ( true ) ;
173+ await wrapper . setProps ( {
174+ mode : 'vertical' ,
175+ } ) ;
176+ expect ( wrapper . classes ( ) . includes ( menuVertical ) ) . toBe ( true ) ;
177+ wrapper . unmount ( ) ;
178+ } ) ;
157179
158- it . todo ( 'props collapsed-indent work well.' ) ;
180+ it ( 'props multiple work well.' , async ( ) => {
181+ wrapper = mount ( {
182+ components : {
183+ 'd-menu' : Menu ,
184+ 'd-menu-item' : MenuItem ,
185+ } ,
186+ template : `
187+ <d-menu multiple>
188+ <d-menu-item key="home">首页</d-menu-item>
189+ <d-menu-item key="person">个人</d-menu-item>
190+ <d-menu-item key="custom" href="https://www.baidu.com"> Link To Baidu </d-menu-item>
191+ </d-menu>
192+ ` ,
193+ } ) ;
194+ wrapper . findAll ( dotMenuItem ) [ 0 ] . trigger ( 'click' ) ;
195+ await nextTick ( ) ;
196+ expect ( wrapper . findAll ( dotMenuItemSelect ) ) . toHaveLength ( 1 ) ;
197+ wrapper . findAll ( dotMenuItem ) [ 1 ] . trigger ( 'click' ) ;
198+ await nextTick ( ) ;
199+ expect ( wrapper . findAll ( dotMenuItemSelect ) ) . toHaveLength ( 2 ) ;
200+ wrapper . findAll ( dotMenuItem ) [ 2 ] . trigger ( 'click' ) ;
201+ await nextTick ( ) ;
202+ expect ( wrapper . findAll ( dotMenuItemSelect ) ) . toHaveLength ( 3 ) ;
203+ wrapper . unmount ( ) ;
204+ } ) ;
159205
160- it . todo ( 'props disabled work well.' ) ;
206+ it ( 'props collapsed-indent work well.' , async ( ) => {
207+ wrapper = mount ( {
208+ components : {
209+ 'd-menu' : Menu ,
210+ 'd-menu-item' : MenuItem ,
211+ } ,
212+ template : `
213+ <d-menu collapsed :collapsed-indent="48">
214+ <d-menu-item key="home">首页</d-menu-item>
215+ <d-menu-item key="person">个人</d-menu-item>
216+ <d-menu-item key="custom" href="https://www.baidu.com"> Link To Baidu </d-menu-item>
217+ </d-menu>
218+ ` ,
219+ } ) ;
220+ expect ( wrapper . attributes ( 'style' ) ) . toContain ( 'width: 96px' ) ;
221+ wrapper . unmount ( ) ;
222+ } ) ;
161223
162224 it . todo ( 'props router work well.' ) ;
163225
0 commit comments