mand-mobile
Version:
A Vue.js 2.0 Mobile UI Toolkit
98 lines (89 loc) • 2.19 kB
JavaScript
import {TabBar} from 'mand-mobile'
import {mount} from '@vue/test-utils'
describe('TabBar', () => {
let wrapper
afterEach(() => {
wrapper && wrapper.destroy()
})
it('switch menu by parent', done => {
wrapper = mount(TabBar, {
propsData: {
items: [{name: '1', label: '标题一'}, {name: '2', label: '标题二'}, {name: '3', label: '标题三'}],
},
sync: false,
})
wrapper.setProps({value: '2'})
setTimeout(() => {
expect(wrapper.vm.currentName).toBe('2')
done()
}, 0)
})
it('switch menu by click', done => {
wrapper = mount(TabBar, {
propsData: {
items: [
{name: '1', label: '标题一'},
{name: '2', label: '标题二'},
{name: '3', label: '标题三'},
{name: '4', label: '标题四'},
{name: '5', label: '标题五'},
{name: '6', label: '标题六'},
],
},
sync: false,
})
expect(
wrapper
.findAll('.md-tab-bar-item')
.at(0)
.classes('is-active'),
).toBe(true)
wrapper
.findAll('.md-tab-bar-item')
.at(4)
.trigger('click')
setTimeout(() => {
expect(
wrapper
.findAll('.md-tab-bar-item')
.at(4)
.classes('is-active'),
).toBe(true)
wrapper
.findAll('.md-tab-bar-item')
.at(1)
.trigger('click')
}, 100)
setTimeout(() => {
expect(
wrapper
.findAll('.md-tab-bar-item')
.at(1)
.classes('is-active'),
).toBe(true)
done()
}, 200)
})
it('click disabled menu', done => {
wrapper = mount(TabBar, {
propsData: {
items: [{name: '1', label: '标题一'}, {name: '2', label: '标题二'}, {name: '3', label: '标题三', disabled: true}],
},
sync: false,
})
expect(
wrapper
.findAll('.md-tab-bar-item')
.at(0)
.classes('is-active'),
).toBe(true)
wrapper
.findAll('.md-tab-bar-item')
.at(2)
.trigger('click')
setTimeout(() => {
expect(wrapper.vm.currentName).toBe('1')
done()
}, 0)
})
})