Update mock data arrangement of shuttle data test to match updated requirements

This commit is contained in:
2025-09-26 15:56:27 -07:00
parent 7ed780a459
commit 5ed15ee534

View File

@@ -5,7 +5,7 @@ import { fetchRouteDataSuccessfulResponse } from "../../../../testHelpers/jsonSn
import {
fetchStopAndPolylineDataSuccessfulResponse
} from "../../../../testHelpers/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse";
import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../../../testHelpers/mockDataGenerators";
import { generateMockRoutes, generateMockStops } from "../../../../testHelpers/mockDataGenerators";
import {
fetchShuttleDataSuccessfulResponse
} from "../../../../testHelpers/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse";
@@ -36,7 +36,7 @@ describe("ApiBasedShuttleRepositoryLoader", () => {
const spies = {
updateRouteDataForSystem: jest.spyOn(loader, "updateRouteDataForSystem"),
updateStopAndPolylineDataForRoutesInSystem: jest.spyOn(loader, "updateStopAndPolylineDataForRoutesInSystem"),
updateShuttleDataForSystem: jest.spyOn(loader, "updateShuttleDataForSystem"),
updateShuttleDataForSystem: jest.spyOn(loader, "updateShuttleDataForSystemBasedOnProximityToRoutes"),
updateEtaDataForExistingStopsForSystem: jest.spyOn(loader, "updateEtaDataForExistingStopsForSystem"),
};
@@ -124,18 +124,42 @@ describe("ApiBasedShuttleRepositoryLoader", () => {
})
});
describe("updateShuttleDataForSystem", () => {
it("updates shuttle data in repository if response received", async () => {
const shuttlesToPrune = generateMockShuttles();
await Promise.all(shuttlesToPrune.map(async (shuttle) => {
shuttle.systemId = systemId;
await loader.repository.addOrUpdateShuttle(shuttle);
}))
describe("updateShuttleDataForSystemBasedOnProximityToRoutes", () => {
it("updates shuttle data in repository from API if shuttles close enough to route", async () => {
const distance = 1;
loader = new ApiBasedShuttleRepositoryLoader(
"263",
"1",
new UnoptimizedInMemoryShuttleRepository(),
distance,
);
updateGlobalFetchMockJson(fetchShuttleDataSuccessfulResponse);
const busesInResponse = Object.values(fetchShuttleDataSuccessfulResponse.buses);
const routes = generateMockRoutes();
routes[0].polylineCoordinates = [
{ latitude: 33.78792, longitude: -117.86187 },
{ latitude: 33.78792, longitude: -117.86200 },
{ latitude: 33.78792, longitude: -117.86245 }
];
await loader.updateShuttleDataForSystem();
await Promise.all(routes.map(async (route) => {
await loader.repository.addOrUpdateRoute(route);
}));
const modifiedSuccessfulResponse = {
...fetchShuttleDataSuccessfulResponse,
};
Object.keys(modifiedSuccessfulResponse.buses).forEach((busId) => {
const bus = (modifiedSuccessfulResponse.buses as any)[busId][0];
bus.latitude = "33.78792";
bus.longitude = "-117.86187";
bus.routeId = routes[0].id;
});
updateGlobalFetchMockJson(modifiedSuccessfulResponse);
const busesInResponse = Object.values(modifiedSuccessfulResponse.buses);
await loader.updateShuttleDataForSystemBasedOnProximityToRoutes();
const shuttles = await loader.repository.getShuttles();
@@ -146,7 +170,7 @@ describe("ApiBasedShuttleRepositoryLoader", () => {
updateGlobalFetchMockJsonToThrowSyntaxError();
await assertAsyncCallbackThrowsApiResponseError(async () => {
await loader.updateShuttleDataForSystem();
await loader.updateShuttleDataForSystemBasedOnProximityToRoutes();
});
});
});