无法创建新的测试 Apollo Server

Can't create a new test Apollo Server

我想 test my resolvers with the executeOperation API,根据文档我需要创建一个测试服务器,这是我的。

export const getTestServer = async () => {
  const redis = new Redis({});

  const schema = await buildSchema({
    resolvers: [UserResolver],
    validate: false,
  });

  const server = new ApolloServer({
    schema,
    context: ({ req, res }): AppContext => {
      req = mocks.createRequest();
      req.session.userId = 1;

      return { req, res, redis };
    },

  return server;
};

在这里,我使用 typegraphql 构建我的架构,此代码适用于我的实际服务器,但在我的测试中它抛出以下错误:

    Some errors occurred while generating GraphQL schema:
      Type Query must define one or more fields.
    Please check the `details` property of the error to get more detailed info.

       9 |   const redis = new Redis({});
      10 |
    > 11 |   const schema = await buildSchema({
         |                  ^
      12 |     resolvers: [UserResolver],
      13 |     validate: false,
      14 |   });

      at Function.generateFromMetadata (node_modules/type-graphql/dist/schema/schema-generator.js:20:23)
      at buildSchema (node_modules/type-graphql/dist/utils/buildSchema.js:10:20)
      at getTestServer (src/__tests__/config.ts:11:18)
      at Object.<anonymous> (src/__tests__/resolvers/user.test.ts:19:20)

原来我的解析器中至少需要 1 个 @Query 装饰器,我只是添加了一个虚拟解析器,直到我需要一个实际的查询。对于测试,我切换到 supertest, check this example 如果您也有兴趣使用它进行测试