mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-19 08:50:29 +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 {
|
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();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user