diff --git a/src/repositories/UnoptimizedInMemoryShuttleRepository.ts b/src/repositories/UnoptimizedInMemoryShuttleRepository.ts index 90e088a..9060662 100644 --- a/src/repositories/UnoptimizedInMemoryShuttleRepository.ts +++ b/src/repositories/UnoptimizedInMemoryShuttleRepository.ts @@ -20,10 +20,6 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter return this.system; } - public async getSystemById(systemId: string) { - return this.findEntityById(systemId, this.systems); - } - public async getStopsBySystemId(systemId: string) { return this.stops.filter(stop => stop.systemId === systemId); } @@ -100,12 +96,7 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter } public async updateSystem(system: ISystem): Promise { - const index = this.systems.findIndex((s) => s.id === system.id); - if (index !== -1) { - this.systems[index] = system; // Update existing - } else { - this.systems.push(system); // Add new - } + this.system = system; } public async addOrUpdateRoute(route: IRoute): Promise { @@ -175,8 +166,14 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter return await this.removeEntityByMatcherIfExists((value) => value.id === entityId, arrayToSearchIn); } - public async removeSystemIfExists(systemId: string): Promise { - return await this.removeEntityByIdIfExists(systemId, this.systems); + public async removeSystemIfExists(): Promise { + if (this.system !== null) { + const system = this.system; + this.system = null; + return system; + } + + return null; } public async removeRouteIfExists(routeId: string): Promise { @@ -206,7 +203,7 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter } public async clearSystemData() { - this.systems = []; + this.system = null; } public async clearShuttleData(): Promise { diff --git a/test/repositories/UnoptimizedInMemoryShuttleRepositoryTests.test.ts b/test/repositories/UnoptimizedInMemoryShuttleRepositoryTests.test.ts index a634373..d7c0544 100644 --- a/test/repositories/UnoptimizedInMemoryShuttleRepositoryTests.test.ts +++ b/test/repositories/UnoptimizedInMemoryShuttleRepositoryTests.test.ts @@ -21,7 +21,7 @@ describe("UnoptimizedInMemoryRepository", () => { repository = new UnoptimizedInMemoryShuttleRepository(); }); - describe("getSystems", () => { + describe("getSystem", () => { test("gets the system stored in the repository", async () => { const mockSystems = generateMockSystems(); await repository.updateSystem(mockSystems[0]); @@ -38,25 +38,6 @@ describe("UnoptimizedInMemoryRepository", () => { }); }); - describe("getSystemById", () => { - test("gets a system by the ID if it exists", async () => { - const mockSystems = generateMockSystems(); - for (const system of mockSystems) { - await repository.updateSystem(system); - } - - const result = await repository.getSystemById("2"); - - expect(result).toEqual(mockSystems[1]); // Ensure it retrieves the correct system - }); - - test("returns null if the system doesn't exist", async () => { - const result = await repository.getSystemById("nonexistent-id"); - - expect(result).toBeNull(); - }); - }); - describe("getStopsBySystemId", () => { test("gets stops by system ID", async () => { const mockStops = generateMockStops(); @@ -475,27 +456,19 @@ describe("UnoptimizedInMemoryRepository", () => { describe("removeSystemIfExists", () => { test("removes system given ID", async () => { const mockSystems = generateMockSystems(); - await Promise.all(mockSystems.map(async (system) => { - await repository.updateSystem(system); - })); + await repository.updateSystem(mockSystems[0]); - const systemToRemove = mockSystems[0]; - await repository.removeSystemIfExists(systemToRemove.id); + await repository.removeSystemIfExists(); - const remainingSystems = await repository.getSystemIfExists(); - expect(remainingSystems).toHaveLength(mockSystems.length - 1); + const expectedSystem = await repository.getSystemIfExists(); + expect(expectedSystem).toBeNull(); }); test("does nothing if system doesn't exist", async () => { - const mockSystems = generateMockSystems(); - await Promise.all(mockSystems.map(async (system) => { - await repository.updateSystem(system); - })); + await repository.removeSystemIfExists(); - await repository.removeSystemIfExists("nonexistent-id"); - - const remainingSystems = await repository.getSystemIfExists(); - expect(remainingSystems).toHaveLength(mockSystems.length); + const expectedSystem = await repository.getSystemIfExists(); + expect(expectedSystem).toBeNull(); }); });