diff --git a/test/resolvers/SystemResolverTests.test.ts b/test/resolvers/SystemResolverTests.test.ts index 6868c08..8eab06a 100644 --- a/test/resolvers/SystemResolverTests.test.ts +++ b/test/resolvers/SystemResolverTests.test.ts @@ -370,12 +370,66 @@ describe("SystemResolvers", () => { }); describe("parkingStructure", () => { - it("returns the correct parking structure given the id", async () => { + async function getResponseForParkingStructureQuery(parkingStructureId: string) { + const query = ` + query GetParkingStructureBySystem($systemId: ID!, $parkingStructureId: ID!) { + system(id: $systemId) { + parkingStructure(id: $parkingStructureId) { + name + id + capacity + spotsAvailable + coordinates { + latitude + longitude + } + address + } + } + } + `; + return await holder.testServer.executeOperation({ + query, + variables: { + systemId: mockSystem.id, + parkingStructureId, + } + }, { + contextValue: context + + }); + } + + it("returns the correct parking structure given the id", async () => { + const generatedParkingStructures = generateParkingStructures(); + await Promise.all(generatedParkingStructures.map(async (structure) => { + await context.systems[0].parkingRepository?.addOrUpdateParkingStructure(structure); + })); + const expectedParkingStructure = generatedParkingStructures[1]; + + const response = await getResponseForParkingStructureQuery(expectedParkingStructure.id); + + assert(response.body.kind === "single"); + expect(response.body.singleResult.errors).toBeUndefined(); + const parkingStructure = (response.body.singleResult.data as any).system.parkingStructure; + expect(parkingStructure).toEqual(expectedParkingStructure); }); it("returns null if there is no matching parking structure", async () => { + const generatedParkingStructures = generateParkingStructures(); + await Promise.all(generatedParkingStructures.map(async (structure) => { + await context.systems[0].parkingRepository?.addOrUpdateParkingStructure(structure); + })); + const nonexistentId = generatedParkingStructures[0].id + "12345"; + + const response = await getResponseForParkingStructureQuery(nonexistentId); + + assert(response.body.kind === "single"); + expect(response.body.singleResult.errors).toBeUndefined(); + const parkingStructure = (response.body.singleResult.data as any).system.parkingStructure; + expect(parkingStructure).toBeNull(); }); }); });