mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
use server context method for other resolver tests
This commit is contained in:
@@ -1,28 +1,18 @@
|
|||||||
import { beforeEach, describe, expect, it } from "@jest/globals";
|
import { describe, expect, it } from "@jest/globals";
|
||||||
import { ApolloServer } from "@apollo/server";
|
|
||||||
import { ServerContext } from "../../src/ServerContext";
|
|
||||||
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
|
|
||||||
import { generateMockSystems } from "../generators";
|
import { generateMockSystems } from "../generators";
|
||||||
import { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
|
import { setupTestServerContext } from "../testHelpers/apolloSetupHelpers";
|
||||||
import assert = require("node:assert");
|
import assert = require("node:assert");
|
||||||
|
|
||||||
// See Apollo documentation for integration test guide
|
// See Apollo documentation for integration test guide
|
||||||
// https://www.apollographql.com/docs/apollo-server/testing/testing
|
// https://www.apollographql.com/docs/apollo-server/testing/testing
|
||||||
|
|
||||||
describe("QueryResolvers", () => {
|
describe("QueryResolvers", () => {
|
||||||
let testServer: ApolloServer<ServerContext>;
|
const context = setupTestServerContext();
|
||||||
let repository: UnoptimizedInMemoryRepository;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
testServer = setUpTestServer();
|
|
||||||
|
|
||||||
repository = new UnoptimizedInMemoryRepository();
|
|
||||||
});
|
|
||||||
|
|
||||||
async function addMockSystems() {
|
async function addMockSystems() {
|
||||||
const systems = generateMockSystems();
|
const systems = generateMockSystems();
|
||||||
await Promise.all(systems.map(async (system) => {
|
await Promise.all(systems.map(async (system) => {
|
||||||
await repository.addOrUpdateSystem(system);
|
await context.repository.addOrUpdateSystem(system);
|
||||||
}));
|
}));
|
||||||
return systems;
|
return systems;
|
||||||
}
|
}
|
||||||
@@ -40,16 +30,17 @@ describe("QueryResolvers", () => {
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const response = await testServer.executeOperation({
|
const response = await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
|
|
||||||
expect(response.body.singleResult.data?.systems).toHaveLength(systems.length);
|
expect(response.body.singleResult.data?.systems).toHaveLength(systems.length);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -68,14 +59,14 @@ describe("QueryResolvers", () => {
|
|||||||
const systems = await addMockSystems();
|
const systems = await addMockSystems();
|
||||||
const systemToGet = systems[1];
|
const systemToGet = systems[1];
|
||||||
|
|
||||||
const response = await testServer.executeOperation({
|
const response = await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
id: systemToGet.id,
|
id: systemToGet.id,
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -85,14 +76,14 @@ describe("QueryResolvers", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("returns null if there is no system", async () => {
|
it("returns null if there is no system", async () => {
|
||||||
const response = await testServer.executeOperation({
|
const response = await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
id: "nonexistent-id",
|
id: "nonexistent-id",
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
import { beforeEach, describe, expect, it } from "@jest/globals";
|
import { beforeEach, describe, expect, it } from "@jest/globals";
|
||||||
import { ServerContext } from "../../src/ServerContext";
|
import { setupTestServerContext } from "../testHelpers/apolloSetupHelpers";
|
||||||
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
|
|
||||||
import { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
|
|
||||||
import { ApolloServer } from "@apollo/server";
|
|
||||||
import {
|
import {
|
||||||
addMockRouteToRepository,
|
addMockRouteToRepository,
|
||||||
addMockStopToRepository,
|
addMockStopToRepository,
|
||||||
@@ -13,24 +10,18 @@ import { IRoute, IStop, ISystem } from "../../src/entities/entities";
|
|||||||
import assert = require("node:assert");
|
import assert = require("node:assert");
|
||||||
|
|
||||||
describe("RouteResolvers", () => {
|
describe("RouteResolvers", () => {
|
||||||
let testServer: ApolloServer<ServerContext>;
|
const context = setupTestServerContext();
|
||||||
let repository: UnoptimizedInMemoryRepository;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
testServer = setUpTestServer();
|
|
||||||
repository = new UnoptimizedInMemoryRepository();
|
|
||||||
});
|
|
||||||
|
|
||||||
let mockSystem: ISystem;
|
let mockSystem: ISystem;
|
||||||
let mockRoute: IRoute;
|
let mockRoute: IRoute;
|
||||||
let mockStop: IStop;
|
let mockStop: IStop;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
mockSystem = await addMockSystemToRepository(repository);
|
mockSystem = await addMockSystemToRepository(context.repository);
|
||||||
const systemId = mockSystem.id;
|
const systemId = mockSystem.id;
|
||||||
|
|
||||||
mockRoute = await addMockRouteToRepository(repository, systemId);
|
mockRoute = await addMockRouteToRepository(context.repository, systemId);
|
||||||
mockStop = await addMockStopToRepository(repository, systemId);
|
mockStop = await addMockStopToRepository(context.repository, systemId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -49,7 +40,7 @@ describe("RouteResolvers", () => {
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -57,7 +48,7 @@ describe("RouteResolvers", () => {
|
|||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -67,13 +58,14 @@ describe("RouteResolvers", () => {
|
|||||||
const expectedShuttle = expectedShuttles[0];
|
const expectedShuttle = expectedShuttles[0];
|
||||||
expectedShuttle.systemId = mockSystem.id;
|
expectedShuttle.systemId = mockSystem.id;
|
||||||
expectedShuttle.routeId = mockRoute.id;
|
expectedShuttle.routeId = mockRoute.id;
|
||||||
await repository.addOrUpdateShuttle(expectedShuttle);
|
await context.repository.addOrUpdateShuttle(expectedShuttle);
|
||||||
|
|
||||||
const response = await getResponseForShuttlesQuery();
|
const response = await getResponseForShuttlesQuery();
|
||||||
|
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined()
|
expect(response.body.singleResult.errors).toBeUndefined()
|
||||||
const shuttle = (response.body.singleResult.data as any).system.route.shuttles[0];
|
const shuttle = (response.body.singleResult.data as
|
||||||
|
any).system.route.shuttles[0];
|
||||||
expect(shuttle.id).toEqual(expectedShuttle.id);
|
expect(shuttle.id).toEqual(expectedShuttle.id);
|
||||||
expect(shuttle.name).toEqual(expectedShuttle.name);
|
expect(shuttle.name).toEqual(expectedShuttle.name);
|
||||||
});
|
});
|
||||||
@@ -83,7 +75,8 @@ describe("RouteResolvers", () => {
|
|||||||
|
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined()
|
expect(response.body.singleResult.errors).toBeUndefined()
|
||||||
const shuttles = (response.body.singleResult.data as any).system.route.shuttles;
|
const shuttles = (response.body.singleResult.data as
|
||||||
|
any).system.route.shuttles;
|
||||||
expect(shuttles.length).toEqual(0);
|
expect(shuttles.length).toEqual(0);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -102,7 +95,7 @@ describe("RouteResolvers", () => {
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -111,7 +104,7 @@ describe("RouteResolvers", () => {
|
|||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -121,14 +114,15 @@ describe("RouteResolvers", () => {
|
|||||||
const expectedOrderedStop = orderedStops[0];
|
const expectedOrderedStop = orderedStops[0];
|
||||||
expectedOrderedStop.stopId = mockStop.id;
|
expectedOrderedStop.stopId = mockStop.id;
|
||||||
expectedOrderedStop.routeId = mockRoute.id;
|
expectedOrderedStop.routeId = mockRoute.id;
|
||||||
await repository.addOrUpdateOrderedStop(expectedOrderedStop);
|
await context.repository.addOrUpdateOrderedStop(expectedOrderedStop);
|
||||||
|
|
||||||
const response = await getResponseForOrderedStopQuery();
|
const response = await getResponseForOrderedStopQuery();
|
||||||
|
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
|
|
||||||
const orderedStop = (response.body.singleResult.data as any).system.route.orderedStop;
|
const orderedStop = (response.body.singleResult.data as
|
||||||
|
any).system.route.orderedStop;
|
||||||
expect(orderedStop.stopId).toEqual(expectedOrderedStop.stopId);
|
expect(orderedStop.stopId).toEqual(expectedOrderedStop.stopId);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -137,16 +131,17 @@ describe("RouteResolvers", () => {
|
|||||||
const expectedOrderedStop = orderedStops[0];
|
const expectedOrderedStop = orderedStops[0];
|
||||||
expectedOrderedStop.stopId = mockStop.id;
|
expectedOrderedStop.stopId = mockStop.id;
|
||||||
expectedOrderedStop.routeId = mockRoute.id;
|
expectedOrderedStop.routeId = mockRoute.id;
|
||||||
await repository.addOrUpdateOrderedStop(expectedOrderedStop);
|
await context.repository.addOrUpdateOrderedStop(expectedOrderedStop);
|
||||||
|
|
||||||
await repository.removeStopIfExists(mockStop.id);
|
await context.repository.removeStopIfExists(mockStop.id);
|
||||||
|
|
||||||
const response = await getResponseForOrderedStopQuery();
|
const response = await getResponseForOrderedStopQuery();
|
||||||
|
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
|
|
||||||
const orderedStop = (response.body.singleResult.data as any).system.route.orderedStop;
|
const orderedStop = (response.body.singleResult.data as
|
||||||
|
any).system.route.orderedStop;
|
||||||
expect(orderedStop).toBeNull();
|
expect(orderedStop).toBeNull();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,29 +1,21 @@
|
|||||||
import { beforeEach, describe, expect, it } from "@jest/globals";
|
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 { generateMockEtas, generateMockRoutes } from "../generators";
|
import { generateMockEtas, generateMockRoutes } from "../generators";
|
||||||
import { IShuttle, ISystem } from "../../src/entities/entities";
|
import { IShuttle, ISystem } from "../../src/entities/entities";
|
||||||
import { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
|
import { setupTestServerContext } from "../testHelpers/apolloSetupHelpers";
|
||||||
import { addMockShuttleToRepository, addMockSystemToRepository } from "../testHelpers/repositorySetupHelpers";
|
import { addMockShuttleToRepository, addMockSystemToRepository } from "../testHelpers/repositorySetupHelpers";
|
||||||
import assert = require("node:assert");
|
import assert = require("node:assert");
|
||||||
|
|
||||||
|
|
||||||
describe("ShuttleResolvers", () => {
|
describe("ShuttleResolvers", () => {
|
||||||
let testServer: ApolloServer<ServerContext>
|
const context = setupTestServerContext();
|
||||||
let repository: UnoptimizedInMemoryRepository;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
testServer = setUpTestServer();
|
|
||||||
repository = new UnoptimizedInMemoryRepository();
|
|
||||||
});
|
|
||||||
|
|
||||||
let mockSystem: ISystem;
|
let mockSystem: ISystem;
|
||||||
let mockShuttle: IShuttle;
|
let mockShuttle: IShuttle;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
mockSystem = await addMockSystemToRepository(repository);
|
mockSystem = await addMockSystemToRepository(context.repository);
|
||||||
mockShuttle = await addMockShuttleToRepository(repository, mockSystem.id);
|
mockShuttle = await addMockShuttleToRepository(context.repository,
|
||||||
|
mockSystem.id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -31,7 +23,7 @@ describe("ShuttleResolvers", () => {
|
|||||||
const etas = generateMockEtas();
|
const etas = generateMockEtas();
|
||||||
await Promise.all(etas.map(async (eta) => {
|
await Promise.all(etas.map(async (eta) => {
|
||||||
eta.shuttleId = shuttleId;
|
eta.shuttleId = shuttleId;
|
||||||
await repository.addOrUpdateEta(eta);
|
await context.repository.addOrUpdateEta(eta);
|
||||||
}));
|
}));
|
||||||
return etas;
|
return etas;
|
||||||
}
|
}
|
||||||
@@ -55,7 +47,7 @@ describe("ShuttleResolvers", () => {
|
|||||||
const mockEta = etas[1];
|
const mockEta = etas[1];
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
const response = await testServer.executeOperation({
|
const response = await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -64,18 +56,19 @@ describe("ShuttleResolvers", () => {
|
|||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
expect((response.body.singleResult.data as any).system.shuttle.eta.secondsRemaining).toEqual(mockEta.secondsRemaining);
|
expect((response.body.singleResult.data as
|
||||||
|
any).system.shuttle.eta.secondsRemaining).toEqual(mockEta.secondsRemaining);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("returns null if it doesn't exist", async () => {
|
it("returns null if it doesn't exist", async () => {
|
||||||
const response = await testServer.executeOperation({
|
const response = await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -84,14 +77,15 @@ describe("ShuttleResolvers", () => {
|
|||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
expect((response.body.singleResult.data as any).system.shuttle.eta).toBeNull();
|
expect((response.body.singleResult.data as
|
||||||
|
any).system.shuttle.eta).toBeNull();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -112,7 +106,7 @@ describe("ShuttleResolvers", () => {
|
|||||||
it("returns associated ETAs if they exist for the shuttle", async () => {
|
it("returns associated ETAs if they exist for the shuttle", async () => {
|
||||||
const etas = await addMockEtas(mockShuttle.id);
|
const etas = await addMockEtas(mockShuttle.id);
|
||||||
|
|
||||||
const response = await testServer.executeOperation({
|
const response = await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -120,17 +114,18 @@ describe("ShuttleResolvers", () => {
|
|||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
expect((response.body.singleResult.data as any).system.shuttle.etas).toHaveLength(etas.length);
|
expect((response.body.singleResult.data as
|
||||||
|
any).system.shuttle.etas).toHaveLength(etas.length);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("returns empty array if no ETAs exist", async () => {
|
it("returns empty array if no ETAs exist", async () => {
|
||||||
const response = await testServer.executeOperation({
|
const response = await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -138,17 +133,17 @@ describe("ShuttleResolvers", () => {
|
|||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
assert(response.body.kind === "single");
|
assert(response.body.kind === "single");
|
||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
expect((response.body.singleResult.data as any).system.shuttle.etas).toHaveLength(0);
|
expect((response.body.singleResult.data as
|
||||||
|
any).system.shuttle.etas).toHaveLength(0);
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("route", () => {
|
describe("route", () => {
|
||||||
const query = `
|
const query = `
|
||||||
query GetShuttleRoute($systemId: ID!, $shuttleId: ID!) {
|
query GetShuttleRoute($systemId: ID!, $shuttleId: ID!) {
|
||||||
@@ -169,7 +164,7 @@ describe("ShuttleResolvers", () => {
|
|||||||
`
|
`
|
||||||
|
|
||||||
async function getResponseForQuery() {
|
async function getResponseForQuery() {
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -177,14 +172,14 @@ describe("ShuttleResolvers", () => {
|
|||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
it("returns the route if it exists", async () => {
|
it("returns the route if it exists", async () => {
|
||||||
const mockRoute = generateMockRoutes()[0];
|
const mockRoute = generateMockRoutes()[0];
|
||||||
await repository.addOrUpdateRoute(mockRoute);
|
await context.repository.addOrUpdateRoute(mockRoute);
|
||||||
|
|
||||||
const response = await getResponseForQuery();
|
const response = await getResponseForQuery();
|
||||||
|
|
||||||
@@ -200,5 +195,6 @@ describe("ShuttleResolvers", () => {
|
|||||||
expect(response.body.singleResult.errors).toBeUndefined();
|
expect(response.body.singleResult.errors).toBeUndefined();
|
||||||
expect((response.body.singleResult.data as any).system.shuttle.route).toBeNull();
|
expect((response.body.singleResult.data as any).system.shuttle.route).toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -1,32 +1,23 @@
|
|||||||
import { beforeEach, describe, expect, it } from "@jest/globals";
|
import { beforeEach, describe, expect, it } from "@jest/globals";
|
||||||
import { ApolloServer } from "@apollo/server";
|
import { setupTestServerContext } from "../testHelpers/apolloSetupHelpers";
|
||||||
import { ServerContext } from "../../src/ServerContext";
|
|
||||||
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
|
|
||||||
import { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
|
|
||||||
import { generateMockEtas, generateMockOrderedStops } from "../generators";
|
import { generateMockEtas, generateMockOrderedStops } from "../generators";
|
||||||
import { IStop, ISystem } from "../../src/entities/entities";
|
import { IStop, ISystem } from "../../src/entities/entities";
|
||||||
import { addMockStopToRepository, addMockSystemToRepository } from "../testHelpers/repositorySetupHelpers";
|
import { addMockStopToRepository, addMockSystemToRepository } from "../testHelpers/repositorySetupHelpers";
|
||||||
import assert = require("node:assert");
|
import assert = require("node:assert");
|
||||||
|
|
||||||
describe("StopResolvers", () => {
|
describe("StopResolvers", () => {
|
||||||
let testServer: ApolloServer<ServerContext>;
|
const context = setupTestServerContext();
|
||||||
let repository: UnoptimizedInMemoryRepository;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
testServer = setUpTestServer();
|
|
||||||
repository = new UnoptimizedInMemoryRepository();
|
|
||||||
});
|
|
||||||
|
|
||||||
let mockStop: IStop;
|
let mockStop: IStop;
|
||||||
let mockSystem: ISystem;
|
let mockSystem: ISystem;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
mockSystem = await addMockSystemToRepository(repository);
|
mockSystem = await addMockSystemToRepository(context.repository);
|
||||||
mockStop = await addMockStopToRepository(repository, mockSystem.id);
|
mockStop = await addMockStopToRepository(context.repository, mockSystem.id);
|
||||||
})
|
})
|
||||||
|
|
||||||
async function getResponseForQuery(query: string) {
|
async function getResponseForQuery(query: string) {
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -34,7 +25,7 @@ describe("StopResolvers", () => {
|
|||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -59,7 +50,7 @@ describe("StopResolvers", () => {
|
|||||||
mockOrderedStops = mockOrderedStops.filter((orderedStop) => orderedStop.stopId === mockOrderedStops[0].stopId);
|
mockOrderedStops = mockOrderedStops.filter((orderedStop) => orderedStop.stopId === mockOrderedStops[0].stopId);
|
||||||
await Promise.all(mockOrderedStops.map(async orderedStop => {
|
await Promise.all(mockOrderedStops.map(async orderedStop => {
|
||||||
orderedStop.stopId = mockStop.id;
|
orderedStop.stopId = mockStop.id;
|
||||||
await repository.addOrUpdateOrderedStop(orderedStop);
|
await context.repository.addOrUpdateOrderedStop(orderedStop);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const response = await getResponseForQuery(query);
|
const response = await getResponseForQuery(query);
|
||||||
@@ -96,7 +87,7 @@ describe("StopResolvers", () => {
|
|||||||
mockEtas = mockEtas.filter((eta) => eta.stopId === mockEtas[0].stopId);
|
mockEtas = mockEtas.filter((eta) => eta.stopId === mockEtas[0].stopId);
|
||||||
await Promise.all(mockEtas.map(async eta => {
|
await Promise.all(mockEtas.map(async eta => {
|
||||||
eta.stopId = mockStop.id;
|
eta.stopId = mockStop.id;
|
||||||
await repository.addOrUpdateEta(eta);
|
await context.repository.addOrUpdateEta(eta);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const response = await getResponseForQuery(query);
|
const response = await getResponseForQuery(query);
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
import { beforeEach, describe, expect, it } from "@jest/globals";
|
import { beforeEach, describe, expect, it } from "@jest/globals";
|
||||||
import { ApolloServer } from "@apollo/server";
|
import { setupTestServerContext } from "../testHelpers/apolloSetupHelpers";
|
||||||
import { ServerContext } from "../../src/ServerContext";
|
|
||||||
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
|
|
||||||
import { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
|
|
||||||
import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../generators";
|
import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../generators";
|
||||||
import {
|
import {
|
||||||
addMockRouteToRepository,
|
addMockRouteToRepository,
|
||||||
@@ -14,30 +11,24 @@ import { ISystem } from "../../src/entities/entities";
|
|||||||
import assert = require("node:assert");
|
import assert = require("node:assert");
|
||||||
|
|
||||||
describe("SystemResolvers", () => {
|
describe("SystemResolvers", () => {
|
||||||
let testServer: ApolloServer<ServerContext>;
|
const context = setupTestServerContext();
|
||||||
let repository: UnoptimizedInMemoryRepository;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
testServer = setUpTestServer();
|
|
||||||
repository = new UnoptimizedInMemoryRepository();
|
|
||||||
});
|
|
||||||
|
|
||||||
let mockSystem: ISystem;
|
let mockSystem: ISystem;
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
mockSystem = await addMockSystemToRepository(repository);
|
mockSystem = await addMockSystemToRepository(context.repository);
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: Consolidate these into one single method taking an object
|
// TODO: Consolidate these into one single method taking an object
|
||||||
async function getResponseFromQueryNeedingSystemId(query: string) {
|
async function getResponseFromQueryNeedingSystemId(query: string) {
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository
|
repository: context.repository
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -58,7 +49,7 @@ describe("SystemResolvers", () => {
|
|||||||
const expectedRoutes = generateMockRoutes();
|
const expectedRoutes = generateMockRoutes();
|
||||||
await Promise.all(expectedRoutes.map(async (route) => {
|
await Promise.all(expectedRoutes.map(async (route) => {
|
||||||
route.systemId = mockSystem.id;
|
route.systemId = mockSystem.id;
|
||||||
await repository.addOrUpdateRoute(route);
|
await context.repository.addOrUpdateRoute(route);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const response = await getResponseFromQueryNeedingSystemId(query);
|
const response = await getResponseFromQueryNeedingSystemId(query);
|
||||||
@@ -86,7 +77,7 @@ describe("SystemResolvers", () => {
|
|||||||
const expectedStops = generateMockStops();
|
const expectedStops = generateMockStops();
|
||||||
await Promise.all(expectedStops.map(async (stop) => {
|
await Promise.all(expectedStops.map(async (stop) => {
|
||||||
stop.systemId = mockSystem.id;
|
stop.systemId = mockSystem.id;
|
||||||
await repository.addOrUpdateStop(stop);
|
await context.repository.addOrUpdateStop(stop);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const response = await getResponseFromQueryNeedingSystemId(query);
|
const response = await getResponseFromQueryNeedingSystemId(query);
|
||||||
@@ -111,7 +102,7 @@ describe("SystemResolvers", () => {
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -119,13 +110,13 @@ describe("SystemResolvers", () => {
|
|||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
it("gets the stop with the correct id", async () => {
|
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);
|
const response = await getResponseForStopQuery(mockStop.id);
|
||||||
|
|
||||||
@@ -141,9 +132,9 @@ describe("SystemResolvers", () => {
|
|||||||
...mockSystem,
|
...mockSystem,
|
||||||
id: "2",
|
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);
|
const response = await getResponseForStopQuery(mockStop.id);
|
||||||
|
|
||||||
@@ -178,7 +169,7 @@ describe("SystemResolvers", () => {
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -186,13 +177,13 @@ describe("SystemResolvers", () => {
|
|||||||
},
|
},
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
it("gets the route with the correct id", async () => {
|
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);
|
const response = await getResponseForRouteQuery(mockRoute.id);
|
||||||
|
|
||||||
@@ -209,9 +200,9 @@ describe("SystemResolvers", () => {
|
|||||||
...mockSystem,
|
...mockSystem,
|
||||||
id: "2",
|
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);
|
const response = await getResponseForRouteQuery(mockRoute.id);
|
||||||
|
|
||||||
@@ -246,7 +237,7 @@ describe("SystemResolvers", () => {
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
return await testServer.executeOperation({
|
return await context.testServer.executeOperation({
|
||||||
query,
|
query,
|
||||||
variables: {
|
variables: {
|
||||||
systemId: mockSystem.id,
|
systemId: mockSystem.id,
|
||||||
@@ -254,13 +245,13 @@ describe("SystemResolvers", () => {
|
|||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
contextValue: {
|
contextValue: {
|
||||||
repository,
|
repository: context.repository,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
it("gets the shuttle with the correct id", async () => {
|
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);
|
const response = await getResponseForShuttleQuery(mockShuttle.id);
|
||||||
|
|
||||||
@@ -276,9 +267,9 @@ describe("SystemResolvers", () => {
|
|||||||
...mockSystem,
|
...mockSystem,
|
||||||
id: "2",
|
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);
|
const response = await getResponseForShuttleQuery(mockShuttle.id);
|
||||||
|
|
||||||
@@ -316,7 +307,7 @@ describe("SystemResolvers", () => {
|
|||||||
const expectedShuttles = generateMockShuttles();
|
const expectedShuttles = generateMockShuttles();
|
||||||
await Promise.all(expectedShuttles.map(async (shuttle) => {
|
await Promise.all(expectedShuttles.map(async (shuttle) => {
|
||||||
shuttle.systemId = mockSystem.id;
|
shuttle.systemId = mockSystem.id;
|
||||||
await repository.addOrUpdateShuttle(shuttle);
|
await context.repository.addOrUpdateShuttle(shuttle);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const response = await getResponseFromQueryNeedingSystemId(query);
|
const response = await getResponseFromQueryNeedingSystemId(query);
|
||||||
|
|||||||
Reference in New Issue
Block a user