From 4614260e1ccfeadd936cac3dc1eaa333619352ba Mon Sep 17 00:00:00 2001 From: neverland Date: Wed, 30 May 2018 14:41:00 +0800 Subject: [PATCH] [Improvement] List: add test cases (#1191) --- packages/list/index.vue | 2 - packages/list/test/index.spec.js | 77 ++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 packages/list/test/index.spec.js diff --git a/packages/list/index.vue b/packages/list/index.vue index 448ea959a..688471ce2 100644 --- a/packages/list/index.vue +++ b/packages/list/index.vue @@ -50,12 +50,10 @@ export default create({ }, activated() { - /* istanbul ignore next */ this.handler(true); }, deactivated() { - /* istanbul ignore next */ this.handler(false); }, diff --git a/packages/list/test/index.spec.js b/packages/list/test/index.spec.js new file mode 100644 index 000000000..501138ae5 --- /dev/null +++ b/packages/list/test/index.spec.js @@ -0,0 +1,77 @@ +import List from '..'; +import { mount } from '@vue/test-utils'; + +test('load event', done => { + const wrapper = mount(List); + + wrapper.vm.$on('input', value => { + wrapper.vm.loading = value; + }); + + setTimeout(() => { + expect(wrapper.emitted('load')).toBeTruthy(); + expect(wrapper.emitted('input')).toBeTruthy(); + + wrapper.vm.loading = false; + + setTimeout(() => { + expect(wrapper.emitted('input')[1]).toBeTruthy(); + wrapper.vm.$destroy(); + done(); + }); + }); +}); + +test('finished', done => { + const wrapper = mount(List, { + propsData: { + finished: true + } + }); + + setTimeout(() => { + expect(wrapper.emitted('load')).toBeFalsy(); + expect(wrapper.emitted('input')).toBeFalsy(); + wrapper.vm.finished = false; + + setTimeout(() => { + expect(wrapper.emitted('load')).toBeTruthy(); + expect(wrapper.emitted('input')).toBeTruthy(); + done(); + }); + }); +}); + +test('immediate check false', done => { + const wrapper = mount(List, { + propsData: { + immediateCheck: false + } + }); + + setTimeout(() => { + expect(wrapper.emitted('load')).toBeFalsy(); + expect(wrapper.emitted('input')).toBeFalsy(); + done(); + }); +}); + +test('keey-alive live cycle', () => { + const wrapper = mount({ + template: ` + + + + `, + props: ['show'], + components: { List } + }, { + propsData: { + show: true + } + }); + + expect(wrapper.vm.$el).toBeTruthy(); + wrapper.vm.show = false; + expect(wrapper.vm.el).toBeFalsy(); +});