mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-16 23:40:32 +00:00
Update mock data arrangement of shuttle data test to match updated requirements
This commit is contained in:
@@ -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();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user