Схема Graphql-модулей недопустима при использовании jest - PullRequest
1 голос
/ 04 апреля 2020

Я настраиваю новый проект с использованием graphql-модулей и пытаюсь запустить некоторые тесты на моем первом модуле.

Мой модуль довольно прост

import { GraphQLModule } from "@graphql-modules/core";
import * as typeDefs from "./user.schema.graphql";
import { UserResolvers } from "./user.resolvers";
import { UserProvider } from "./user.provider";

export const UserModule = new GraphQLModule({
  typeDefs,
  resolvers: UserResolvers,
  providers: [UserProvider],
});

И моя схема очень просто

type Mutation {
    register(email: String!, password: String!): User
}

type Query {
    user(id: ID!): User
}

type User {
    id: ID
    email: String!
    password: String!
}

Все отлично работает, когда я запускаю локальный экземпляр с помощью ts-node, однако, когда я пытаюсь запустить эти тесты

import { execute } from "graphql";
import { gql } from "apollo-server";
import { App } from "./app";

describe("UserModule", () => {
  it("FieldResolver of Query: userById", async () => {
    const { schema } = App;

    const result = await execute({
      schema,
      document: gql`
        query {
          user(id: "ANOTHERID") {
            id
            email
          }
        }
      `,
    });
    expect(result.errors).toBeFalsy();
    expect(result.data["userById"]["id"]).toBe("ANOTHERID");
    expect(result.data["userById"]["email"]).toBe("email@email.com");
  });
});

Внезапно моя схема недопустима, что Тест прямо из документации по GraphQL-модулям, и я обязательно включил пару дополнительных модулей, которые заставляют мое приложение работать правильно.

Я получаю ошибку:

          - #Module #D:\projects\hello-world\server\src\modules\app.ts_6292583185464227 doesn't have a valid schema!
          -- Cannot read property 'prev' of undefined

          Possible solutions:
          - Check syntax errors in typeDefs
          - Make sure you import correct dependencies

       5 | describe("UserModule", () => {
       6 |   it("FieldResolver of Query: userById", async () => {
    >  7 |     const { schema } = App;
         |             ^

Я потратил немного времени на удаление фрагментов, но ничто из того, что я делаю, похоже, не помогает, и все результаты Google не имеют значения.

...