diff --git a/src/repositories/shuttle/__tests__/ShuttleRepositorySharedTests.test.ts b/src/repositories/shuttle/__tests__/ShuttleRepositorySharedTests.test.ts index a6f2c27..d9edec1 100644 --- a/src/repositories/shuttle/__tests__/ShuttleRepositorySharedTests.test.ts +++ b/src/repositories/shuttle/__tests__/ShuttleRepositorySharedTests.test.ts @@ -12,6 +12,7 @@ import { generateMockStops, } from "../../../../testHelpers/mockDataGenerators"; import { RepositoryHolder } from "../../../../testHelpers/RepositoryHolder"; +import { setupRouteAndOrderedStopsForShuttleRepository } from "../../../../testHelpers/setupRouteAndOrderedStopsForShuttleRepository"; class UnoptimizedInMemoryShuttleRepositoryHolder implements RepositoryHolder { name = 'UnoptimizedInMemoryShuttleRepository'; @@ -609,61 +610,7 @@ describe.each(repositoryImplementations)('$name', (holder) => { // Helper function for setting up routes and ordered stops for shuttle tracking tests async function setupRouteAndOrderedStops() { - const systemId = "sys1"; - const route = { - id: "r1", - name: "Route 1", - color: "red", - systemId: systemId, - polylineCoordinates: [], - updatedTime: new Date(), - }; - await repository.addOrUpdateRoute(route); - - const stop1 = { - id: "st1", - name: "Stop 1", - systemId: systemId, - coordinates: { latitude: 10.0, longitude: 20.0 }, - updatedTime: new Date(), - }; - const stop2 = { - id: "st2", - name: "Stop 2", - systemId: systemId, - coordinates: { latitude: 15.0, longitude: 25.0 }, - updatedTime: new Date(), - }; - await repository.addOrUpdateStop(stop1); - await repository.addOrUpdateStop(stop2); - - const orderedStop1: IOrderedStop = { - routeId: route.id, - stopId: stop1.id, - position: 1, - systemId: systemId, - updatedTime: new Date(), - }; - const orderedStop2: IOrderedStop = { - routeId: route.id, - stopId: stop2.id, - position: 2, - systemId: systemId, - updatedTime: new Date(), - }; - orderedStop1.nextStop = orderedStop2; - orderedStop1.previousStop = orderedStop2; - orderedStop2.nextStop = orderedStop1; - orderedStop2.previousStop = orderedStop1; - await repository.addOrUpdateOrderedStop(orderedStop1); - await repository.addOrUpdateOrderedStop(orderedStop2); - - return { - route, - systemId, - stop1, - stop2, - }; + return await setupRouteAndOrderedStopsForShuttleRepository(repository); } describe("addOrUpdateShuttle with ETA calculations", () => { diff --git a/testHelpers/setupRouteAndOrderedStopsForShuttleRepository.ts b/testHelpers/setupRouteAndOrderedStopsForShuttleRepository.ts new file mode 100644 index 0000000..a79f28a --- /dev/null +++ b/testHelpers/setupRouteAndOrderedStopsForShuttleRepository.ts @@ -0,0 +1,62 @@ +import { IOrderedStop } from "../src/entities/ShuttleRepositoryEntities"; +import { ShuttleGetterSetterRepository } from "../src/repositories/shuttle/ShuttleGetterSetterRepository"; + +export async function setupRouteAndOrderedStopsForShuttleRepository( + shuttleRepository: ShuttleGetterSetterRepository +) { + const systemId = "sys1"; + const route = { + id: "r1", + name: "Route 1", + color: "red", + systemId: systemId, + polylineCoordinates: [], + updatedTime: new Date(), + }; + await shuttleRepository.addOrUpdateRoute(route); + + const stop1 = { + id: "st1", + name: "Stop 1", + systemId: systemId, + coordinates: { latitude: 10.0, longitude: 20.0 }, + updatedTime: new Date(), + }; + const stop2 = { + id: "st2", + name: "Stop 2", + systemId: systemId, + coordinates: { latitude: 15.0, longitude: 25.0 }, + updatedTime: new Date(), + }; + await shuttleRepository.addOrUpdateStop(stop1); + await shuttleRepository.addOrUpdateStop(stop2); + + const orderedStop1: IOrderedStop = { + routeId: route.id, + stopId: stop1.id, + position: 1, + systemId: systemId, + updatedTime: new Date(), + }; + const orderedStop2: IOrderedStop = { + routeId: route.id, + stopId: stop2.id, + position: 2, + systemId: systemId, + updatedTime: new Date(), + }; + orderedStop1.nextStop = orderedStop2; + orderedStop1.previousStop = orderedStop2; + orderedStop2.nextStop = orderedStop1; + orderedStop2.previousStop = orderedStop1; + await shuttleRepository.addOrUpdateOrderedStop(orderedStop1); + await shuttleRepository.addOrUpdateOrderedStop(orderedStop2); + + return { + route, + systemId, + stop1, + stop2, + }; +}