add queries and execution methods

This commit is contained in:
2025-01-28 16:17:20 -08:00
parent b09228fe5d
commit f2c1f605ae

View File

@@ -3,17 +3,66 @@ import { ServerContext } from "../../src/ServerContext";
import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository"; import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository";
import { setUpTestServer } from "../testHelpers/apolloSetupHelpers"; import { setUpTestServer } from "../testHelpers/apolloSetupHelpers";
import { ApolloServer } from "@apollo/server"; import { ApolloServer } from "@apollo/server";
import { addMockSystemToRepository } from "../testHelpers/repositorySetupHelpers";
import { generateMockRoutes, generateMockStops } from "../generators";
import { IRoute, IStop, ISystem } from "../../src/entities/entities";
describe("RouteResolvers", () => { describe("RouteResolvers", () => {
let testServer: ApolloServer<ServerContext>; let testServer: ApolloServer<ServerContext>;
let repository: UnoptimizedInMemoryRepository let repository: UnoptimizedInMemoryRepository;
beforeEach(async () => { beforeEach(async () => {
testServer = setUpTestServer(); testServer = setUpTestServer();
repository = new UnoptimizedInMemoryRepository(); repository = new UnoptimizedInMemoryRepository();
}); });
let mockSystem: ISystem;
let mockRoute: IRoute;
let mockStop: IStop;
beforeEach(async () => {
mockSystem = await addMockSystemToRepository(repository);
const mockRoutes = generateMockRoutes();
mockRoute = mockRoutes[0];
mockRoute.systemId = mockSystem.id;
await repository.addOrUpdateRoute(mockRoute);
const mockStops = generateMockStops();
mockStop = mockStops[0];
mockStop.systemId = mockSystem.id;
await repository.addOrUpdateStop(mockStop);
});
describe("shuttles", () => { describe("shuttles", () => {
async function getResponseForShuttlesQuery() {
const query = `
query GetRouteShuttles($systemId: ID!, $routeId: ID!) {
system(id: $systemId) {
route(id: $routeId) {
shuttles {
id
name
}
}
}
}
`;
return await testServer.executeOperation({
query,
variables: {
systemId: mockSystem.id,
routeId: mockRoute.id,
},
}, {
contextValue: {
repository,
}
});
}
it("returns shuttle array if there are shuttles", async () => { it("returns shuttle array if there are shuttles", async () => {
}); });
@@ -24,11 +73,38 @@ describe("RouteResolvers", () => {
}); });
describe("orderedStop", () => { describe("orderedStop", () => {
it("returns ordered stop for stop ID if there is one", async () => { async function getResponseForOrderedStopQuery() {
const query = `
query GetRouteOrderedStop($systemId: ID!, $routeId: ID!) {
system(id: $systemId) {
route(id: $routeId) {
orderedStop(forStopId: $stopId) {
stopId
}
}
}
}
`;
return await testServer.executeOperation({
query,
variables: {
systemId: mockSystem.id,
routeId: mockRoute.id,
stopId: mockStop.id,
}
}, {
contextValue: {
repository,
}
});
}
it("returns ordered stop using provided data", async () => {
}); });
it("returns null if there is no stop", async () => { it("returns null if the stop doesn't exist", async () => {
}); });
}); });