diff --git a/packages/collapse-item/index.js b/packages/collapse-item/index.js
index bb650378b..59bb02956 100644
--- a/packages/collapse-item/index.js
+++ b/packages/collapse-item/index.js
@@ -122,7 +122,7 @@ export default sfc({
}, {});
if (this.slots('value')) {
- titleSlots.default = this.slots('value');
+ titleSlots.default = () => this.slots('value');
}
const Title = (
diff --git a/packages/collapse/test/__snapshots__/index.spec.js.snap b/packages/collapse/test/__snapshots__/index.spec.js.snap
new file mode 100644
index 000000000..6c08939c5
--- /dev/null
+++ b/packages/collapse/test/__snapshots__/index.spec.js.snap
@@ -0,0 +1,11 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`render collapse-item slot 1`] = `
+
+
+
this is icon
this is title
+
this is value
this is right icon
+
+
+
+`;
diff --git a/packages/collapse/test/index.spec.js b/packages/collapse/test/index.spec.js
index d4d8c8198..1f4a12a10 100644
--- a/packages/collapse/test/index.spec.js
+++ b/packages/collapse/test/index.spec.js
@@ -42,24 +42,50 @@ test('basic mode', async () => {
wrapper.destroy();
});
-// it('accordion', async () => {
-// const wrapper = mount(component, {
-// propsData: {
-// accordion: true
-// }
-// });
+it('accordion', async () => {
+ 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');
+ 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(1).trigger('click');
+ expect(wrapper.vm.active).toEqual(1);
-// await later();
-// titles.at(0).trigger('click');
-// expect(wrapper.vm.active).toEqual('first');
+ await later();
+ titles.at(0).trigger('click');
+ expect(wrapper.vm.active).toEqual('first');
-// titles.at(0).trigger('click');
-// expect(wrapper.vm.active).toEqual('');
-// });
+ titles.at(0).trigger('click');
+ expect(wrapper.vm.active).toEqual('');
+});
+
+it('render collapse-item slot', () => {
+ const wrapper = mount({
+ template: `
+
+
+ this is title
+ this is value
+ this is icon
+ this is right icon
+
+
+ `,
+ components: {
+ Collapse,
+ CollapseItem
+ },
+ data() {
+ return {
+ active: []
+ };
+ }
+ });
+
+ expect(wrapper).toMatchSnapshot();
+});