From 2b3d292b4d56dbd57f80b79598fb4d85908e2358 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 28 Jan 2025 15:52:23 -0800 Subject: [PATCH] move response fetch to common method and use single expectedEta object across both tests --- test/resolvers/EtaResolverTests.test.ts | 58 +++++++++++++++---------- 1 file changed, 35 insertions(+), 23 deletions(-) diff --git a/test/resolvers/EtaResolverTests.test.ts b/test/resolvers/EtaResolverTests.test.ts index daf5fef..a90814e 100644 --- a/test/resolvers/EtaResolverTests.test.ts +++ b/test/resolvers/EtaResolverTests.test.ts @@ -3,7 +3,7 @@ import { ApolloServer } from "@apollo/server"; import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository"; import { setUpTestServer } from "../testHelpers/apolloSetupHelpers"; import { ServerContext } from "../../src/ServerContext"; -import { IShuttle, ISystem } from "../../src/entities/entities"; +import { IEta, IShuttle, IStop, ISystem } from "../../src/entities/entities"; import { addMockSystemToRepository } from "../testHelpers/repositorySetupHelpers"; import { generateMockEtas, generateMockShuttles, generateMockStops } from "../generators"; import assert = require("node:assert"); @@ -19,6 +19,8 @@ describe("EtaResolvers", () => { let mockSystem: ISystem; let mockShuttle: IShuttle; + let mockStop: IStop; + let expectedEta: IEta; beforeEach(async () => { mockSystem = await addMockSystemToRepository(repository); @@ -27,8 +29,34 @@ describe("EtaResolvers", () => { mockShuttle = mockShuttles[0]; mockShuttle.systemId = mockSystem.id; await repository.addOrUpdateShuttle(mockShuttle); + + const mockStops = generateMockStops(); + mockStop = mockStops[0]; + mockStop.systemId = mockSystem.id; + await repository.addOrUpdateStop(mockStop); + + const etas = generateMockEtas(); + expectedEta = etas[0]; + expectedEta.stopId = mockStop.id; + expectedEta.shuttleId = mockShuttle.id; + await repository.addOrUpdateEta(expectedEta); }); + async function getResponseForEtaQuery(query: string) { + const response = await testServer.executeOperation({ + query, + variables: { + systemId: mockSystem.id, + shuttleId: mockShuttle.id, + }, + }, { + contextValue: { + repository, + } + }); + return response; + } + describe("stop", () => { const query = ` query GetETAStop($systemId: ID!, $shuttleId: ID!) { @@ -45,28 +73,7 @@ describe("EtaResolvers", () => { `; it("returns the associated stop if it exists", async () => { - const stops = generateMockStops(); - const stop = stops[0]; - stop.systemId = mockSystem.id; - await repository.addOrUpdateStop(stop); - - const etas = generateMockEtas(); - const expectedEta = etas[0]; - expectedEta.stopId = stop.id; - expectedEta.shuttleId = mockShuttle.id; - await repository.addOrUpdateEta(expectedEta); - - const response = await testServer.executeOperation({ - query, - variables: { - systemId: mockSystem.id, - shuttleId: mockShuttle.id, - }, - }, { - contextValue: { - repository, - } - }); + const response = await getResponseForEtaQuery(query); assert(response.body.kind === "single"); expect(response.body.singleResult.errors).toBeUndefined(); @@ -91,7 +98,12 @@ describe("EtaResolvers", () => { `; it("returns the associated shuttle if it exists", async () => { + const response = await getResponseForEtaQuery(query); + assert(response.body.kind === "single"); + expect(response.body.singleResult.errors).toBeUndefined(); + const eta = (response.body.singleResult.data?.system as any).shuttle.etas[0]; + expect(eta.shuttle.id).toEqual(expectedEta.shuttleId); }); }); }); \ No newline at end of file