Схема Graphql-modules недействительна при использовании jest
Я настраиваю новый проект с использованием модулей 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-modules, и я обязательно включил пару дополнительных модулей, которые обеспечивают правильную работу моего приложения.
Я получаю следующую ошибку:
- #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 кажутся неуместными.