From 834f44e3d85f30a1a51432accbc5227b10e1c5ab Mon Sep 17 00:00:00 2001 From: neverland Date: Wed, 30 May 2018 15:32:30 +0800 Subject: [PATCH] [Improvement] Collapse: add test cases (#1194) --- packages/collapse/test/index.spec.js | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 packages/collapse/test/index.spec.js diff --git a/packages/collapse/test/index.spec.js b/packages/collapse/test/index.spec.js new file mode 100644 index 000000000..dc46f74cd --- /dev/null +++ b/packages/collapse/test/index.spec.js @@ -0,0 +1,62 @@ +import Collapse from '..'; +import CollapseItem from '../../collapse-item'; +import { mount } from '@vue/test-utils'; + +const component = { + template: ` + + content + content + content + + `, + components: { + Collapse, + CollapseItem + }, + props: { + accordion: Boolean + }, + data() { + return { + active: this.accordion ? '' : [] + }; + } +}; + +test('basic mode', () => { + const wrapper = mount(component); + + const titles = wrapper.findAll('.van-collapse-item__title'); + titles.at(0).trigger('click'); + expect(wrapper.vm.active).toEqual(['first']); + + titles.at(1).trigger('click'); + expect(wrapper.vm.active).toEqual(['first', 1]); + + titles.at(0).trigger('click'); + expect(wrapper.vm.active).toEqual([1]); + + wrapper.destroy(); +}); + +it('accordion', () => { + const wrapper = mount(component, { + propsData: { + accordion: true + } + }); + + const titles = wrapper.findAll('.van-collapse-item__title'); + titles.at(0).trigger('click'); + expect(wrapper.vm.active).toEqual('first'); + + titles.at(1).trigger('click'); + expect(wrapper.vm.active).toEqual(1); + + titles.at(0).trigger('click'); + expect(wrapper.vm.active).toEqual('first'); + + titles.at(0).trigger('click'); + expect(wrapper.vm.active).toEqual(''); +});