Test: add destroy

pull/641/head
Leopoldthecoder 2016-10-25 18:29:57 +08:00 committed by cinwell.li
parent 2f0ba607f4
commit 2889d46034
6 changed files with 64 additions and 48 deletions

View File

@ -1,9 +1,14 @@
import { createTest, createVue } from '../util'; import { createTest, createVue, destroyVM } from '../util';
import Alert from 'packages/alert'; import Alert from 'packages/alert';
describe('Alert', () => { describe('Alert', () => {
let vm;
afterEach(() => {
destroyVM(vm);
});
it('create', () => { it('create', () => {
const vm = createTest(Alert, { vm = createTest(Alert, {
title: 'test', title: 'test',
showIcon: true showIcon: true
}, true); }, true);
@ -12,7 +17,7 @@ describe('Alert', () => {
}); });
it('type', () => { it('type', () => {
const vm = createTest(Alert, { vm = createTest(Alert, {
title: 'test', title: 'test',
type: 'success', type: 'success',
showIcon: true showIcon: true
@ -22,7 +27,7 @@ describe('Alert', () => {
}); });
it('description', () => { it('description', () => {
const vm = createTest(Alert, { vm = createTest(Alert, {
title: 'Dorne', title: 'Dorne',
description: 'Unbowed, Unbent, Unbroken', description: 'Unbowed, Unbent, Unbroken',
showIcon: true showIcon: true
@ -32,7 +37,7 @@ describe('Alert', () => {
}); });
it('close', () => { it('close', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-alert <el-alert

View File

@ -1,16 +1,21 @@
import { createTest, createVue } from '../util'; import { createTest, createVue, destroyVM } from '../util';
import Rate from 'packages/rate'; import Rate from 'packages/rate';
import Vue from 'vue'; import Vue from 'vue';
describe('Rate', () => { describe('Rate', () => {
let vm;
afterEach(() => {
destroyVM(vm);
});
it('create', () => { it('create', () => {
const vm = createTest(Rate, { max: 10 }, true); vm = createTest(Rate, { max: 10 }, true);
const stars = vm.$el.querySelectorAll('.el-rate__item'); const stars = vm.$el.querySelectorAll('.el-rate__item');
expect(stars.length).to.equal(10); expect(stars.length).to.equal(10);
}); });
it('with texts', () => { it('with texts', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-rate <el-rate
@ -31,7 +36,7 @@ describe('Rate', () => {
}); });
it('value change', done => { it('value change', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-rate v-model="value"></el-rate> <el-rate v-model="value"></el-rate>
@ -54,7 +59,7 @@ describe('Rate', () => {
}); });
it('click', () => { it('click', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-rate v-model="value"></el-rate> <el-rate v-model="value"></el-rate>
@ -73,7 +78,7 @@ describe('Rate', () => {
}); });
it('colors', () => { it('colors', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-rate v-model="value" :colors="['#99A9BF', '#F7BA2A', '#FF9900']"></el-rate> <el-rate v-model="value" :colors="['#99A9BF', '#F7BA2A', '#FF9900']"></el-rate>
@ -91,7 +96,7 @@ describe('Rate', () => {
}); });
it('threshold', () => { it('threshold', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-rate v-model="value" :low-threshold="3"></el-rate> <el-rate v-model="value" :low-threshold="3"></el-rate>
@ -146,7 +151,7 @@ describe('Rate', () => {
}); });
it('allow half', () => { it('allow half', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-rate v-model="value" allow-half></el-rate> <el-rate v-model="value" allow-half></el-rate>

View File

@ -1,4 +1,4 @@
import { createTest, createVue, triggerEvent } from '../util'; import { createTest, createVue, triggerEvent, destroyVM } from '../util';
import Select from 'packages/select'; import Select from 'packages/select';
describe('Select', () => { describe('Select', () => {
@ -68,16 +68,13 @@ describe('Select', () => {
return vm; return vm;
}; };
let vm;
afterEach(() => { afterEach(() => {
const el = document.querySelector('.el-select'); destroyVM(vm);
if (!el) return;
if (el.parentNode) {
el.parentNode.removeChild(el);
}
}); });
it('create', () => { it('create', () => {
const vm = createTest(Select, true); vm = createTest(Select, true);
expect(vm.$el.className).to.equal('el-select'); expect(vm.$el.className).to.equal('el-select');
expect(vm.$el.querySelector('.el-input__inner').placeholder).to.equal('请选择'); expect(vm.$el.querySelector('.el-input__inner').placeholder).to.equal('请选择');
vm.toggleMenu(); vm.toggleMenu();
@ -85,7 +82,7 @@ describe('Select', () => {
}); });
it('options rendered correctly', () => { it('options rendered correctly', () => {
const vm = getSelectVm(); vm = getSelectVm();
const options = vm.$el.querySelectorAll('.el-select-dropdown__item'); const options = vm.$el.querySelectorAll('.el-select-dropdown__item');
const result = [].every.call(options, (option, index) => { const result = [].every.call(options, (option, index) => {
let text = option.querySelector('span').textContent; let text = option.querySelector('span').textContent;
@ -95,7 +92,7 @@ describe('Select', () => {
}); });
it('default value', done => { it('default value', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-select v-model="value"> <el-select v-model="value">
@ -129,7 +126,7 @@ describe('Select', () => {
it('single select', done => { it('single select', done => {
sinon.stub(window.console, 'log'); sinon.stub(window.console, 'log');
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-select v-model="value" @change="handleChange"> <el-select v-model="value" @change="handleChange">
@ -189,7 +186,7 @@ describe('Select', () => {
}); });
it('disabled option', done => { it('disabled option', done => {
const vm = getSelectVm(); vm = getSelectVm();
vm.options[1].disabled = true; vm.options[1].disabled = true;
setTimeout(() => { setTimeout(() => {
const options = vm.$el.querySelectorAll('.el-select-dropdown__item'); const options = vm.$el.querySelectorAll('.el-select-dropdown__item');
@ -203,12 +200,12 @@ describe('Select', () => {
}); });
it('disabled select', () => { it('disabled select', () => {
const vm = createTest(Select, { disabled: true }, true); vm = createTest(Select, { disabled: true }, true);
expect(vm.$el.querySelector('.el-input').classList.contains('is-disabled')).to.true; expect(vm.$el.querySelector('.el-input').classList.contains('is-disabled')).to.true;
}); });
it('keyboard operations', done => { it('keyboard operations', done => {
const vm = getSelectVm(); vm = getSelectVm();
const select = vm.$children[0]; const select = vm.$children[0];
let i = 8; let i = 8;
while (i--) { while (i--) {
@ -226,7 +223,7 @@ describe('Select', () => {
}); });
it('clearable', done => { it('clearable', done => {
const vm = getSelectVm({ clearable: true }); vm = getSelectVm({ clearable: true });
const select = vm.$children[0]; const select = vm.$children[0];
vm.value = '选项1'; vm.value = '选项1';
select.inputHovering = true; select.inputHovering = true;
@ -240,7 +237,7 @@ describe('Select', () => {
}); });
it('custom el-option template', () => { it('custom el-option template', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-select v-model="value"> <el-select v-model="value">
@ -268,7 +265,7 @@ describe('Select', () => {
}); });
it('option group', () => { it('option group', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-select v-model="value"> <el-select v-model="value">
@ -326,7 +323,7 @@ describe('Select', () => {
}); });
it('filterable', done => { it('filterable', done => {
const vm = getSelectVm({ filterable: true }); vm = getSelectVm({ filterable: true });
const select = vm.$children[0]; const select = vm.$children[0];
select.selectedLabel = '面'; select.selectedLabel = '面';
select.onInputChange(); select.onInputChange();
@ -343,7 +340,7 @@ describe('Select', () => {
vm.options = vm.options.filter(option => option.label.indexOf(query) === -1); vm.options = vm.options.filter(option => option.label.indexOf(query) === -1);
}; };
}; };
const vm = getSelectVm({ filterable: true, filterMethod }); vm = getSelectVm({ filterable: true, filterMethod });
const select = vm.$children[0]; const select = vm.$children[0];
select.query = '面'; select.query = '面';
setTimeout(() => { setTimeout(() => {
@ -353,7 +350,7 @@ describe('Select', () => {
}); });
it('multiple select', done => { it('multiple select', done => {
const vm = getSelectVm({ multiple: true }); vm = getSelectVm({ multiple: true });
const options = vm.$el.querySelectorAll('.el-select-dropdown__item'); const options = vm.$el.querySelectorAll('.el-select-dropdown__item');
vm.value = ['选项1']; vm.value = ['选项1'];
setTimeout(() => { setTimeout(() => {
@ -383,7 +380,7 @@ describe('Select', () => {
}, 200); }, 200);
}; };
}; };
const vm = getSelectVm({ vm = getSelectVm({
multiple: true, multiple: true,
remote: true, remote: true,
filterable: true, filterable: true,

View File

@ -1,14 +1,19 @@
import { createTest, createVue, triggerEvent } from '../util'; import { createTest, createVue, triggerEvent, destroyVM } from '../util';
import Slider from 'packages/slider'; import Slider from 'packages/slider';
describe('Slider', () => { describe('Slider', () => {
let vm;
afterEach(() => {
destroyVM(vm);
});
it('create', () => { it('create', () => {
const vm = createTest(Slider); vm = createTest(Slider);
expect(vm.value).to.equal(0); expect(vm.value).to.equal(0);
}); });
it('should not exceed min and max', done => { it('should not exceed min and max', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-slider v-model="value" :min="50"> <el-slider v-model="value" :min="50">
@ -36,7 +41,7 @@ describe('Slider', () => {
}); });
it('show tooltip', () => { it('show tooltip', () => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-slider v-model="value"> <el-slider v-model="value">
@ -58,7 +63,7 @@ describe('Slider', () => {
}); });
it('drag', done => { it('drag', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-slider v-model="value"></el-slider> <el-slider v-model="value"></el-slider>
@ -82,7 +87,7 @@ describe('Slider', () => {
}); });
it('click', done => { it('click', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-slider v-model="value"></el-slider> <el-slider v-model="value"></el-slider>
@ -106,7 +111,7 @@ describe('Slider', () => {
}); });
it('disabled', done => { it('disabled', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-slider v-model="value" disabled></el-slider> <el-slider v-model="value" disabled></el-slider>
@ -131,7 +136,7 @@ describe('Slider', () => {
}); });
it('show input', done => { it('show input', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-slider v-model="value" show-input></el-slider> <el-slider v-model="value" show-input></el-slider>
@ -156,7 +161,7 @@ describe('Slider', () => {
}); });
it('show stops', done => { it('show stops', done => {
const vm = createTest(Slider, { vm = createTest(Slider, {
showStops: true, showStops: true,
step: 10 step: 10
}, true); }, true);

View File

@ -1,10 +1,15 @@
import { createTest, createVue } from '../util'; import { createTest, createVue, destroyVM } from '../util';
import Switch from 'packages/switch'; import Switch from 'packages/switch';
import Vue from 'vue'; import Vue from 'vue';
describe('Switch', () => { describe('Switch', () => {
let vm;
afterEach(() => {
destroyVM(vm);
});
it('create', () => { it('create', () => {
const vm = createTest(Switch, { vm = createTest(Switch, {
onText: 'on', onText: 'on',
offText: 'off', offText: 'off',
onColor: '#0f0', onColor: '#0f0',
@ -19,7 +24,7 @@ describe('Switch', () => {
}); });
it('switch with icons', () => { it('switch with icons', () => {
const vm = createTest(Switch, { vm = createTest(Switch, {
onIconClass: 'el-icon-check', onIconClass: 'el-icon-check',
offIconClass: 'el-icon-close' offIconClass: 'el-icon-close'
}); });
@ -29,7 +34,7 @@ describe('Switch', () => {
}); });
it('value correctly update', done => { it('value correctly update', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-switch v-model="value"></el-switch> <el-switch v-model="value"></el-switch>
@ -57,7 +62,7 @@ describe('Switch', () => {
}); });
it('disabled switch should not respond to user click', done => { it('disabled switch should not respond to user click', done => {
const vm = createVue({ vm = createVue({
template: ` template: `
<div> <div>
<el-switch disabled v-model="value"></el-switch> <el-switch disabled v-model="value"></el-switch>

View File

@ -22,7 +22,6 @@ exports.destroyVM = function(vm) {
vm.$el && vm.$el &&
vm.$el.parentNode && vm.$el.parentNode &&
vm.$el.parentNode.removeChild(vm.$el); vm.$el.parentNode.removeChild(vm.$el);
vm.$destroy && vm.$destroy();
}; };
/** /**