mirror of
https://github.com/tenrok/vue-select.git
synced 2026-05-17 02:29:37 +03:00
V3/update list items slot (#799)
* add tests for slots, add normalized function for passing options to slots * update active class * update active class
This commit is contained in:
+10
-5
@@ -28,15 +28,20 @@ export const selectWithProps = (propsData = {}) => {
|
||||
|
||||
/**
|
||||
* Returns a Wrapper with a v-select component.
|
||||
* @param props
|
||||
* @param options
|
||||
* @return {Wrapper<Vue>}
|
||||
*/
|
||||
export const mountDefault = (options = {}) =>
|
||||
shallowMount(VueSelect, {
|
||||
propsData: { options: ["one", "two", "three"],
|
||||
...options
|
||||
}
|
||||
export const mountDefault = (props = {}, options = {}) => {
|
||||
return shallowMount(VueSelect, {
|
||||
propsData: {
|
||||
options: ['one', 'two', 'three'],
|
||||
...props,
|
||||
},
|
||||
...options,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Returns a v-select component directly.
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import { mountDefault } from '../helpers';
|
||||
|
||||
describe('Scoped Slots', () => {
|
||||
it('receives an option object to the selected-option-container slot', () => {
|
||||
const Select = mountDefault(
|
||||
{value: 'one'},
|
||||
{
|
||||
scopedSlots: {
|
||||
'selected-option-container': `<span slot="selected-option-container" slot-scope="{option}">{{ option.label }}</span>`,
|
||||
},
|
||||
});
|
||||
|
||||
expect(Select.find({ ref: 'selectedOptions' }).text()).toEqual('one')
|
||||
});
|
||||
|
||||
it('receives an option object to the selected-option slot', () => {
|
||||
const Select = mountDefault(
|
||||
{value: 'one'},
|
||||
{
|
||||
scopedSlots: {
|
||||
'selected-option': `<span slot="selected-option" slot-scope="option">{{ option.label }}</span>`,
|
||||
},
|
||||
});
|
||||
|
||||
expect(Select.find('.vs__selected').text()).toEqual('one')
|
||||
});
|
||||
|
||||
it('receives an option object to the option slot in the dropdown menu', () => {
|
||||
const Select = mountDefault(
|
||||
{value: 'one'},
|
||||
{
|
||||
scopedSlots: {
|
||||
'option': `<span slot="option" slot-scope="option">{{ option.label }}</span>`,
|
||||
},
|
||||
});
|
||||
|
||||
Select.vm.open = true;
|
||||
|
||||
expect(Select.find({ref: 'dropdownMenu'}).text()).toEqual('onetwothree')
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user