Error: Apollo Server requires either an existing schema, modules or typeDefs

Error: Apollo Server requires either an existing schema, modules or typeDefs

我在一个使用 Apollo Server 的联合网关实现的 nodeJS 项目中有我想要测试的这个功能。

@Service()
export class Server {


    constructor();
    }

    async startAsync(): Promise<void> {
        await this.createApolloGateway();
    }

    private async createApolloGateway(): Promise<void> {

        const gateway = new ApolloGateway({
                serviceList: [{ name: 'products', url: 'https://products-service.dev/graphql' },
                { name: 'reviews', url: 'https://reviews-service.dev/graphql' }]});


        const {schema, executor} = await gateway.load();
        const server = new ApolloServer({schema, executor});

        return new Promise((resolve, _) => {
            server.listen(8080).then(({url}) => {
                resolve();
            });
        });
    }

}

但是当我测试这个函数时出现这个错误:

Error: Apollo Server requires either an existing schema, modules or typeDefs

我已经尝试在 jest 框架中模拟执行此操作的模式

 apolloGateway = createMockInstance(ApolloGateway);

 it('should start an http server', async () => {
        // Arrange

        const server = new Server(configurationService, loggerService);

        const schema = `
  type User {
    id: ID!
    name: String
    lists: [List]
  }

  type RootQuery {
    user(id: ID): User
  }
  schema {
    query: RootQuery
  }
`;

         apolloGateway.load = jest.fn().mockReturnValue(schema);




        // Act
        await server.startAsync();

        // Assert
        await expect(server).not.toBeNull;
    }, 30000);

但是我有同样的错误

将 apollo-server 更新为最低版本,并在创建 apollo 服务器时仅传递网关。

const server = new ApolloServer({
  gateway  
});