rename get system method on shuttle repository, update tests

This commit is contained in:
2025-04-06 09:48:55 -07:00
parent af61bd4726
commit 7e0c1f3539
6 changed files with 22 additions and 24 deletions

View File

@@ -39,7 +39,7 @@ export class ApiBasedShuttleRepositoryLoader implements ShuttleRepositoryLoader
const query = new URLSearchParams(params).toString(); const query = new URLSearchParams(params).toString();
const systemIds = await this.constructExistingEntityIdSet(async () => { const systemIds = await this.constructExistingEntityIdSet(async () => {
return await this.repository.getSystems(); return await this.repository.getSystemIfExists();
}) })
try { try {
@@ -76,7 +76,7 @@ export class ApiBasedShuttleRepositoryLoader implements ShuttleRepositoryLoader
} }
public async fetchAndUpdateRouteDataForExistingSystemsInRepository() { public async fetchAndUpdateRouteDataForExistingSystemsInRepository() {
const systems = await this.repository.getSystems(); const systems = await this.repository.getSystemIfExists();
await Promise.all(systems.map(async (system) => { await Promise.all(systems.map(async (system) => {
await this.fetchAndUpdateRouteDataForSystemId(system.id); await this.fetchAndUpdateRouteDataForSystemId(system.id);
})); }));
@@ -132,7 +132,7 @@ export class ApiBasedShuttleRepositoryLoader implements ShuttleRepositoryLoader
} }
public async fetchAndUpdateStopAndPolylineDataForRoutesInExistingSystemsInRepository() { public async fetchAndUpdateStopAndPolylineDataForRoutesInExistingSystemsInRepository() {
const systems = await this.repository.getSystems(); const systems = await this.repository.getSystemIfExists();
await Promise.all(systems.map(async (system: ISystem) => { await Promise.all(systems.map(async (system: ISystem) => {
await this.fetchAndUpdateStopAndPolylineDataForRoutesWithSystemId(system.id); await this.fetchAndUpdateStopAndPolylineDataForRoutesWithSystemId(system.id);
})); }));
@@ -178,7 +178,7 @@ export class ApiBasedShuttleRepositoryLoader implements ShuttleRepositoryLoader
} }
public async fetchAndUpdateShuttleDataForExistingSystemsInRepository() { public async fetchAndUpdateShuttleDataForExistingSystemsInRepository() {
const systems = await this.repository.getSystems(); const systems = await this.repository.getSystemIfExists();
await Promise.all(systems.map(async (system: ISystem) => { await Promise.all(systems.map(async (system: ISystem) => {
const systemId = system.id; const systemId = system.id;
await this.fetchAndUpdateShuttleDataForSystemId(systemId); await this.fetchAndUpdateShuttleDataForSystemId(systemId);
@@ -244,7 +244,7 @@ export class ApiBasedShuttleRepositoryLoader implements ShuttleRepositoryLoader
} }
public async fetchAndUpdateEtaDataForExistingStopsForSystemsInRepository() { public async fetchAndUpdateEtaDataForExistingStopsForSystemsInRepository() {
const systems = await this.repository.getSystems() const systems = await this.repository.getSystemIfExists()
await Promise.all(systems.map(async (system: ISystem) => { await Promise.all(systems.map(async (system: ISystem) => {
const systemId = system.id; const systemId = system.id;
await this.fetchAndUpdateEtaDataForExistingStopsForSystemId(systemId); await this.fetchAndUpdateEtaDataForExistingStopsForSystemId(systemId);

View File

@@ -1,7 +1,7 @@
import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; import { IEta, IOrderedStop, IRoute, IShuttle, IStop, ISystem } from "../entities/entities";
export interface ShuttleGetterRepository { export interface ShuttleGetterRepository {
getSystems(): Promise<ISystem[]>; getSystemIfExists(): Promise<ISystem[]>;
getSystemById(systemId: string): Promise<ISystem | null>; getSystemById(systemId: string): Promise<ISystem | null>;
getStopsBySystemId(systemId: string): Promise<IStop[]>; getStopsBySystemId(systemId: string): Promise<IStop[]>;

View File

@@ -16,7 +16,7 @@ export class UnoptimizedInMemoryShuttleRepository implements ShuttleGetterSetter
private subscribers: ((eta: IEta) => void)[] = []; private subscribers: ((eta: IEta) => void)[] = [];
public async getSystems() { public async getSystemIfExists() {
return this.systems; return this.systems;
} }

View File

@@ -4,7 +4,7 @@ import { Resolvers } from "../generated/graphql";
export const QueryResolvers: Resolvers<ServerContext> = { export const QueryResolvers: Resolvers<ServerContext> = {
Query: { Query: {
systems: async (_parent, args, contextValue, _info) => { systems: async (_parent, args, contextValue, _info) => {
return await contextValue.shuttleRepository.getSystems(); return await contextValue.shuttleRepository.getSystemIfExists();
}, },
system: async (_parent, args, contextValue, _info) => { system: async (_parent, args, contextValue, _info) => {
if (!args.id) return null; if (!args.id) return null;

View File

@@ -45,7 +45,7 @@ describe("ApiBasedRepositoryLoader", () => {
await loader.fetchAndUpdateSystemData(); await loader.fetchAndUpdateSystemData();
// Assert // Assert
const systems = await loader.repository.getSystems(); const systems = await loader.repository.getSystemIfExists();
if (loader.supportedSystemIds.length < numberOfSystemsInResponse) { if (loader.supportedSystemIds.length < numberOfSystemsInResponse) {
expect(systems).toHaveLength(loader.supportedSystemIds.length); expect(systems).toHaveLength(loader.supportedSystemIds.length);
} else { } else {

View File

@@ -22,21 +22,19 @@ describe("UnoptimizedInMemoryRepository", () => {
}); });
describe("getSystems", () => { describe("getSystems", () => {
test("gets the systems stored in the repository", async () => { test("gets the system stored in the repository", async () => {
const mockSystems = generateMockSystems(); const mockSystems = generateMockSystems();
for (const system of mockSystems) { await repository.addOrUpdateSystem(mockSystems[0]);
await repository.addOrUpdateSystem(system);
}
const result = await repository.getSystems(); const result = await repository.getSystemIfExists();
expect(result).toEqual(mockSystems); expect(result).toEqual(mockSystems[0]);
}); });
test("gets an empty list if there are no systems stored", async () => { test("gets null if there is no data associated with the system", async () => {
const result = await repository.getSystems(); const result = await repository.getSystemIfExists();
expect(result).toEqual([]); expect(result).toEqual(null);
}); });
}); });
@@ -331,7 +329,7 @@ describe("UnoptimizedInMemoryRepository", () => {
await repository.addOrUpdateSystem(newSystem); await repository.addOrUpdateSystem(newSystem);
const result = await repository.getSystems(); const result = await repository.getSystemIfExists();
expect(result).toEqual([newSystem]); expect(result).toEqual([newSystem]);
}); });
@@ -344,7 +342,7 @@ describe("UnoptimizedInMemoryRepository", () => {
await repository.addOrUpdateSystem(existingSystem); await repository.addOrUpdateSystem(existingSystem);
await repository.addOrUpdateSystem(updatedSystem); await repository.addOrUpdateSystem(updatedSystem);
const result = await repository.getSystems(); const result = await repository.getSystemIfExists();
expect(result).toEqual([updatedSystem]); expect(result).toEqual([updatedSystem]);
}); });
}); });
@@ -484,7 +482,7 @@ describe("UnoptimizedInMemoryRepository", () => {
const systemToRemove = mockSystems[0]; const systemToRemove = mockSystems[0];
await repository.removeSystemIfExists(systemToRemove.id); await repository.removeSystemIfExists(systemToRemove.id);
const remainingSystems = await repository.getSystems(); const remainingSystems = await repository.getSystemIfExists();
expect(remainingSystems).toHaveLength(mockSystems.length - 1); expect(remainingSystems).toHaveLength(mockSystems.length - 1);
}); });
@@ -496,7 +494,7 @@ describe("UnoptimizedInMemoryRepository", () => {
await repository.removeSystemIfExists("nonexistent-id"); await repository.removeSystemIfExists("nonexistent-id");
const remainingSystems = await repository.getSystems(); const remainingSystems = await repository.getSystemIfExists();
expect(remainingSystems).toHaveLength(mockSystems.length); expect(remainingSystems).toHaveLength(mockSystems.length);
}); });
}); });
@@ -671,7 +669,7 @@ describe("UnoptimizedInMemoryRepository", () => {
await repository.clearSystemData(); await repository.clearSystemData();
const result = await repository.getSystems(); const result = await repository.getSystemIfExists();
expect(result).toEqual([]); expect(result).toEqual([]);
}); });
@@ -682,7 +680,7 @@ describe("UnoptimizedInMemoryRepository", () => {
await repository.clearSystemData(); await repository.clearSystemData();
const result = await repository.getSystems(); const result = await repository.getSystemIfExists();
expect(result).toEqual([]); expect(result).toEqual([]);
}); });
}); });