114 lines
2.6 KiB
JavaScript
114 lines
2.6 KiB
JavaScript
import Codebox from '../index'
|
|
import sinon from 'sinon'
|
|
import {mount} from 'avoriaz'
|
|
|
|
describe('Codebox', () => {
|
|
let wrapper
|
|
afterEach(() => {
|
|
wrapper && wrapper.destroy()
|
|
})
|
|
|
|
it('create a simple codebox', () => {
|
|
wrapper = mount(Codebox)
|
|
|
|
expect(wrapper.hasClass('md-codebox-wrapper')).to.be.true
|
|
})
|
|
|
|
it('create a codebox with input', () => {
|
|
wrapper = mount(Codebox, {
|
|
propsData: {
|
|
maxlength: -1,
|
|
},
|
|
})
|
|
expect(wrapper.contains('.md-codebox-holder')).to.be.true
|
|
})
|
|
|
|
it('create a codebox with custom keyboard', () => {
|
|
wrapper = mount(Codebox, {
|
|
propsData: {
|
|
system: false,
|
|
isView: true,
|
|
},
|
|
})
|
|
|
|
expect(wrapper.contains('.md-number-keyboard')).to.be.true
|
|
})
|
|
|
|
it('emit input/submit events', done => {
|
|
wrapper = mount(Codebox, {
|
|
propsData: {
|
|
isView: true,
|
|
},
|
|
})
|
|
|
|
const eventStub = sinon.stub(wrapper.vm, '$emit')
|
|
wrapper.setData({
|
|
code: '123',
|
|
})
|
|
wrapper.first('.keyboard-number-item').trigger('click')
|
|
setTimeout(() => {
|
|
expect(eventStub.calledWith('input')).to.be.true
|
|
expect(eventStub.calledWith('submit', '1231')).to.be.true
|
|
done()
|
|
}, 0)
|
|
})
|
|
|
|
it('click codebox to focus with custom keyboard', done => {
|
|
wrapper = mount(Codebox, {
|
|
propsData: {
|
|
maxlength: -1,
|
|
},
|
|
})
|
|
const eventStub = sinon.stub(wrapper.vm, '$emit')
|
|
wrapper.first('.md-codebox').trigger('click')
|
|
expect(wrapper.vm.focused).to.be.true
|
|
wrapper.first('.keyboard-number-item').trigger('click')
|
|
wrapper.first('.confirm').trigger('click')
|
|
setTimeout(() => {
|
|
expect(wrapper.vm.focused).to.be.false
|
|
expect(eventStub.calledWith('submit', '1')).to.be.true
|
|
done()
|
|
}, 0)
|
|
})
|
|
|
|
it('click codebox to focus with system keyboard', () => {
|
|
wrapper = mount(Codebox, {
|
|
propsData: {
|
|
system: true,
|
|
},
|
|
})
|
|
|
|
wrapper.first('.md-codebox').trigger('click')
|
|
expect(wrapper.vm.focused).to.be.true
|
|
})
|
|
|
|
it('delete code char after clicking delete button', () => {
|
|
wrapper = mount(Codebox, {
|
|
data: {
|
|
code: '1234',
|
|
},
|
|
})
|
|
|
|
wrapper.first('.delete').trigger('click')
|
|
expect(wrapper.vm.code).to.equal('123')
|
|
})
|
|
|
|
it('enter code char after clicking number button', done => {
|
|
wrapper = mount(Codebox, {
|
|
propsData: {
|
|
maxlength: 4,
|
|
isView: true,
|
|
},
|
|
data: {
|
|
code: '12',
|
|
},
|
|
})
|
|
|
|
wrapper.first('.keyboard-number-item').trigger('click')
|
|
setTimeout(() => {
|
|
expect(wrapper.vm.code).to.equal('121')
|
|
done()
|
|
}, 0)
|
|
})
|
|
})
|