Skip to content

Commit 2fec646

Browse files
committed
test(field-select): add test for multiselect
1 parent 58cf3ab commit 2fec646

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

__tests__/components/fields/FieldSelect.spec.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('Test FieldSelect', () => {
5151

5252
it('Should update model value', async () => {
5353
config.global.components = { FieldSelect }
54-
const formWrapper = mountFormGenerator(form.schema, props)
54+
const formWrapper = mountFormGenerator(form.schema, form.model)
5555
const selectComp = formWrapper.findComponent(FieldSelect)
5656
expect(selectComp.exists()).toBeTruthy()
5757

@@ -63,4 +63,27 @@ describe('Test FieldSelect', () => {
6363
expect(selectComp.vm.isOpened).toBeFalsy()
6464
})
6565

66+
it('Should update model value, with multiple option', async () => {
67+
config.global.components = { FieldSelect }
68+
const schema = { fields: [
69+
{ ...form.schema.fields[0], multiple: true }
70+
] }
71+
const model = { selectModel: [] }
72+
const formWrapper = mountFormGenerator(schema, model)
73+
74+
expect(formWrapper.vm.model.selectModel.length).toBe(0)
75+
const fieldSelect = formWrapper.findComponent(FieldSelect)
76+
expect(fieldSelect.exists()).toBeTruthy()
77+
78+
await fieldSelect.find('.vfg-select-label').trigger('click')
79+
await fieldSelect.vm.$nextTick()
80+
await fieldSelect.find('.vfg-select-option').trigger('click')
81+
expect(formWrapper.vm.model.selectModel.length).toBe(1)
82+
83+
await fieldSelect.find('.vfg-select-label').trigger('click')
84+
await fieldSelect.vm.$nextTick()
85+
await fieldSelect.findAll('.vfg-select-option')[2].trigger('click')
86+
expect(formWrapper.vm.model.selectModel.length).toBe(2)
87+
})
88+
6689
})

src/fields/input/FieldSelect.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export default {
7878
this.isOpened = true
7979
},
8080
isSelected (option) {
81-
return this.currentModelValue.includes(option.value)
81+
return this.currentModelValue?.includes(option.value) ?? false
8282
},
8383
selectOption (option) {
8484
if (!this.field.multiple) {
@@ -97,6 +97,7 @@ export default {
9797
9898
this.$emit('onInput', selectedValues)
9999
}
100+
this.isOpened = false
100101
}
101102
}
102103
}

0 commit comments

Comments
 (0)