use server context method for other resolver tests

This commit is contained in:
2025-01-29 15:26:23 -08:00
parent 7586ebba04
commit 0344e7b99b
5 changed files with 91 additions and 127 deletions

View File

@@ -1,28 +1,18 @@
import { beforeEach, describe, expect, it } from "@jest/globals";
import { ApolloServer } from "@apollo/server";
import { ServerContext } from "../../src/ServerContext";
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
import { describe, expect, it } from "@jest/globals";
import { generateMockSystems } from "../generators";
import { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
import { setupTestServerContext } from "../testHelpers/apolloSetupHelpers";
import assert = require("node:assert");
// See Apollo documentation for integration test guide
// https://www.apollographql.com/docs/apollo-server/testing/testing
describe("QueryResolvers", () => {
let testServer: ApolloServer<ServerContext>;
let repository: UnoptimizedInMemoryRepository;
beforeEach(async () => {
testServer = setUpTestServer();
repository = new UnoptimizedInMemoryRepository();
});
const context = setupTestServerContext();
async function addMockSystems() {
const systems = generateMockSystems();
await Promise.all(systems.map(async (system) => {
await repository.addOrUpdateSystem(system);
await context.repository.addOrUpdateSystem(system);
}));
return systems;
}
@@ -40,16 +30,17 @@ describe("QueryResolvers", () => {
}
`;
const response = await testServer.executeOperation({
const response = await context.testServer.executeOperation({
query,
}, {
contextValue: {
repository,
repository: context.repository,
},
});
assert(response.body.kind === "single");
expect(response.body.singleResult.errors).toBeUndefined();
expect(response.body.singleResult.data?.systems).toHaveLength(systems.length);
});
});
@@ -68,14 +59,14 @@ describe("QueryResolvers", () => {
const systems = await addMockSystems();
const systemToGet = systems[1];
const response = await testServer.executeOperation({
const response = await context.testServer.executeOperation({
query,
variables: {
id: systemToGet.id,
}
}, {
contextValue: {
repository,
repository: context.repository,
}
});
@@ -85,14 +76,14 @@ describe("QueryResolvers", () => {
});
it("returns null if there is no system", async () => {
const response = await testServer.executeOperation({
const response = await context.testServer.executeOperation({
query,
variables: {
id: "nonexistent-id",
}
}, {
contextValue: {
repository,
repository: context.repository,
}
});
@@ -101,4 +92,4 @@ describe("QueryResolvers", () => {
expect(response.body.singleResult.data?.system).toBeNull();
});
});
});
});