我的e2e测试正在为使用自定义装饰器@Public()
的控制器返回TypeError: metadata_1.Public is not a function
为了清晰起见,省略了一些代码
it(`/GET forks`, async () => {
const fork: ForksModel = {
type: 'Full Copy',
};
await request(app.getHttpServer())
.get('/forks')
.expect(200)
.expect({ fork: expectedForks});
});
@Public()
public async getAccountForks(@Req() req: Request) {
const { account } = req;
const fork = await this.service.getAccountForks(account);
return { fork, account };
}
public.decorator.ts
import { SetMetadata } from "@nestjs/common";
export const Public = () => SetMetadata( "isPublic", true );
我不知道这里发生了什么,当运行nest 时,它不会抱怨这一点
这是进口
import { Public } from '@app/utils/metadata';
所以我忘了从根utils index.ts导出元数据文件!
但Nest没有抱怨,在测试时,装饰师在我的Guard上发挥了作用!