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,8 +1,5 @@
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 { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
import { setupTestServerContext } from "../testHelpers/apolloSetupHelpers";
import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../generators";
import {
addMockRouteToRepository,
@@ -14,30 +11,24 @@ import { ISystem } from "../../src/entities/entities";
import assert = require("node:assert");
describe("SystemResolvers", () => {
let testServer: ApolloServer<ServerContext>;
let repository: UnoptimizedInMemoryRepository;
beforeEach(async () => {
testServer = setUpTestServer();
repository = new UnoptimizedInMemoryRepository();
});
const context = setupTestServerContext();
let mockSystem: ISystem;
beforeEach(async () => {
mockSystem = await addMockSystemToRepository(repository);
mockSystem = await addMockSystemToRepository(context.repository);
});
// TODO: Consolidate these into one single method taking an object
async function getResponseFromQueryNeedingSystemId(query: string) {
return await testServer.executeOperation({
return await context.testServer.executeOperation({
query,
variables: {
systemId: mockSystem.id,
},
}, {
contextValue: {
repository
repository: context.repository
},
});
}
@@ -58,7 +49,7 @@ describe("SystemResolvers", () => {
const expectedRoutes = generateMockRoutes();
await Promise.all(expectedRoutes.map(async (route) => {
route.systemId = mockSystem.id;
await repository.addOrUpdateRoute(route);
await context.repository.addOrUpdateRoute(route);
}));
const response = await getResponseFromQueryNeedingSystemId(query);
@@ -86,7 +77,7 @@ describe("SystemResolvers", () => {
const expectedStops = generateMockStops();
await Promise.all(expectedStops.map(async (stop) => {
stop.systemId = mockSystem.id;
await repository.addOrUpdateStop(stop);
await context.repository.addOrUpdateStop(stop);
}));
const response = await getResponseFromQueryNeedingSystemId(query);
@@ -111,7 +102,7 @@ describe("SystemResolvers", () => {
}
`;
return await testServer.executeOperation({
return await context.testServer.executeOperation({
query,
variables: {
systemId: mockSystem.id,
@@ -119,13 +110,13 @@ describe("SystemResolvers", () => {
},
}, {
contextValue: {
repository,
repository: context.repository,
}
});
}
it("gets the stop with the correct id", async () => {
const mockStop = await addMockStopToRepository(repository, mockSystem.id);
const mockStop = await addMockStopToRepository(context.repository, mockSystem.id);
const response = await getResponseForStopQuery(mockStop.id);
@@ -141,9 +132,9 @@ describe("SystemResolvers", () => {
...mockSystem,
id: "2",
}
await repository.addOrUpdateSystem(updatedSystem);
await context.repository.addOrUpdateSystem(updatedSystem);
const mockStop = await addMockStopToRepository(repository, updatedSystem.id);
const mockStop = await addMockStopToRepository(context.repository, updatedSystem.id);
const response = await getResponseForStopQuery(mockStop.id);
@@ -178,7 +169,7 @@ describe("SystemResolvers", () => {
}
`;
return await testServer.executeOperation({
return await context.testServer.executeOperation({
query,
variables: {
systemId: mockSystem.id,
@@ -186,13 +177,13 @@ describe("SystemResolvers", () => {
},
}, {
contextValue: {
repository,
repository: context.repository,
}
});
}
it("gets the route with the correct id", async () => {
const mockRoute = await addMockRouteToRepository(repository, mockSystem.id);
const mockRoute = await addMockRouteToRepository(context.repository, mockSystem.id);
const response = await getResponseForRouteQuery(mockRoute.id);
@@ -209,9 +200,9 @@ describe("SystemResolvers", () => {
...mockSystem,
id: "2",
}
await repository.addOrUpdateSystem(updatedSystem);
await context.repository.addOrUpdateSystem(updatedSystem);
const mockRoute = await addMockRouteToRepository(repository, updatedSystem.id);
const mockRoute = await addMockRouteToRepository(context.repository, updatedSystem.id);
const response = await getResponseForRouteQuery(mockRoute.id);
@@ -246,7 +237,7 @@ describe("SystemResolvers", () => {
}
`;
return await testServer.executeOperation({
return await context.testServer.executeOperation({
query,
variables: {
systemId: mockSystem.id,
@@ -254,13 +245,13 @@ describe("SystemResolvers", () => {
}
}, {
contextValue: {
repository,
repository: context.repository,
}
});
}
it("gets the shuttle with the correct id", async () => {
const mockShuttle = await addMockShuttleToRepository(repository, mockSystem.id);
const mockShuttle = await addMockShuttleToRepository(context.repository, mockSystem.id);
const response = await getResponseForShuttleQuery(mockShuttle.id);
@@ -276,9 +267,9 @@ describe("SystemResolvers", () => {
...mockSystem,
id: "2",
}
await repository.addOrUpdateSystem(updatedSystem);
await context.repository.addOrUpdateSystem(updatedSystem);
const mockShuttle = await addMockShuttleToRepository(repository, updatedSystem.id);
const mockShuttle = await addMockShuttleToRepository(context.repository, updatedSystem.id);
const response = await getResponseForShuttleQuery(mockShuttle.id);
@@ -316,7 +307,7 @@ describe("SystemResolvers", () => {
const expectedShuttles = generateMockShuttles();
await Promise.all(expectedShuttles.map(async (shuttle) => {
shuttle.systemId = mockSystem.id;
await repository.addOrUpdateShuttle(shuttle);
await context.repository.addOrUpdateShuttle(shuttle);
}));
const response = await getResponseFromQueryNeedingSystemId(query);