fix(Cascader): failed to update tabs when value is zero (#7778)

This commit is contained in:
neverland
2020-12-21 10:46:30 +08:00
committed by GitHub
parent a9134162f6
commit 659ea9cf07
7 changed files with 104 additions and 36 deletions
@@ -6,3 +6,43 @@ exports[`should select correct option when value changed 1`] = `
<li class="van-cascader__option van-cascader__option--selected"><span>Ouhai</span><i class="van-icon van-icon-success van-cascader__selected-icon">
<!----></i></li>
`;
exports[`should update tabs when previous tab is clicked 1`] = `
<div class="van-cascader">
<div class="van-cascader__header">
<h2 class="van-cascader__title"></h2><i class="van-icon van-icon-cross van-cascader__close-icon">
<!----></i>
</div>
<div class="van-tabs van-tabs--line van-cascader__tabs">
<div class="van-tabs__wrap van-tabs__wrap--scrollable">
<div role="tablist" class="van-tabs__nav van-tabs__nav--line van-tabs__nav--complete">
<div role="tab" class="van-tab van-cascader__tab"><span class="van-tab__text">Jiangsu</span></div>
<div role="tab" class="van-tab van-tab--active van-cascader__tab van-cascader__tab--unselected" aria-selected="true"><span class="van-tab__text">请选择</span></div>
<div class="van-tabs__line" style="transform: translateX(0px) translateX(-50%); transition-duration: 0.3s;"></div>
</div>
</div>
<div class="van-tabs__content van-tabs__content--animated">
<div class="van-tabs__track" style="transform: translate3d(-100%, 0, 0); transition-duration: 0.3s;">
<div role="tabpanel" class="van-tab__pane-wrapper van-tab__pane-wrapper--inactive" aria-hidden="true">
<div class="van-tab__pane">
<ul class="van-cascader__options">
<li class="van-cascader__option"><span>Zhejiang</span></li>
<li class="van-cascader__option van-cascader__option--selected"><span>Jiangsu</span><i class="van-icon van-icon-success van-cascader__selected-icon">
<!----></i></li>
</ul>
</div>
</div>
<div role="tabpanel" class="van-tab__pane-wrapper">
<div class="van-tab__pane">
<ul class="van-cascader__options">
<li class="van-cascader__option"><span>Nanjing</span></li>
<li class="van-cascader__option"><span>Wuxi</span></li>
<li class="van-cascader__option"><span>Xuzhou</span></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
`;
+28
View File
@@ -94,3 +94,31 @@ test('should select correct option when value changed', async () => {
const lastSelectedOption = selectedOptions.at(selectedOptions.length - 1);
expect(lastSelectedOption).toMatchSnapshot();
});
test('should reset selected options when value is set to emtpy', async () => {
const wrapper = mount(Cascader, {
propsData: {
value: '330304',
options,
},
});
await later();
wrapper.setProps({ value: '' });
await later();
expect(wrapper.contains('.van-cascader__option--selected')).toBeFalsy();
});
test('should update tabs when previous tab is clicked', async () => {
const wrapper = mount(Cascader, {
propsData: {
value: '330304',
options,
},
});
await later();
wrapper.findAll('.van-cascader__option').at(1).trigger('click');
await later();
expect(wrapper.html()).toMatchSnapshot();
});