import chai, { expect } from "chai";
import Vue from 'vue'
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
chai.use(sinonChai)
import { shallowMount, mount } from "@vue/test-utils"
import Nav from "@/nav/nav.vue";
import NavItem from "@/nav/nav-item"
describe("Nav.vue", () => {
it('存在.', () => {
expect(Nav).to.exist
})
it('value是几就选中第几个', (done) => {
Vue.component('GNavItem', NavItem)
const wrapper = mount(Nav, {
slots: {
default:`
<g-nav-item name="home">处理中心</g-nav-item>
<g-nav-item name="zhaopin">招聘</g-nav-item>
<g-nav-item name="weixin">微信</g-nav-item>
`
},
propsData: {
value: 'zhaopin'
}
})
setTimeout(() => {
expect(wrapper.find('.active').text()).to.be.eq('招聘')
done()
})
})
it('触发input事件', (done) => {
const callback = sinon.fake()
Vue.component('GNavItem', NavItem)
const wrapper = mount(Nav, {
slots: {
default:`
<g-nav-item name="home">处理中心</g-nav-item>
<g-nav-item name="zhaopin">招聘</g-nav-item>
<g-nav-item name="weixin">微信</g-nav-item>
`
},
listeners: {
'input': callback
}
})
wrapper.find('[data-name="weixin"]').trigger('click')
setTimeout(() => {
expect(callback).to.have.been.called
expect(callback).to.have.been.calledWith('weixin')
done()
})
})
});
|