Skip to content

Commit 900ac31

Browse files
committed
test: add tests for multiple select.
1 parent 907b3fe commit 900ac31

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

tests/integrations/inputs/input-select.spec.ts

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,4 +201,66 @@ describe("Input Select Testing", () => {
201201
await app.vm.$nextTick();
202202
expect(input.element.getAttribute('tabindex')).toBe("none")
203203
})
204+
205+
test("Multiple attr should show first selected item as title", async () => {
206+
const wrap = defaultMount(defineSelectComponent({
207+
multiple: true,
208+
options: defaultOptions
209+
}))
210+
const form = (wrap.vm as any).form;
211+
form.setValues({
212+
[name]: [defaultOptions[0].value]
213+
})
214+
await wrap.vm.$nextTick();
215+
expect(wrap.text()).toBe(defaultOptions[0].label);
216+
})
217+
test("Multiple attr should show first selected item + N as title if was selected more then one", async () => {
218+
const wrap = defaultMount(defineSelectComponent({
219+
multiple: true,
220+
options: defaultOptions
221+
}))
222+
const form = (wrap.vm as any).form;
223+
form.setValues({
224+
[name]: defaultOptions.map(i => i.value)
225+
})
226+
await wrap.vm.$nextTick();
227+
expect(wrap.text()).toBe(defaultOptions[0].label + ' + ' + (defaultOptions.length - 1));
228+
})
229+
230+
test("Multiple attr should show selected items", async () => {
231+
const wrap = defaultMount(defineSelectComponent({
232+
multiple: true,
233+
options: defaultOptions
234+
}))
235+
const form = (wrap.vm as any).form as Form;
236+
form.setValues({
237+
[name]: [defaultOptions[1].value]
238+
})
239+
currentItem = wrap.find('.container-input-select-current')
240+
expect(currentItem.exists()).toBe(true);
241+
await currentItem.trigger('click');
242+
243+
expect(wrap.findAll('.input-select-option-list-item_active').map(item => item.text())).toEqual([defaultOptions[1].label])
244+
})
245+
test("Selecting items should update value(multiple attr", async () => {
246+
const wrap = defaultMount(defineSelectComponent({
247+
multiple: true,
248+
options: defaultOptions
249+
}))
250+
const form = (wrap.vm as any).form as Form;
251+
currentItem = wrap.find('.container-input-select-current')
252+
await currentItem.trigger('click');
253+
254+
await wrap.findAll('.input-select-option-list-item').reduce((acc, item) => {
255+
return acc.then(() => item.trigger('click'))
256+
}, Promise.resolve())
257+
258+
expect(form.getValueByName(name)).toEqual(defaultOptions.map(item => item.value))
259+
260+
await wrap.findAll('.input-select-option-list-item').reduce((acc, item) => {
261+
return acc.then(() => item.trigger('click'))
262+
}, Promise.resolve())
263+
264+
expect(form.getValueByName(name)).toEqual([])
265+
})
204266
})

0 commit comments

Comments
 (0)