diff --git a/packages/reflection/src/TsMorphMetadataProvider.ts b/packages/reflection/src/TsMorphMetadataProvider.ts index 8e83eb662605..9f483fc490d9 100644 --- a/packages/reflection/src/TsMorphMetadataProvider.ts +++ b/packages/reflection/src/TsMorphMetadataProvider.ts @@ -95,13 +95,14 @@ export class TsMorphMetadataProvider extends MetadataProvider { const properties = cls.getInstanceProperties(); const property = properties.find(v => v.getName() === prop.name) as PropertyDeclaration; - const tsType = property.getType(); /* istanbul ignore next */ if (!property) { return { type: prop.type, optional: prop.nullable }; } + const tsType = property.getType(); + if (tsType.isEnum()) { prop.enum = true; } diff --git a/tests/features/reflection/entities/Author.ts b/tests/features/reflection/entities/Author.ts index 2fb24e933d51..d9a373ce5282 100644 --- a/tests/features/reflection/entities/Author.ts +++ b/tests/features/reflection/entities/Author.ts @@ -52,4 +52,9 @@ export class Author extends BaseEntity { this.foo = 'bar'; } + @Property({ name: 'code' }) + getCode() { + return `${this.email} - ${this.name}`; + } + }