From caf85a39ad897bd86a0b21fcb00d465997ee772a Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Tue, 28 Jan 2025 15:44:53 -0800 Subject: [PATCH] add test case for eta stop --- test/resolvers/EtaResolverTests.test.ts | 42 +++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/test/resolvers/EtaResolverTests.test.ts b/test/resolvers/EtaResolverTests.test.ts index 49aeb29..7986a87 100644 --- a/test/resolvers/EtaResolverTests.test.ts +++ b/test/resolvers/EtaResolverTests.test.ts @@ -1,10 +1,12 @@ -import { beforeEach, describe, it } from "@jest/globals"; +import { beforeEach, describe, expect, it } from "@jest/globals"; import { ApolloServer } from "@apollo/server"; import { UnoptimizedInMemoryRepository } from "../../src/repositories/UnoptimizedInMemoryRepository"; import { setUpTestServer } from "../testHelpers/apolloSetupHelpers"; import { ServerContext } from "../../src/ServerContext"; -import { ISystem } from "../../src/entities/entities"; +import { IShuttle, ISystem } from "../../src/entities/entities"; import { addMockSystemToRepository } from "../testHelpers/repositorySetupHelpers"; +import { generateMockEtas, generateMockShuttles, generateMockStops } from "../generators"; +import assert = require("node:assert"); describe("EtaResolvers", () => { let testServer: ApolloServer; @@ -16,10 +18,16 @@ describe("EtaResolvers", () => { }); let mockSystem: ISystem; + let mockShuttle: IShuttle; beforeEach(async () => { mockSystem = await addMockSystemToRepository(repository); - }) + + const mockShuttles = generateMockShuttles(); + mockShuttle = mockShuttles[0]; + mockShuttle.systemId = mockSystem.id; + await repository.addOrUpdateShuttle(mockShuttle); + }); describe("stop", () => { const query = ` @@ -37,7 +45,35 @@ describe("EtaResolvers", () => { `; it("returns the associated stop if it exists", async () => { + const stops = generateMockStops(); + const stop = stops[0]; + stop.systemId = mockSystem.id; + const etas = generateMockEtas(); + await Promise.all(etas.map(async (eta) => { + eta.stopId = stop.id; + await repository.addOrUpdateEta(eta); + })); + const expectedEta = etas[0]; + + await repository.addOrUpdateStop(stop); + + const response = await testServer.executeOperation({ + query, + variables: { + systemId: mockSystem.id, + shuttleId: mockShuttle.id, + }, + }, { + contextValue: { + repository, + } + }); + + 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.stop.id).toEqual(expectedEta.stopId); }); });