diff --git a/packages/runtime-core/__tests__/helpers/createSlots.spec.ts b/packages/runtime-core/__tests__/helpers/createSlots.spec.ts new file mode 100644 index 000000000..7f1de631a --- /dev/null +++ b/packages/runtime-core/__tests__/helpers/createSlots.spec.ts @@ -0,0 +1,56 @@ +import { Slot } from '../../src/componentSlots' +import { createSlots } from '../../src/helpers/createSlots' + +describe('createSlot', () => { + const slot = () => [] + let record: Record + + beforeEach(() => { + record = {} + }) + + it('should return a slot', () => { + const dynamicSlot = [{ name: 'descriptor', fn: slot }] + + const actual = createSlots(record, dynamicSlot) + + expect(actual).toEqual({ descriptor: slot }) + }) + + it('should add all slots to the record', () => { + const dynamicSlot = [ + { name: 'descriptor', fn: slot }, + { name: 'descriptor2', fn: slot } + ] + + const actual = createSlots(record, dynamicSlot) + + expect(actual).toEqual({ descriptor: slot, descriptor2: slot }) + }) + + it('should add slot to the record when given slot is an array', () => { + const dynamicSlot = [ + { name: 'descriptor', fn: slot }, + [{ name: 'descriptor2', fn: slot }] + ] + + const actual = createSlots(record, dynamicSlot) + + expect(actual).toEqual({ descriptor: slot, descriptor2: slot }) + }) + + it('should add each slot to the record when given slot is an array', () => { + const dynamicSlot = [ + { name: 'descriptor', fn: slot }, + [{ name: 'descriptor2', fn: slot }, { name: 'descriptor3', fn: slot }] + ] + + const actual = createSlots(record, dynamicSlot) + + expect(actual).toEqual({ + descriptor: slot, + descriptor2: slot, + descriptor3: slot + }) + }) +}) diff --git a/packages/runtime-core/src/helpers/createSlots.ts b/packages/runtime-core/src/helpers/createSlots.ts index 011357174..b78b52ae3 100644 --- a/packages/runtime-core/src/helpers/createSlots.ts +++ b/packages/runtime-core/src/helpers/createSlots.ts @@ -15,7 +15,7 @@ export function createSlots( // array of dynamic slot generated by