remove all system related data from shuttle repository

This commit is contained in:
2025-04-06 10:49:47 -07:00
parent db097b00dc
commit 6d762ce620
2 changed files with 1 additions and 86 deletions

View File

@@ -1,5 +1,5 @@
import { ShuttleGetterSetterRepository } from "./ShuttleGetterSetterRepository"; import { ShuttleGetterSetterRepository } from "./ShuttleGetterSetterRepository";
import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop } from "../entities/entities";
/** /**
* An unoptimized in memory repository. * An unoptimized in memory repository.
@@ -7,7 +7,6 @@ import { IEntityWithId, IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } f
* switching to another data store later anyways) * switching to another data store later anyways)
*/ */
export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetterRepository { export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetterRepository {
private system: ISystem | null = null;
private stops: IStop[] = []; private stops: IStop[] = [];
private routes: IRoute[] = []; private routes: IRoute[] = [];
private shuttles: IShuttle[] = []; private shuttles: IShuttle[] = [];
@@ -16,10 +15,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
private subscribers: ((eta: IEta) => void)[] = []; private subscribers: ((eta: IEta) => void)[] = [];
public async getSystemIfExists() {
return this.system;
}
public async getStopsBySystemId(systemId: string) { public async getStopsBySystemId(systemId: string) {
return this.stops.filter(stop => stop.systemId === systemId); return this.stops.filter(stop => stop.systemId === systemId);
} }
@@ -95,10 +90,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
return entity; return entity;
} }
public async updateSystem(system: ISystem): Promise<void> {
this.system = system;
}
public async addOrUpdateRoute(route: IRoute): Promise<void> { public async addOrUpdateRoute(route: IRoute): Promise<void> {
const index = this.routes.findIndex((r) => r.id === route.id); const index = this.routes.findIndex((r) => r.id === route.id);
if (index !== -1) { if (index !== -1) {
@@ -166,16 +157,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
return await this.removeEntityByMatcherIfExists((value) => value.id === entityId, arrayToSearchIn); return await this.removeEntityByMatcherIfExists((value) => value.id === entityId, arrayToSearchIn);
} }
public async removeSystemIfExists(): Promise<ISystem | null> {
if (this.system !== null) {
const system = this.system;
this.system = null;
return system;
}
return null;
}
public async removeRouteIfExists(routeId: string): Promise<IRoute | null> { public async removeRouteIfExists(routeId: string): Promise<IRoute | null> {
return await this.removeEntityByIdIfExists(routeId, this.routes); return await this.removeEntityByIdIfExists(routeId, this.routes);
} }
@@ -202,10 +183,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
}, this.etas); }, this.etas);
} }
public async clearSystemData() {
this.system = null;
}
public async clearShuttleData(): Promise<void> { public async clearShuttleData(): Promise<void> {
this.shuttles = []; this.shuttles = [];
} }

View File

@@ -6,7 +6,6 @@ import {
generateMockRoutes, generateMockRoutes,
generateMockShuttles, generateMockShuttles,
generateMockStops, generateMockStops,
generateMockSystems
} from "../testHelpers/mockDataGenerators"; } from "../testHelpers/mockDataGenerators";
// For repositories created in the future, reuse core testing // For repositories created in the future, reuse core testing
@@ -21,23 +20,6 @@ describe("UnoptimizedInMemoryRepository", () => {
repository = new UnoptimizedInMemoryShuttleRepository(); repository = new UnoptimizedInMemoryShuttleRepository();
}); });
describe("getSystem", () => {
test("gets the system stored in the repository", async () => {
const mockSystems = generateMockSystems();
await repository.updateSystem(mockSystems[0]);
const result = await repository.getSystemIfExists();
expect(result).toEqual(mockSystems[0]);
});
test("gets null if there is no data associated with the system", async () => {
const result = await repository.getSystemIfExists();
expect(result).toEqual(null);
});
});
describe("getStopsBySystemId", () => { describe("getStopsBySystemId", () => {
test("gets stops by system ID", async () => { test("gets stops by system ID", async () => {
const mockStops = generateMockStops(); const mockStops = generateMockStops();
@@ -303,18 +285,6 @@ describe("UnoptimizedInMemoryRepository", () => {
}); });
}); });
describe("updateSystem", () => {
test("adds a new system", async () => {
const mockSystems = generateMockSystems();
const newSystem = mockSystems[0];
await repository.updateSystem(newSystem);
const result = await repository.getSystemIfExists();
expect(result).toEqual(newSystem);
});
});
describe("addOrUpdateRoute", () => { describe("addOrUpdateRoute", () => {
test("adds a new route if nonexistent", async () => { test("adds a new route if nonexistent", async () => {
const mockRoutes = generateMockRoutes(); const mockRoutes = generateMockRoutes();
@@ -440,25 +410,6 @@ describe("UnoptimizedInMemoryRepository", () => {
}); });
}); });
describe("removeSystemIfExists", () => {
test("removes system given ID", async () => {
const mockSystems = generateMockSystems();
await repository.updateSystem(mockSystems[0]);
await repository.removeSystemIfExists();
const expectedSystem = await repository.getSystemIfExists();
expect(expectedSystem).toBeNull();
});
test("does nothing if system doesn't exist", async () => {
await repository.removeSystemIfExists();
const expectedSystem = await repository.getSystemIfExists();
expect(expectedSystem).toBeNull();
});
});
describe("removeRouteIfExists", () => { describe("removeRouteIfExists", () => {
test("removes route given ID", async () => { test("removes route given ID", async () => {
const systemId = "1"; const systemId = "1";
@@ -620,19 +571,6 @@ describe("UnoptimizedInMemoryRepository", () => {
}); });
}); });
describe("clearSystemData", () => {
test("clears system data when the repository has data", async () => {
const mockSystems = generateMockSystems();
const system = mockSystems[0];
await repository.updateSystem(system);
await repository.clearSystemData();
const result = await repository.getSystemIfExists();
expect(result).toEqual(null);
});
});
describe("clearShuttleData", () => { describe("clearShuttleData", () => {
test("clears all shuttles from the repository", async () => { test("clears all shuttles from the repository", async () => {
const mockShuttles = generateMockShuttles(); const mockShuttles = generateMockShuttles();