change caching and repository api to include system id initializer

This commit is contained in:
2025-01-07 20:02:12 -08:00
parent 1958af2593
commit e7e915a8b1
2 changed files with 25 additions and 26 deletions

View File

@@ -149,7 +149,7 @@ describe("getEtaForShuttleAndStopId", () => {
test("getEtaForShuttleAndStopId returns correct ETA data", async () => {
updateGlobalFetchMockJson(genericEtaDataByStopId);
const repository = new ApiBasedRepository();
const repository = new ApiBasedRepository("1");
const result = await repository.getEtaForShuttleAndStopId("5577", "177666");
expect(result?.secondsRemaining).toEqual(587);
@@ -157,7 +157,7 @@ describe("getEtaForShuttleAndStopId", () => {
});
test("getEtaForShuttleAndStopId returns null if API call is invalid and cache is empty", async () => {
const repository = new ApiBasedRepository();
const repository = new ApiBasedRepository("1");
const result = await repository.getEtaForShuttleAndStopId("5577", "177666");
expect(result).toEqual(null);
@@ -190,7 +190,7 @@ describe("getEtasForShuttleId", () => {
etasForStopId: 100000,
};
const repository = new ApiBasedRepository(initialCache, ttls);
const repository = new ApiBasedRepository("1", initialCache, ttls);
repository.updateEtasForSystemIfTTL = jest.fn(async () => {
});
const result = await repository.getEtasForShuttleId("5577");
@@ -199,7 +199,7 @@ describe("getEtasForShuttleId", () => {
});
test("getEtasForShuttleId returns empty array if no data available", async () => {
const repository = new ApiBasedRepository();
const repository = new ApiBasedRepository("1");
repository.updateEtasForSystemIfTTL = jest.fn(async () => {
});
const result = await repository.getEtasForShuttleId("5577");
@@ -234,7 +234,7 @@ describe("getEtasForStopId", () => {
etasForStopId: 100000,
};
const repository = new ApiBasedRepository(initialCache, ttls);
const repository = new ApiBasedRepository("1", initialCache, ttls);
repository.updateEtasForSystemIfTTL = jest.fn(async () => {
});
const result = await repository.getEtasForStopId("177666");
@@ -243,7 +243,7 @@ describe("getEtasForStopId", () => {
});
test("getEtasForStopId returns empty array if no data available", async () => {
const repository = new ApiBasedRepository();
const repository = new ApiBasedRepository("1");
repository.updateEtasForSystemIfTTL = jest.fn(async () => {
});
const result = await repository.getEtasForShuttleId("5577");
@@ -275,20 +275,18 @@ describe("updateEtasForSystemIfTTL", () => {
expectedEta,
],
},
stopsBySystemId: {
"1": [
{
systemId: "1",
millisecondsSinceEpoch: Date.now() - 1000,
name: "Chapman Court",
id: "177666",
coordinates: {
latitude: 33.796796,
longitude: -117.889293
},
}
],
},
stopsByStopId: {
"1": {
systemId: "1",
millisecondsSinceEpoch: Date.now() - 1000,
name: "Chapman Court",
id: "177666",
coordinates: {
latitude: 33.796796,
longitude: -117.889293
},
}
}
};
const ttls: ApiBasedRepositoryMillisecondTTLs = {
@@ -296,7 +294,7 @@ describe("updateEtasForSystemIfTTL", () => {
etasForStopId: 100000,
};
const repository = new ApiBasedRepository(initialCache, ttls);
const repository = new ApiBasedRepository("1", initialCache, ttls);
await repository.updateEtasForSystemIfTTL("1");
const updatedResult = await repository.getEtaForShuttleAndStopId(
@@ -309,7 +307,7 @@ describe("updateEtasForSystemIfTTL", () => {
test("updateEtasForSystemIfTTL updates all ETA data if data is TTL", async () => {
updateGlobalFetchMockJson(genericEtaDataByStopId);
const repository = new ApiBasedRepository();
const repository = new ApiBasedRepository("1");
repository.getStopsBySystemId = jest.fn(async () => {
return [
{