From 52cb15a1010882ef4c97c9de85b924ea0abc29e4 Mon Sep 17 00:00:00 2001 From: cookfront Date: Fri, 14 Apr 2017 22:09:02 +0800 Subject: [PATCH] badge unit test --- test/unit/components/badge.vue | 24 +++++++++++++++++++ test/unit/specs/badge.spec.js | 44 ++++++++++++---------------------- 2 files changed, 39 insertions(+), 29 deletions(-) create mode 100644 test/unit/components/badge.vue diff --git a/test/unit/components/badge.vue b/test/unit/components/badge.vue new file mode 100644 index 000000000..dd84bf0a9 --- /dev/null +++ b/test/unit/components/badge.vue @@ -0,0 +1,24 @@ + + + diff --git a/test/unit/specs/badge.spec.js b/test/unit/specs/badge.spec.js index b74f761a5..b5fe1c579 100644 --- a/test/unit/specs/badge.spec.js +++ b/test/unit/specs/badge.spec.js @@ -1,14 +1,5 @@ -import Vue from 'vue'; -import Badge from 'packages/badge'; -import BadgeGroup from 'packages/badge-group'; import { mount } from 'avoriaz'; - -Vue.component(Badge.name, Badge); -Vue.component(BadgeGroup.name, BadgeGroup); - -const component = Vue.component({ - -}); +import BadgeTestComponent from '../components/badge'; describe('BadgeGroup', () => { let wrapper; @@ -17,27 +8,22 @@ describe('BadgeGroup', () => { }); it('create a badge-group', () => { - wrapper = mount(BadgeGroup); + wrapper = mount(BadgeTestComponent); expect(wrapper.hasClass('zan-badge-group')).to.be.true; - expect(wrapper.instance().activeKey).to.equal(0); - expect(wrapper.data().badges.length).to.equal(0); + + expect(wrapper.vNode.child.activeKey).to.equal(0); + expect(wrapper.vNode.child.badges.length).to.equal(2); + }); + + it('emit a click event when click badge', () => { + wrapper = mount(BadgeTestComponent); + + const badge = wrapper.find('.zan-badge')[0]; + const eventStub = sinon.stub(badge.vNode.child, '$emit'); + badge.simulate('click'); + + expect(eventStub.calledWith('click')).to.be.true; }); }); -describe('Badge', () => { - let wrapper; - afterEach(() => { - wrapper && wrapper.destroy(); - }); - - it('create a badge', () => { - wrapper = mount(Badge, { - propsData: { - title: 'test' - } - }); - - expect(wrapper.hasClass('zan-badge')).to.be.true; - }); -});