Răsfoiți Sursa

Test: add destroy

Leopoldthecoder 8 ani în urmă
părinte
comite
2889d46034

+ 10 - 5
test/unit/specs/alert.spec.js

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

+ 13 - 8
test/unit/specs/rate.spec.js

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

+ 17 - 20
test/unit/specs/select.spec.js

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

+ 14 - 9
test/unit/specs/slider.spec.js

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

+ 10 - 5
test/unit/specs/switch.spec.js

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

+ 0 - 1
test/unit/util.js

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