[bugfix] Collapse: title slot not work (#2753)

This commit is contained in:
neverland 2019-02-15 19:22:13 +08:00 committed by GitHub
parent 170dcbf0d2
commit c5bd04e30a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 18 deletions

View File

@ -122,7 +122,7 @@ export default sfc({
}, {});
if (this.slots('value')) {
titleSlots.default = this.slots('value');
titleSlots.default = () => this.slots('value');
}
const Title = (

View File

@ -0,0 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`render collapse-item slot 1`] = `
<div class="van-collapse van-hairline--top-bottom">
<div class="van-collapse-item">
<div class="van-cell van-cell--clickable van-collapse-item__title">this is icon<div class="van-cell__title">this is title</div>
<div class="van-cell__value">this is value</div>this is right icon
</div>
</div>
</div>
`;

View File

@ -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: `
<collapse v-model="active">
<collapse-item>
<template v-slot:title>this is title</template>
<template v-slot:value>this is value</template>
<template v-slot:icon>this is icon</template>
<template v-slot:right-icon>this is right icon</template>
</collapse-item>
</collapse>
`,
components: {
Collapse,
CollapseItem
},
data() {
return {
active: []
};
}
});
expect(wrapper).toMatchSnapshot();
});