Remove ETA-related tests from ShuttleRepositorySharedTests

This commit is contained in:
2025-11-11 15:30:43 -08:00
parent 747477cff4
commit 90041555a9

View File

@@ -3,9 +3,7 @@ import { createClient, RedisClientType } from "redis";
import { UnoptimizedInMemoryShuttleRepository } from "../UnoptimizedInMemoryShuttleRepository";
import { ShuttleGetterSetterRepository } from "../ShuttleGetterSetterRepository";
import { RedisShuttleRepository } from "../RedisShuttleRepository";
import { ShuttleRepositoryEvent } from "../ShuttleGetterRepository";
import {
generateMockEtas,
generateMockOrderedStops,
generateMockRoutes,
generateMockShuttles,
@@ -181,55 +179,6 @@ describe.each(repositoryImplementations)('$name', (holder) => {
});
});
describe("ETA event emitters", () => {
test("emits ETA_UPDATED event when ETAs are added from external source", async () => {
const mockListener = jest.fn();
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
const mockEtas = generateMockEtas();
for (const eta of mockEtas) {
await repository.addOrUpdateEtaFromExternalSource(eta);
}
expect(mockListener).toHaveBeenCalledTimes(mockEtas.length);
expect(mockListener).toHaveBeenCalledWith(mockEtas[0]);
expect(mockListener).toHaveBeenCalledWith(mockEtas[mockEtas.length - 1]);
});
test("does not notify listener after it has been removed", async () => {
const mockListener = jest.fn();
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
const mockEtas = generateMockEtas();
repository.off(ShuttleRepositoryEvent.ETA_UPDATED, mockListener);
await repository.addOrUpdateEtaFromExternalSource(mockEtas[0]);
expect(mockListener).toHaveBeenCalledTimes(0);
});
test("stops notifying specific listener after removal but continues for others", async () => {
const mockListener1 = jest.fn();
const mockListener2 = jest.fn();
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener1);
repository.on(ShuttleRepositoryEvent.ETA_UPDATED, mockListener2);
const mockEtas = generateMockEtas();
await repository.addOrUpdateEtaFromExternalSource(mockEtas[0]);
repository.off(ShuttleRepositoryEvent.ETA_UPDATED, mockListener1);
await repository.addOrUpdateEtaFromExternalSource(mockEtas[mockEtas.length - 1]);
expect(mockListener1).toHaveBeenCalledTimes(1);
expect(mockListener1).toHaveBeenCalledWith(mockEtas[0]);
expect(mockListener1).not.toHaveBeenCalledWith(mockEtas[mockEtas.length - 1]);
expect(mockListener2).toHaveBeenCalledTimes(2);
expect(mockListener2).toHaveBeenCalledWith(mockEtas[0]);
expect(mockListener2).toHaveBeenCalledWith(mockEtas[mockEtas.length - 1]);
});
});
describe("getOrderedStopByRouteAndStopId", () => {
test("gets an ordered stop by route ID and stop ID", async () => {
const mockOrderedStops = generateMockOrderedStops();
@@ -515,46 +464,6 @@ describe.each(repositoryImplementations)('$name', (holder) => {
});
});
describe("removeEtaIfExists", () => {
test("emits an eta removed event when an eta is removed", async () => {
const mockRoutes = generateMockRoutes();
const mockStops = generateMockStops();
const mockShuttles = generateMockShuttles();
const mockOrderedStops = generateMockOrderedStops();
const listener = jest.fn();
repository.on(ShuttleRepositoryEvent.ETA_REMOVED, listener);
// Setup route, stops, and ordered stops
await repository.addOrUpdateRoute(mockRoutes[0]);
for (const stop of mockStops) {
await repository.addOrUpdateStop(stop);
}
for (const orderedStop of mockOrderedStops.filter(os => os.routeId === mockRoutes[0].id)) {
await repository.addOrUpdateOrderedStop(orderedStop);
}
// Create an ETA by moving shuttle between stops
const shuttle = mockShuttles[0];
shuttle.routeId = mockRoutes[0].id;
shuttle.coordinates = mockStops[0].coordinates;
await repository.addOrUpdateShuttle(shuttle);
shuttle.coordinates = mockStops[1].coordinates;
await repository.addOrUpdateShuttle(shuttle);
// Get any ETAs that were created for this shuttle
const existingEtas = await repository.getEtasForShuttleId(shuttle.id);
if (existingEtas.length > 0) {
const etaToRemove = existingEtas[0];
await repository.removeEtaIfExists(etaToRemove.shuttleId, etaToRemove.stopId);
expect(listener).toHaveBeenCalledWith(etaToRemove);
}
});
});
describe("clearShuttleData", () => {
test("clears all shuttles from the repository", async () => {
const mockShuttles = generateMockShuttles();