mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-19 08:50:29 +00:00
Extract setupRouteAndOrderedStops to a test helper
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
|||||||
generateMockStops,
|
generateMockStops,
|
||||||
} from "../../../../testHelpers/mockDataGenerators";
|
} from "../../../../testHelpers/mockDataGenerators";
|
||||||
import { RepositoryHolder } from "../../../../testHelpers/RepositoryHolder";
|
import { RepositoryHolder } from "../../../../testHelpers/RepositoryHolder";
|
||||||
|
import { setupRouteAndOrderedStopsForShuttleRepository } from "../../../../testHelpers/setupRouteAndOrderedStopsForShuttleRepository";
|
||||||
|
|
||||||
class UnoptimizedInMemoryShuttleRepositoryHolder implements RepositoryHolder<ShuttleGetterSetterRepository> {
|
class UnoptimizedInMemoryShuttleRepositoryHolder implements RepositoryHolder<ShuttleGetterSetterRepository> {
|
||||||
name = 'UnoptimizedInMemoryShuttleRepository';
|
name = 'UnoptimizedInMemoryShuttleRepository';
|
||||||
@@ -609,61 +610,7 @@ describe.each(repositoryImplementations)('$name', (holder) => {
|
|||||||
|
|
||||||
// Helper function for setting up routes and ordered stops for shuttle tracking tests
|
// Helper function for setting up routes and ordered stops for shuttle tracking tests
|
||||||
async function setupRouteAndOrderedStops() {
|
async function setupRouteAndOrderedStops() {
|
||||||
const systemId = "sys1";
|
return await setupRouteAndOrderedStopsForShuttleRepository(repository);
|
||||||
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,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("addOrUpdateShuttle with ETA calculations", () => {
|
describe("addOrUpdateShuttle with ETA calculations", () => {
|
||||||
|
|||||||
62
testHelpers/setupRouteAndOrderedStopsForShuttleRepository.ts
Normal file
62
testHelpers/setupRouteAndOrderedStopsForShuttleRepository.ts
Normal file
@@ -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,
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user