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 { import {
fetchStopAndPolylineDataSuccessfulResponse fetchStopAndPolylineDataSuccessfulResponse
} from "../../../../testHelpers/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse"; } from "../../../../testHelpers/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse";
import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../../../testHelpers/mockDataGenerators"; import { generateMockRoutes, generateMockStops } from "../../../../testHelpers/mockDataGenerators";
import { import {
fetchShuttleDataSuccessfulResponse fetchShuttleDataSuccessfulResponse
} from "../../../../testHelpers/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse"; } from "../../../../testHelpers/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse";
@@ -36,7 +36,7 @@ describe("ApiBasedShuttleRepositoryLoader", () => {
const spies = { const spies = {
updateRouteDataForSystem: jest.spyOn(loader, "updateRouteDataForSystem"), updateRouteDataForSystem: jest.spyOn(loader, "updateRouteDataForSystem"),
updateStopAndPolylineDataForRoutesInSystem: jest.spyOn(loader, "updateStopAndPolylineDataForRoutesInSystem"), updateStopAndPolylineDataForRoutesInSystem: jest.spyOn(loader, "updateStopAndPolylineDataForRoutesInSystem"),
updateShuttleDataForSystem: jest.spyOn(loader, "updateShuttleDataForSystem"), updateShuttleDataForSystem: jest.spyOn(loader, "updateShuttleDataForSystemBasedOnProximityToRoutes"),
updateEtaDataForExistingStopsForSystem: jest.spyOn(loader, "updateEtaDataForExistingStopsForSystem"), updateEtaDataForExistingStopsForSystem: jest.spyOn(loader, "updateEtaDataForExistingStopsForSystem"),
}; };
@@ -124,18 +124,42 @@ describe("ApiBasedShuttleRepositoryLoader", () => {
}) })
}); });
describe("updateShuttleDataForSystem", () => { describe("updateShuttleDataForSystemBasedOnProximityToRoutes", () => {
it("updates shuttle data in repository if response received", async () => { it("updates shuttle data in repository from API if shuttles close enough to route", async () => {
const shuttlesToPrune = generateMockShuttles(); const distance = 1;
await Promise.all(shuttlesToPrune.map(async (shuttle) => { loader = new ApiBasedShuttleRepositoryLoader(
shuttle.systemId = systemId; "263",
await loader.repository.addOrUpdateShuttle(shuttle); "1",
})) new UnoptimizedInMemoryShuttleRepository(),
distance,
);
updateGlobalFetchMockJson(fetchShuttleDataSuccessfulResponse); const routes = generateMockRoutes();
const busesInResponse = Object.values(fetchShuttleDataSuccessfulResponse.buses); 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(); const shuttles = await loader.repository.getShuttles();
@@ -146,7 +170,7 @@ describe("ApiBasedShuttleRepositoryLoader", () => {
updateGlobalFetchMockJsonToThrowSyntaxError(); updateGlobalFetchMockJsonToThrowSyntaxError();
await assertAsyncCallbackThrowsApiResponseError(async () => { await assertAsyncCallbackThrowsApiResponseError(async () => {
await loader.updateShuttleDataForSystem(); await loader.updateShuttleDataForSystemBasedOnProximityToRoutes();
}); });
}); });
}); });