由于使用了registerEnumType,因此无法进行测试

时间:2020-04-06 04:42:29

标签: jestjs typegraphql

我正在使用typegraphql,并使用resgiterEnumType注册DayOfWeek枚举类型。

以下是我的enum和registerEnumType函数,它们在一个文件中。

export enum DayOfWeek {
    SUNDAY,
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY
}

registerEnumType(DayOfWeek, {
    name: "DayOfWeekType", // this one is mandatory
});

我运行程序时效果很好。但是当我进行开玩笑的测试时,我收到如下消息

Looks like you've forgot to provide experimental metadata API polyfill.
  12 | }
  13 | 
> 14 | registerEnumType(DayOfWeek, {
     | ^
  15 |     name: "DayOfWeekType", // this one is mandatory
  16 | });
  17 | 

如果我将enum和registerEnumType放在同一文件中,则运行正常,测试失败。

并且如果我将枚举和registerEnumType分开,则找不到graphql DayOfWeek类型...。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

import { Test, TestingModule } from '@nestjs/testing';
import { GraphQLModule } from '@nestjs/graphql';

describe('your test suite', () => {
    beforeEach(async () => {
        const module: TestingModule = await Test.createTestingModule({
            imports: [
                GraphQLModule.forRoot({
                    ... 
                }),
            ],
        }).compile();

    });
});

您需要在规范中配置GraphQLModule

P / S:上面的代码段是假设您使用的是NestJS框架。

答案 1 :(得分:1)

您需要添加

import "reflect-metadata";

在文件顶部