2
0
mirror of https://github.com/tenrok/vue-form-wizard.git synced 2026-06-23 22:00:33 +03:00

Simplify some unit tests

Get rid of useless nextticks
This commit is contained in:
cristijora
2017-10-02 19:41:23 +03:00
parent 9d568edff4
commit d08ebe2af7
+17 -28
View File
@@ -1,10 +1,11 @@
import Vue from 'vue'
import VueFormWizard from './../../../src/index' import VueFormWizard from './../../../src/index'
import {TabContent as WizardTab, WizardStep, FormWizard} from './../../../src/index' import {TabContent as WizardTab, WizardStep, FormWizard} from './../../../src/index'
import {mount} from 'vue-test-utils' import {mount, createLocalVue} from 'vue-test-utils'
import sinon from 'sinon' import sinon from 'sinon'
import Vue from "vue";
Vue.use(VueFormWizard) const localVue = createLocalVue()
localVue.use(VueFormWizard)
const startIndex = 0 const startIndex = 0
const twoStepWizard = { const twoStepWizard = {
template: `<form-wizard :start-index="startIndex"> template: `<form-wizard :start-index="startIndex">
@@ -29,12 +30,12 @@ const twoStepWizard = {
} }
describe('FormWizard.vue', () => { describe('FormWizard.vue', () => {
it('contains wizard class', () => { it('contains wizard class', () => {
const wizard = mount(twoStepWizard) const wizard = mount(twoStepWizard, {localVue})
wizard.hasClass('vue-form-wizard') wizard.hasClass('vue-form-wizard')
}) })
it('renders steps', (done) => { it('renders steps', () => {
const wizard = mount(twoStepWizard) const wizard = mount(twoStepWizard, {localVue})
Vue.nextTick(() => { Vue.nextTick(()=>{
const steps = wizard.findAll(WizardStep) const steps = wizard.findAll(WizardStep)
const firsStep = steps.at(0) const firsStep = steps.at(0)
expect(steps.length).to.equal(3) expect(steps.length).to.equal(3)
@@ -43,20 +44,16 @@ describe('FormWizard.vue', () => {
expect(stepTitle.is('span')).to.equal(true) expect(stepTitle.is('span')).to.equal(true)
const stepText = stepTitle.text().trim() const stepText = stepTitle.text().trim()
expect(stepText).to.equal('Personal details') expect(stepText).to.equal('Personal details')
done()
}) })
}) })
it('renders tabs', (done) => { it('renders tabs', () => {
const wizard = mount(twoStepWizard) const wizard = mount(twoStepWizard, {localVue})
Vue.nextTick(() => {
const tabs = wizard.findAll(WizardTab) const tabs = wizard.findAll(WizardTab)
expect(tabs.length).to.equal(3) expect(tabs.length).to.equal(3)
done()
}) })
}) it('displays only one tab', () => {
it('displays only one tab', (done) => { const wizard = mount(twoStepWizard, {localVue})
const wizard = mount(twoStepWizard)
Vue.nextTick(() => {
const tabs = wizard.findAll(WizardTab).wrappers const tabs = wizard.findAll(WizardTab).wrappers
const activeTabs = tabs.filter((tab) => tab.vm.active) const activeTabs = tabs.filter((tab) => tab.vm.active)
const inactiveTabs = tabs.filter((tab) => !tab.vm.active) const inactiveTabs = tabs.filter((tab) => !tab.vm.active)
@@ -65,31 +62,23 @@ describe('FormWizard.vue', () => {
inactiveTabs.forEach((tab) => { inactiveTabs.forEach((tab) => {
expect(tab.hasStyle('display', 'none')).to.equal(true) expect(tab.hasStyle('display', 'none')).to.equal(true)
}) })
done()
}) })
}) it('starts at a given index', () => {
it('starts at a given index', (done) => { const wizard = mount(twoStepWizard, {localVue})
const wizard = mount(twoStepWizard)
Vue.nextTick(() => {
const tabs = wizard.findAll(WizardTab) const tabs = wizard.findAll(WizardTab)
const activeTab = tabs.at(startIndex) const activeTab = tabs.at(startIndex)
expect(activeTab.vm.active).to.equal(true) expect(activeTab.vm.active).to.equal(true)
const formWizard = wizard.find(FormWizard) const formWizard = wizard.find(FormWizard)
expect(formWizard.vm.activeTabIndex).to.equal(startIndex) expect(formWizard.vm.activeTabIndex).to.equal(startIndex)
done()
}) })
}) it('next tab is called', () => {
it('next tab is called', (done) => { const wizard = mount(twoStepWizard, {localVue})
const wizard = mount(twoStepWizard)
const nextTabHandler = sinon.stub() const nextTabHandler = sinon.stub()
const formWizard = wizard.find(FormWizard) const formWizard = wizard.find(FormWizard)
formWizard.setMethods({nextTab: nextTabHandler}) formWizard.setMethods({nextTab: nextTabHandler})
Vue.nextTick(() => {
const nextButton = wizard.find('.wizard-footer-right span') const nextButton = wizard.find('.wizard-footer-right span')
nextButton.trigger('click') nextButton.trigger('click')
expect(nextTabHandler.called).to.equal(true) expect(nextTabHandler.called).to.equal(true)
done()
})
}) })
}) })