Files
project-inter-server/testHelpers/setupRouteAndOrderedStopsForShuttleRepository.ts

93 lines
2.4 KiB
TypeScript

import { IOrderedStop, IShuttle, IStop } 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: IStop = {
id: "st1",
name: "Stop 1",
systemId,
coordinates: { latitude: 10.0, longitude: 20.0 },
updatedTime: new Date(),
};
const stop2: IStop = {
id: "st2",
name: "Stop 2",
systemId,
coordinates: { latitude: 15.0, longitude: 25.0 },
updatedTime: new Date(),
};
const stop3: IStop = {
id: "st3",
name: "Stop 3",
systemId,
coordinates: { latitude: 20.0, longitude: 30.0 },
updatedTime: new Date(),
}
await shuttleRepository.addOrUpdateStop(stop1);
await shuttleRepository.addOrUpdateStop(stop2);
await shuttleRepository.addOrUpdateStop(stop3);
const orderedStop1: IOrderedStop = {
routeId: route.id,
stopId: stop1.id,
position: 1,
systemId,
updatedTime: new Date(),
};
const orderedStop2: IOrderedStop = {
routeId: route.id,
stopId: stop2.id,
position: 2,
systemId,
updatedTime: new Date(),
};
const orderedStop3: IOrderedStop = {
routeId: route.id,
stopId: stop3.id,
position: 3,
systemId,
updatedTime: new Date(),
}
orderedStop1.nextStop = orderedStop2;
orderedStop1.previousStop = orderedStop3;
orderedStop2.nextStop = orderedStop3;
orderedStop2.previousStop = orderedStop1;
orderedStop3.nextStop = orderedStop1;
orderedStop3.previousStop = orderedStop2;
await shuttleRepository.addOrUpdateOrderedStop(orderedStop1);
await shuttleRepository.addOrUpdateOrderedStop(orderedStop2);
await shuttleRepository.addOrUpdateOrderedStop(orderedStop3);
const sampleShuttleNotInRepository: IShuttle = {
id: "sh1",
name: "Shuttle 1",
routeId: route.id,
systemId: systemId,
coordinates: stop2.coordinates,
orientationInDegrees: 0,
updatedTime: new Date(),
};
return {
route,
systemId,
stop1,
stop2,
stop3,
sampleShuttleNotInRepository,
};
}