diff --git a/src/repositories/ApiBasedRepository.ts b/src/repositories/ApiBasedRepository.ts index 51ebf12..00b1353 100644 --- a/src/repositories/ApiBasedRepository.ts +++ b/src/repositories/ApiBasedRepository.ts @@ -1,16 +1,14 @@ import { GetterRepository } from "./GetterRepository"; import { IEta } from "../entities/entities"; +// TODO: implement + export class ApiBasedRepository implements GetterRepository { public async getEtaForShuttleAndStopId(shuttleId: string, stopId: string): Promise { - // TODO: implement - return null; } public async getEtasForShuttleId(shuttleId: string): Promise<[]> { - // TODO: implement - return []; } diff --git a/test/repositories/ApiBasedRepositoryTests.ts b/test/repositories/ApiBasedRepositoryTests.ts new file mode 100644 index 0000000..4ddabb0 --- /dev/null +++ b/test/repositories/ApiBasedRepositoryTests.ts @@ -0,0 +1,40 @@ +import { beforeEach, describe, jest, test } from "@jest/globals"; + +/** + * Update the global fetch function to return a specific object. + * @param obj + */ +function updateGlobalFetchMockJson(obj: any) { + // @ts-ignore + global.fetch = jest.fn(() => { + return Promise.resolve({ + json: () => Promise.resolve(obj) + }) + }) as jest.Mock; +} + +/** + * Reset the global fetch function mock's JSON to return an empty object. + * @param obj + */ +function resetGlobalFetchMockJson() { + updateGlobalFetchMockJson({}) +} + +beforeEach(() => { + resetGlobalFetchMockJson(); +}) + +describe("getEtaForShuttleAndStopId", () => { + test("getEtaForShuttleAndStopId returns correct ETA data", async () => { + + }); + + test("getEtaForShuttleAndStopId returns null if API call is invalid", async () => { + + }); +}); + +describe("getEtasForShuttleId", () => { + +})