Breadcrumb.spec.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import { mount, createLocalVue } from '@vue/test-utils'
  2. import VueRouter from 'vue-router'
  3. import ElementUI from 'element-ui'
  4. import Breadcrumb from '@/components/Breadcrumb/index.vue'
  5. const localVue = createLocalVue()
  6. localVue.use(VueRouter)
  7. localVue.use(ElementUI)
  8. const routes = [{
  9. path: '/',
  10. name: 'home',
  11. children: [{
  12. path: 'dashboard',
  13. name: 'dashboard'
  14. }]
  15. },
  16. {
  17. path: '/menu',
  18. name: 'menu',
  19. children: [{
  20. path: 'menu1',
  21. name: 'menu1',
  22. meta: { title: 'menu1' },
  23. children: [{
  24. path: 'menu1-1',
  25. name: 'menu1-1',
  26. meta: { title: 'menu1-1' }
  27. },
  28. {
  29. path: 'menu1-2',
  30. name: 'menu1-2',
  31. redirect: 'noredirect',
  32. meta: { title: 'menu1-2' },
  33. children: [{
  34. path: 'menu1-2-1',
  35. name: 'menu1-2-1',
  36. meta: { title: 'menu1-2-1' }
  37. },
  38. {
  39. path: 'menu1-2-2',
  40. name: 'menu1-2-2'
  41. }
  42. ]
  43. }
  44. ]
  45. }]
  46. }
  47. ]
  48. const router = new VueRouter({
  49. routes
  50. })
  51. describe('Breadcrumb.vue', () => {
  52. const wrapper = mount(Breadcrumb, {
  53. localVue,
  54. router
  55. })
  56. it('dashboard', () => {
  57. router.push('/dashboard')
  58. const len = wrapper.findAll('.el-breadcrumb__inner').length
  59. expect(len).toBe(1)
  60. })
  61. it('normal route', () => {
  62. router.push('/menu/menu1')
  63. const len = wrapper.findAll('.el-breadcrumb__inner').length
  64. expect(len).toBe(2)
  65. })
  66. it('nested route', () => {
  67. router.push('/menu/menu1/menu1-2/menu1-2-1')
  68. const len = wrapper.findAll('.el-breadcrumb__inner').length
  69. expect(len).toBe(4)
  70. })
  71. it('no meta.title', () => {
  72. router.push('/menu/menu1/menu1-2/menu1-2-2')
  73. const len = wrapper.findAll('.el-breadcrumb__inner').length
  74. expect(len).toBe(3)
  75. })
  76. // it('click link', () => {
  77. // router.push('/menu/menu1/menu1-2/menu1-2-2')
  78. // const breadcrumbArray = wrapper.findAll('.el-breadcrumb__inner')
  79. // const second = breadcrumbArray.at(1)
  80. // console.log(breadcrumbArray)
  81. // const href = second.find('a').attributes().href
  82. // expect(href).toBe('#/menu/menu1')
  83. // })
  84. // it('noRedirect', () => {
  85. // router.push('/menu/menu1/menu1-2/menu1-2-1')
  86. // const breadcrumbArray = wrapper.findAll('.el-breadcrumb__inner')
  87. // const redirectBreadcrumb = breadcrumbArray.at(2)
  88. // expect(redirectBreadcrumb.contains('a')).toBe(false)
  89. // })
  90. it('last breadcrumb', () => {
  91. router.push('/menu/menu1/menu1-2/menu1-2-1')
  92. const breadcrumbArray = wrapper.findAll('.el-breadcrumb__inner')
  93. const redirectBreadcrumb = breadcrumbArray.at(3)
  94. expect(redirectBreadcrumb.contains('a')).toBe(false)
  95. })
  96. })