Commit 0f8452047db35074af15bcaf0bfafa2c67561d78
1 parent
9c33c644
[unit] 定义更多button测试用例
Showing
1 changed file
with
42 additions
and
0 deletions
Show diff stats
test/unit/specs/button.spec.js
@@ -21,4 +21,46 @@ describe('Button.vue', () => { | @@ -21,4 +21,46 @@ describe('Button.vue', () => { | ||
21 | expect(vm.$el.tagName).to.equal('BUTTON'); | 21 | expect(vm.$el.tagName).to.equal('BUTTON'); |
22 | done(); | 22 | done(); |
23 | }); | 23 | }); |
24 | + | ||
25 | + it('handle with `type` attribute', done => { | ||
26 | + // should render with `type` attribute | ||
27 | + // if it is a <button> | ||
28 | + vm = createVue(` | ||
29 | + <Button htmlType="reset">Think in FE</Button> | ||
30 | + `); | ||
31 | + expect(vm.$el.getAttribute('type')).to.equal('reset'); | ||
32 | + | ||
33 | + // should't render with `type` attribute | ||
34 | + // if it is a <button> | ||
35 | + vm = createVue(` | ||
36 | + <Button to="http://www.thinkinfe.tech/" htmlType="reset">Think in FE</Button> | ||
37 | + `); | ||
38 | + expect(vm.$el.getAttribute('type')).to.equal(null); | ||
39 | + done(); | ||
40 | + }); | ||
41 | + | ||
42 | + it('should change loading state', done => { | ||
43 | + vm = createVue({ | ||
44 | + template: ` | ||
45 | + <Button :loading="loading" @click="fetch">Think in FE</Button> | ||
46 | + `, | ||
47 | + data() { | ||
48 | + return {loading: false}; | ||
49 | + }, | ||
50 | + methods: { | ||
51 | + fetch() { | ||
52 | + this.loading = true; | ||
53 | + } | ||
54 | + } | ||
55 | + }); | ||
56 | + vm.$el.click(); | ||
57 | + vm.$nextTick(() => { | ||
58 | + expect(vm.$el.classList.contains('ivu-btn-loading')).to.equal(true); | ||
59 | + const $icons = vm.$el.querySelectorAll('.ivu-icon'); | ||
60 | + expect($icons.length).to.equal(1); | ||
61 | + expect($icons[0].classList.contains('ivu-load-loop')).to.equal(true); | ||
62 | + expect($icons[0].classList.contains('ivu-icon-ios-loading')).to.equal(true); | ||
63 | + done(); | ||
64 | + }); | ||
65 | + }); | ||
24 | }); | 66 | }); |