import Button from '../index' import Icon from '../../icon' import { mount } from 'avoriaz' import Vue from 'vue' import { matchSnapshot } from "chai-karma-snapshot"; import { use, expect, assert } from "chai"; use(matchSnapshot); describe('Button', () => { it('create primary button', () => { const wrapper = mount({ render (h) { return }, }) expect(wrapper.html()).to.matchSnapshot(); expect(wrapper.hasClass('ant-btn-primary')).to.equal(true) }) it('renders Chinese characters correctly', (done) => { const wrapper = mount( { render (h) { return }, } ) expect(wrapper.text()).to.equal('按 钮') const wrapper1 = mount( { render (h) { return }, } ) expect(wrapper1.text()).to.equal('按钮') const wrapper2 = mount( { render (h) { return }, } ) expect(wrapper2.text()).to.equal('按钮') const wrapper3 = mount( { render (h) { return }, } ) Vue.nextTick(() => { expect(wrapper3.find('.ant-btn')[0].hasClass('ant-btn-two-chinese-chars')).to.equal(true); done() }) }) it('should change loading state instantly by default', () => { const DefaultButton = { data(){ return { loading: false, } }, methods: { enterLoading () { this.loading = true } }, render() { return ; } } const wrapper = mount(DefaultButton) wrapper.trigger('click'); Vue.nextTick(() => { expect(wrapper.find('.ant-btn-loading').length).to.equal(1); }) }); it('should change loading state with delay', () => { const DefaultButton = { data(){ return { loading: false, } }, methods: { enterLoading () { this.loading = { delay: 1000 } } }, render() { return ; } } const wrapper = mount(DefaultButton) wrapper.trigger('click'); Vue.nextTick(() => { expect(wrapper.hasClass('ant-btn-loading').length).to.equal(false); }) }); it('should support link button', () => { const wrapper = mount({ render (h) { return }, }) expect(wrapper.html()).to.matchSnapshot(); }) it('fixbug renders {0} , 0 and {false}', () => { const wrapper = mount({ render (h) { return }, }) expect(wrapper.html()).to.matchSnapshot(); const wrapper1 = mount({ render (h) { return }, }) expect(wrapper1.html()).to.matchSnapshot(); const wrapper2 = mount({ render (h) { return }, }) expect(wrapper2.html()).to.matchSnapshot(); }) })