Skip to content

Commit 817f1dc

Browse files
committed
chore: add missing test
1 parent 7d2fcea commit 817f1dc

File tree

2 files changed

+26
-7
lines changed

2 files changed

+26
-7
lines changed

packages/vue-component-meta/src/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,7 @@ export function createComponentMetaChecker(tsconfigPath: string) {
253253
const properties = type.getProperties();
254254
return properties.map(prop => ({
255255
name: prop.getName(),
256-
propsType: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(typeChecker.getTypeOfSymbolAtLocation(prop, symbolNode!).getCallSignatures()[0].parameters[0], symbolNode!)),
257-
// props: {}, // TODO
256+
type: typeChecker.typeToString(typeChecker.getTypeOfSymbolAtLocation(typeChecker.getTypeOfSymbolAtLocation(prop, symbolNode!).getCallSignatures()[0].parameters[0], symbolNode!)),
258257
description: ts.displayPartsToString(prop.getDocumentationComment(typeChecker)),
259258
}));
260259
}

packages/vue-component-meta/tests/index.spec.ts

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -336,15 +336,15 @@ describe(`vue-component-meta`, () => {
336336

337337
const a = meta.slots.find(slot =>
338338
slot.name === 'default'
339-
&& slot.propsType === '{ num: number; }'
339+
&& slot.type === '{ num: number; }'
340340
);
341341
const b = meta.slots.find(slot =>
342342
slot.name === 'named-slot'
343-
&& slot.propsType === '{ str: string; }'
343+
&& slot.type === '{ str: string; }'
344344
);
345345
const c = meta.slots.find(slot =>
346346
slot.name === 'vbind'
347-
&& slot.propsType === '{ num: number; str: string; }'
347+
&& slot.type === '{ num: number; str: string; }'
348348
);
349349

350350
expect(a).toBeDefined();
@@ -359,11 +359,11 @@ describe(`vue-component-meta`, () => {
359359

360360
const a = meta.slots.find(slot =>
361361
slot.name === 'default'
362-
&& slot.propsType === '{ num: number; }'
362+
&& slot.type === '{ num: number; }'
363363
);
364364
const b = meta.slots.find(slot =>
365365
slot.name === 'foo'
366-
&& slot.propsType === '{ str: string; }'
366+
&& slot.type === '{ str: string; }'
367367
);
368368

369369
expect(a).toBeDefined();
@@ -384,6 +384,26 @@ describe(`vue-component-meta`, () => {
384384
expect(counter).toBeDefined();
385385
});
386386

387+
test('ts-component', () => {
388+
389+
const componentPath = path.resolve(__dirname, '../../vue-test-workspace/vue-component-meta/ts-component/component.ts');
390+
const meta = checker.getComponentMeta(componentPath);
391+
392+
const a = meta.props.find(prop =>
393+
prop.name === 'foo'
394+
&& prop.required === true
395+
&& prop.type === 'string'
396+
);
397+
const b = meta.props.find(prop =>
398+
prop.name === 'bar'
399+
&& prop.required === false
400+
&& prop.type === 'number | undefined'
401+
);
402+
403+
expect(a).toBeDefined();
404+
expect(b).toBeDefined();
405+
});
406+
387407
test('ts-named-exports', () => {
388408

389409
const componentPath = path.resolve(__dirname, '../../vue-test-workspace/vue-component-meta/ts-named-export/component.ts');

0 commit comments

Comments
 (0)