vue commit
This commit is contained in:
96
tests/unit/components/Breadcrumb.spec.ts
Normal file
96
tests/unit/components/Breadcrumb.spec.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
import { mount, createLocalVue } from '@vue/test-utils';
|
||||
import VueRouter from 'vue-router';
|
||||
import ElementUI from 'element-ui';
|
||||
import Breadcrumb from '@/components/Breadcrumb/index.vue';
|
||||
|
||||
const localVue = createLocalVue();
|
||||
localVue.use(VueRouter);
|
||||
localVue.use(ElementUI);
|
||||
|
||||
const routes = [
|
||||
{
|
||||
'path': '/',
|
||||
'children': [{
|
||||
'path': 'dashboard'
|
||||
}]
|
||||
},
|
||||
{
|
||||
'path': '/menu',
|
||||
'children': [{
|
||||
'path': 'menu1',
|
||||
'meta': { 'title': 'menu1' },
|
||||
'children': [{
|
||||
'path': 'menu1-1',
|
||||
'meta': { 'title': 'menu1-1' }
|
||||
},
|
||||
{
|
||||
'path': 'menu1-2',
|
||||
'redirect': 'noredirect',
|
||||
'meta': { 'title': 'menu1-2' },
|
||||
'children': [{
|
||||
'path': 'menu1-2-1',
|
||||
'meta': { 'title': 'menu1-2-1' }
|
||||
},
|
||||
{
|
||||
'path': 'menu1-2-2'
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
}];
|
||||
|
||||
const router = new VueRouter({
|
||||
routes
|
||||
});
|
||||
|
||||
describe('Breadcrumb.vue', () => {
|
||||
const wrapper = mount(Breadcrumb, {
|
||||
localVue
|
||||
|
||||
});
|
||||
|
||||
it('dashboard', () => {
|
||||
router.push('/dashboard');
|
||||
const len = wrapper.findAll('.el-breadcrumb__inner').length;
|
||||
expect(len).toBe(1);
|
||||
});
|
||||
|
||||
it('normal route', () => {
|
||||
router.push('/menu/menu1');
|
||||
const len = wrapper.findAll('.el-breadcrumb__inner').length;
|
||||
expect(len).toBe(2);
|
||||
});
|
||||
|
||||
it('nested route', () => {
|
||||
router.push('/menu/menu1/menu1-2/menu1-2-1');
|
||||
const len = wrapper.findAll('.el-breadcrumb__inner').length;
|
||||
expect(len).toBe(4);
|
||||
});
|
||||
|
||||
it('no meta.title', () => {
|
||||
router.push('/menu/menu1/menu1-2/menu1-2-2');
|
||||
const len = wrapper.findAll('.el-breadcrumb__inner').length;
|
||||
expect(len).toBe(3);
|
||||
});
|
||||
|
||||
it('click link', () => {
|
||||
router.push('/menu/menu1/menu1-2/menu1-2-2');
|
||||
const breadcrumbArray = wrapper.findAll('.el-breadcrumb__inner');
|
||||
const second = breadcrumbArray.at(1);
|
||||
const href = second.find('a').text();
|
||||
expect(href).toBe('menu1');
|
||||
});
|
||||
|
||||
it('noredirect', () => {
|
||||
router.push('/menu/menu1/menu1-2/menu1-2-1');
|
||||
const breadcrumbArray = wrapper.findAll('.el-breadcrumb__inner');
|
||||
const redirectBreadcrumb = breadcrumbArray.at(2);
|
||||
expect(redirectBreadcrumb.contains('a')).toBe(false);
|
||||
});
|
||||
|
||||
it('last breadcrumb', () => {
|
||||
router.push('/menu/menu1/menu1-2/menu1-2-1');
|
||||
const breadcrumbArray = wrapper.findAll('.el-breadcrumb__inner');
|
||||
const redirectBreadcrumb = breadcrumbArray.at(3);
|
||||
expect(redirectBreadcrumb.contains('a')).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user