import PasswordInput from 'packages/password-input'; import { mount } from 'avoriaz'; describe('PasswordInput', () => { let wrapper; afterEach(() => { wrapper && wrapper.destroy(); }); it('create a PasswordInput', () => { wrapper = mount(PasswordInput, {}); expect(wrapper.find('.van-password-input').length).to.equal(1); }); it('create a PasswordInput with value && info', (done) => { wrapper = mount(PasswordInput, { propsData: { value: '000', info: '测试info' } }); expect(wrapper.find('.van-password-input i')[2].hasStyle('visibility', 'visible')).to.be.true; expect(wrapper.find('.van-password-input i')[3].hasStyle('visibility', 'visible')).to.be.false; expect(wrapper.find('.van-password-input__info')[0].text()).to.equal('测试info'); wrapper.vm.value = '0000'; wrapper.vm.errorInfo = '测试errorInfo'; wrapper.vm.$nextTick(() => { expect(wrapper.find('.van-password-input i')[3].hasStyle('visibility', 'visible')).to.be.true; expect(wrapper.find('.van-password-input__info').length).to.equal(0); expect(wrapper.find('.van-password-input__error-info')[0].text()).to.equal('测试errorInfo'); done(); }); }); it('listen to focus event', () => { wrapper = mount(PasswordInput, {}); const focus = sinon.spy(); wrapper.vm.$on('focus', focus); wrapper.find('.van-password-input__security')[0].trigger('touchstart'); expect(focus.calledOnce).to.be.true; }); it('change password length', () => { wrapper = mount(PasswordInput, { propsData: { length: 2 } }); expect(wrapper.find('.van-password-input i').length).to.equal(2); }); });