mand-mobile/components/toast/test/index.spec.js

63 lines
1.3 KiB
JavaScript
Raw Normal View History

2018-12-21 18:18:05 +08:00
import Toast from 'mand-mobile/components/toast/toast'
2018-03-26 16:04:04 +08:00
import sinon from 'sinon'
2018-12-11 21:27:39 +08:00
import {mount} from '@vue/test-utils'
2018-03-26 16:04:04 +08:00
2018-12-11 21:27:39 +08:00
describe('Toast - Operation', () => {
2018-03-26 16:04:04 +08:00
let wrapper
afterEach(() => {
wrapper && wrapper.destroy()
})
2018-12-11 21:27:39 +08:00
test('should update timer after state changed', done => {
2018-03-26 16:04:04 +08:00
wrapper = mount(Toast, {
propsData: {
icon: 'spinner',
content: 'Hello, Earth!',
duration: 1000,
},
})
setTimeout(() => {
wrapper.setProps({icon: 'circle-right'})
2018-12-14 16:55:12 +08:00
wrapper.vm.fire()
2018-03-26 16:04:04 +08:00
setTimeout(function() {
2018-12-11 21:27:39 +08:00
expect(wrapper.vm.visible).toBe(true)
2018-03-26 16:04:04 +08:00
done()
}, 500)
}, 800)
})
2018-12-11 21:27:39 +08:00
test('auto hide', done => {
2018-03-26 16:04:04 +08:00
wrapper = mount(Toast, {
propsData: {
icon: 'spinner',
content: 'Hello, Earth!',
duration: 1000,
},
})
2018-12-14 16:55:12 +08:00
wrapper.vm.fire()
2018-03-26 16:04:04 +08:00
setTimeout(() => {
2018-12-11 21:27:39 +08:00
expect(wrapper.vm.visible).toBe(false)
2018-03-26 16:04:04 +08:00
done()
}, 1100)
})
2018-12-11 21:27:39 +08:00
test('emit hide event', done => {
wrapper = mount(Toast, {
propsData: {
icon: 'spinner',
content: 'Hello, Earth!',
duration: 0,
},
})
2018-03-26 16:04:04 +08:00
2018-12-11 21:27:39 +08:00
const eventStub = sinon.stub(wrapper.vm, '$emit')
wrapper.vm.hide()
setTimeout(() => {
expect(eventStub.calledWith('hide')).toBe(true)
done()
}, 500)
})
2018-03-26 16:04:04 +08:00
})