diff --git a/test/unit/specs/button.spec.js b/test/unit/specs/button.spec.js index ab2341ca..2d8e2809 100644 --- a/test/unit/specs/button.spec.js +++ b/test/unit/specs/button.spec.js @@ -21,4 +21,46 @@ describe('Button.vue', () => { expect(vm.$el.tagName).to.equal('BUTTON'); done(); }); + + it('handle with `type` attribute', done => { + // should render with `type` attribute + // if it is a + `); + expect(vm.$el.getAttribute('type')).to.equal('reset'); + + // should't render with `type` attribute + // if it is a + `); + expect(vm.$el.getAttribute('type')).to.equal(null); + done(); + }); + + it('should change loading state', done => { + vm = createVue({ + template: ` + + `, + data() { + return {loading: false}; + }, + methods: { + fetch() { + this.loading = true; + } + } + }); + vm.$el.click(); + vm.$nextTick(() => { + expect(vm.$el.classList.contains('ivu-btn-loading')).to.equal(true); + const $icons = vm.$el.querySelectorAll('.ivu-icon'); + expect($icons.length).to.equal(1); + expect($icons[0].classList.contains('ivu-load-loop')).to.equal(true); + expect($icons[0].classList.contains('ivu-icon-ios-loading')).to.equal(true); + done(); + }); + }); });