update repository loader and tests to support only one system

This commit is contained in:
2025-04-06 10:14:24 -07:00
parent 5936c2b743
commit d584d1f58b
4 changed files with 52 additions and 67 deletions

View File

@@ -45,12 +45,8 @@ describe("ApiBasedRepositoryLoader", () => {
await loader.fetchAndUpdateSystemData();
// Assert
const systems = await loader.repository.getSystemIfExists();
if (loader.supportedSystemIds.length < numberOfSystemsInResponse) {
expect(systems).toHaveLength(loader.supportedSystemIds.length);
} else {
expect(systems).toHaveLength(numberOfSystemsInResponse);
}
const system = await loader.repository.getSystemIfExists();
expect(system).not.toBeNull();
});
it("throws the correct error if the API response contains no data", async () => {
@@ -72,18 +68,17 @@ describe("ApiBasedRepositoryLoader", () => {
describe("fetchAndUpdateRouteDataForExistingSystemsInRepository", () => {
test("calls fetchAndUpdateRouteDataForSystemId for all systems in repository", async () => {
test("calls fetchAndUpdateRouteDataForSystemId for system in repository", async () => {
const spy = jest.spyOn(loader, "fetchAndUpdateRouteDataForSystemId");
const systems = generateMockSystems();
await Promise.all(systems.map(async (system) => {
await loader.repository.updateSystem(system);
}));
await loader.repository.updateSystem(systems[0]);
await loader.fetchAndUpdateRouteDataForExistingSystemsInRepository();
await loader.fetchAndUpdateRouteDataForExistingSystemInRepository();
expect(spy.mock.calls.length).toBe(systems.length);
expect(spy.mock.calls.length).toBe(1);
expect(spy).toHaveBeenCalledWith(systems[0].id)
});
});
@@ -122,18 +117,17 @@ describe("ApiBasedRepositoryLoader", () => {
});
describe("fetchAndUpdateStopAndPolylineDataForRoutesInExistingSystemsInRepository", () => {
it("calls fetchAndUpdateStopAndPolylineDataForRoutesWithSystemId for every system", async () => {
it("calls fetchAndUpdateStopAndPolylineDataForRoutesWithSystemId for system", async () => {
const spy = jest.spyOn(loader, "fetchAndUpdateStopAndPolylineDataForRoutesWithSystemId");
const systems = generateMockSystems();
await Promise.all(systems.map(async (system) => {
await loader.repository.updateSystem(system);
}));
await loader.repository.updateSystem(systems[0]);
await loader.fetchAndUpdateStopAndPolylineDataForRoutesInExistingSystemsInRepository();
await loader.fetchAndUpdateStopAndPolylineDataForRoutesInExistingSystemInRepository();
expect(spy.mock.calls.length).toBe(systems.length);
expect(spy.mock.calls.length).toBe(1);
expect(spy).toHaveBeenCalledWith(systems[0].id)
});
})
@@ -182,13 +176,12 @@ describe("ApiBasedRepositoryLoader", () => {
const spy = jest.spyOn(loader, "fetchAndUpdateShuttleDataForSystemId");
const systems = generateMockSystems();
await Promise.all(systems.map(async (system) => {
await loader.repository.updateSystem(system);
}))
await loader.repository.updateSystem(systems[0]);
await loader.fetchAndUpdateShuttleDataForExistingSystemsInRepository();
await loader.fetchAndUpdateShuttleDataForExistingSystemInRepository();
expect(spy.mock.calls.length).toBe(systems.length);
expect(spy.mock.calls.length).toBe(1);
expect(spy).toHaveBeenCalledWith(systems[0].id)
});
});
@@ -225,13 +218,12 @@ describe("ApiBasedRepositoryLoader", () => {
const spy = jest.spyOn(loader, "fetchAndUpdateEtaDataForExistingStopsForSystemId");
const systems = generateMockSystems();
await Promise.all(systems.map(async (system) => {
await loader.repository.updateSystem(system);
}));
await loader.repository.updateSystem(systems[0]);
await loader.fetchAndUpdateEtaDataForExistingStopsForSystemsInRepository();
await loader.fetchAndUpdateEtaDataForExistingStopsForSystemInRepository();
expect(spy.mock.calls.length).toBe(systems.length);
expect(spy.mock.calls.length).toBe(1);
expect(spy).toHaveBeenCalledWith(systems[0].id)
});
});