From f2c1f605ae3faab0f3aae56c217fd73e58de1ba2 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 28 Jan 2025 16:17:20 -0800 Subject: [PATCH] add queries and execution methods --- test/resolvers/RouteResolverTests.test.ts | 82 ++++++++++++++++++++++- 1 file changed, 79 insertions(+), 3 deletions(-) diff --git a/test/resolvers/RouteResolverTests.test.ts b/test/resolvers/RouteResolverTests.test.ts index 5276121..8a21e7f 100644 --- a/test/resolvers/RouteResolverTests.test.ts +++ b/test/resolvers/RouteResolverTests.test.ts @@ -3,17 +3,66 @@ import { ServerContext } from "../../src/ServerContext"; import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository"; import { setUpTestServer } from "../testHelpers/apolloSetupHelpers"; 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", () => { let testServer: ApolloServer; - let repository: UnoptimizedInMemoryRepository + let repository: UnoptimizedInMemoryRepository; beforeEach(async () => { testServer = setUpTestServer(); 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", () => { + 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 () => { }); @@ -24,11 +73,38 @@ describe("RouteResolvers", () => { }); 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 () => { }); });