mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
rename get system method on shuttle repository, update tests
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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[]>;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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([]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user