Skip to content

Commit 967cd0a

Browse files
hxj9102kagol
authored andcommitted
test(menu): 添加menu测试用例
1 parent 93fd3dc commit 967cd0a

File tree

1 file changed

+67
-5
lines changed

1 file changed

+67
-5
lines changed

packages/devui-vue/devui/menu/__tests__/menu.spec.ts

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const dotMenuItemVerticalWrapper = dotNs.b() + '-item-vertical-wrapper';
1515
const dotSubMenu = dotSubNs.b();
1616
const submenuDisabled = SubNs.b() + '-disabled';
1717
const 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

Comments
 (0)