From ea1150a98dc42c97c4f67d481e1b2673e67e11e6 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 16 Apr 2025 16:35:32 -0700 Subject: [PATCH] add test for getting parking structures associated with id --- test/resolvers/SystemResolverTests.test.ts | 37 +++++++++++++++++++-- test/testHelpers/apolloTestServerHelpers.ts | 3 -- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/test/resolvers/SystemResolverTests.test.ts b/test/resolvers/SystemResolverTests.test.ts index 870f2a7..873bf82 100644 --- a/test/resolvers/SystemResolverTests.test.ts +++ b/test/resolvers/SystemResolverTests.test.ts @@ -1,6 +1,11 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; -import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../testHelpers/mockDataGenerators"; +import { + generateMockRoutes, + generateMockShuttles, + generateMockStops, + generateParkingStructures +} from "../testHelpers/mockDataGenerators"; import { addMockRouteToRepository, addMockShuttleToRepository, @@ -310,8 +315,36 @@ describe("SystemResolvers", () => { }); describe("parkingStructures", () => { - it("gets parking structures associated with the system id", async () => { + const query = ` + query GetParkingStructuresBySystem($systemId: ID!) { + system(id: $systemId) { + parkingStructures { + name + id + capacity + spotsAvailable + coordinates { + latitude + longitude + } + address + } + } + } + ` + it("gets parking structures associated with the system id", async () => { + const expectedParkingStructures = generateParkingStructures(); + await Promise.all(expectedParkingStructures.map(async (structure) => { + await context.systems[0].parkingRepository?.addOrUpdateParkingStructure(structure); + })); + + const response = await getResponseFromQueryNeedingSystemId(query); + + assert(response.body.kind === "single"); + expect(response.body.singleResult.errors).toBeUndefined(); + const parkingStructures = (response.body.singleResult.data as any).parkingStructures; + expect(parkingStructures).toEqual(expectedParkingStructures); }); it("returns a blank array if there are no parking structures", async () => { diff --git a/test/testHelpers/apolloTestServerHelpers.ts b/test/testHelpers/apolloTestServerHelpers.ts index e774aa3..c367e3b 100644 --- a/test/testHelpers/apolloTestServerHelpers.ts +++ b/test/testHelpers/apolloTestServerHelpers.ts @@ -1,11 +1,8 @@ import { readFileSync } from "fs"; import { ApolloServer } from "@apollo/server"; import { MergedResolvers } from "../../src/MergedResolvers"; -import { UnoptimizedInMemoryShuttleRepository } from "../../src/repositories/UnoptimizedInMemoryShuttleRepository"; import { beforeEach } from "@jest/globals"; import { ServerContext } from "../../src/ServerContext"; -import { ETANotificationScheduler } from "../../src/notifications/schedulers/ETANotificationScheduler"; -import { InMemoryNotificationRepository } from "../../src/repositories/InMemoryNotificationRepository"; import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; import { ChapmanApiBasedParkingRepositoryLoader