From 0f8452047db35074af15bcaf0bfafa2c67561d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8C=83=E6=96=87=E6=9D=B0?= Date: Wed, 8 Aug 2018 14:30:16 +0800 Subject: [PATCH] =?UTF-8?q?[unit]=20=E5=AE=9A=E4=B9=89=E6=9B=B4=E5=A4=9Abu?= =?UTF-8?q?tton=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/unit/specs/button.spec.js | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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(); + }); + }); });