mirror of
https://github.com/element-plus/element-plus.git
synced 2026-03-13 07:51:17 +08:00
feat(components): [checkbox] Checkbox can uncheck exceed max value (#15513)
* feat(components): [checkbox] Checkbox can uncheck exceed max value closed #15494 * feat(components): add test
This commit is contained in:
@@ -495,6 +495,34 @@ describe('check-button', () => {
|
||||
expect(wrapper.findComponent({ ref: 'a' }).vm.isDisabled).toBe(true)
|
||||
})
|
||||
|
||||
test('button group exceed max', async () => {
|
||||
const checkList = ref(['a', 'b', 'c', 'd'])
|
||||
const wrapper = mount({
|
||||
setup() {
|
||||
return () => (
|
||||
<CheckboxGroup v-model={checkList.value} max={3}>
|
||||
<CheckboxButton label="a" ref="a" />
|
||||
<CheckboxButton label="b" ref="b" />
|
||||
<CheckboxButton label="c" ref="c" />
|
||||
<CheckboxButton label="d" ref="d" />
|
||||
<CheckboxButton label="e" ref="e" />
|
||||
</CheckboxGroup>
|
||||
)
|
||||
},
|
||||
})
|
||||
|
||||
expect(checkList.value.length).toBe(4)
|
||||
|
||||
await wrapper.findComponent({ ref: 'a' }).trigger('click')
|
||||
expect(checkList.value.length).toBe(3)
|
||||
|
||||
await wrapper.findComponent({ ref: 'a' }).trigger('click')
|
||||
expect(checkList.value.length).toBe(3)
|
||||
expect(checkList.value).toEqual(['b', 'c', 'd'])
|
||||
|
||||
expect(wrapper.findComponent({ ref: 'a' }).vm.isDisabled).toBe(true)
|
||||
})
|
||||
|
||||
test('nested group', async () => {
|
||||
const checkList = ref([])
|
||||
const wrapper = mount({
|
||||
|
||||
@@ -22,7 +22,8 @@ export const useCheckboxModel = (props: CheckboxProps) => {
|
||||
if (isGroup.value && isArray(val)) {
|
||||
isLimitExceeded.value =
|
||||
checkboxGroup?.max?.value !== undefined &&
|
||||
val.length > checkboxGroup?.max.value
|
||||
val.length > checkboxGroup?.max.value &&
|
||||
val.length > model.value.length
|
||||
isLimitExceeded.value === false && checkboxGroup?.changeEvent?.(val)
|
||||
} else {
|
||||
emit(UPDATE_MODEL_EVENT, val)
|
||||
|
||||
Reference in New Issue
Block a user