From b7299b83592326c03d5d3dca2ae4f548e42671f3 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Thu, 31 Jul 2025 22:35:49 -0400 Subject: [PATCH 1/4] Move all tests to subdirectories underneath code to be tested --- .../TimedApiBasedRepositoryLoaderTests.test.ts | 8 ++++---- ...piBasedParkingRepositoryLoaderTests.test.ts | 12 ++++++------ ...piBasedShuttleRepositoryLoaderTests.test.ts | 18 +++++++++--------- .../ETANotificationSchedulerTests.test.ts | 16 ++++++++-------- .../AppleNotificationSenderTests.test.ts | 2 +- .../NotificationRepositorySharedTests.test.ts | 6 +++--- .../ParkingRepositorySharedTests.test.ts | 10 +++++----- ...mizedInMemoryShuttleRepositoryTests.test.ts | 4 ++-- .../__tests__}/EtaResolverTests.test.ts | 6 +++--- .../__tests__}/MutationResolverTests.test.ts | 6 +++--- .../OrderedStopResolverTests.test.ts | 8 ++++---- .../ParkingStructureResolverTests.test.ts | 10 +++++----- .../ParkingSystemResolverTests.test.ts | 6 +++--- .../__tests__}/QueryResolverTests.test.ts | 6 +++--- .../__tests__}/RouteResolverTests.test.ts | 10 +++++----- .../__tests__}/ShuttleResolverTests.test.ts | 10 +++++----- .../__tests__}/StopResolverTests.test.ts | 8 ++++---- .../__tests__}/SystemResolverTests.test.ts | 8 ++++---- .../types/__tests__}/CircularQueue.test.ts | 2 +- .../types/__tests__}/TupleKeyTests.test.ts | 2 +- 20 files changed, 79 insertions(+), 79 deletions(-) rename {test/loaders => src/loaders/__tests__}/TimedApiBasedRepositoryLoaderTests.test.ts (81%) rename {test/loaders/parking => src/loaders/parking/__tests__}/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts (88%) rename {test/loaders/shuttle => src/loaders/shuttle/__tests__}/ApiBasedShuttleRepositoryLoaderTests.test.ts (88%) rename {test/notifications/schedulers => src/notifications/schedulers/__tests__}/ETANotificationSchedulerTests.test.ts (87%) rename {test/notifications/senders => src/notifications/senders/__tests__}/AppleNotificationSenderTests.test.ts (98%) rename {test/repositories => src/repositories/notifications/__tests__}/NotificationRepositorySharedTests.test.ts (94%) rename {test/repositories => src/repositories/parking/__tests__}/ParkingRepositorySharedTests.test.ts (93%) rename {test/repositories => src/repositories/shuttle/__tests__}/UnoptimizedInMemoryShuttleRepositoryTests.test.ts (99%) rename {test/resolvers => src/resolvers/__tests__}/EtaResolverTests.test.ts (92%) rename {test/resolvers => src/resolvers/__tests__}/MutationResolverTests.test.ts (97%) rename {test/resolvers => src/resolvers/__tests__}/OrderedStopResolverTests.test.ts (97%) rename {test/resolvers => src/resolvers/__tests__}/ParkingStructureResolverTests.test.ts (88%) rename {test/resolvers => src/resolvers/__tests__}/ParkingSystemResolverTests.test.ts (96%) rename {test/resolvers => src/resolvers/__tests__}/QueryResolverTests.test.ts (95%) rename {test/resolvers => src/resolvers/__tests__}/RouteResolverTests.test.ts (93%) rename {test/resolvers => src/resolvers/__tests__}/ShuttleResolverTests.test.ts (93%) rename {test/resolvers => src/resolvers/__tests__}/StopResolverTests.test.ts (91%) rename {test/resolvers => src/resolvers/__tests__}/SystemResolverTests.test.ts (97%) rename {test/types => src/types/__tests__}/CircularQueue.test.ts (99%) rename {test/types => src/types/__tests__}/TupleKeyTests.test.ts (96%) diff --git a/test/loaders/TimedApiBasedRepositoryLoaderTests.test.ts b/src/loaders/__tests__/TimedApiBasedRepositoryLoaderTests.test.ts similarity index 81% rename from test/loaders/TimedApiBasedRepositoryLoaderTests.test.ts rename to src/loaders/__tests__/TimedApiBasedRepositoryLoaderTests.test.ts index e87556f..de36bf2 100644 --- a/test/loaders/TimedApiBasedRepositoryLoaderTests.test.ts +++ b/src/loaders/__tests__/TimedApiBasedRepositoryLoaderTests.test.ts @@ -1,8 +1,8 @@ import { afterEach, beforeAll, beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { TimedApiBasedRepositoryLoader } from "../../src/loaders/TimedApiBasedRepositoryLoader"; -import { resetGlobalFetchMockJson } from "../testHelpers/fetchMockHelpers"; -import { UnoptimizedInMemoryShuttleRepository } from "../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; -import { ApiBasedShuttleRepositoryLoader } from "../../src/loaders/shuttle/ApiBasedShuttleRepositoryLoader"; +import { TimedApiBasedRepositoryLoader } from "../TimedApiBasedRepositoryLoader"; +import { resetGlobalFetchMockJson } from "../../../test/testHelpers/fetchMockHelpers"; +import { UnoptimizedInMemoryShuttleRepository } from "../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; +import { ApiBasedShuttleRepositoryLoader } from "../shuttle/ApiBasedShuttleRepositoryLoader"; describe("TimedApiBasedRepositoryLoader", () => { let timedLoader: TimedApiBasedRepositoryLoader; diff --git a/test/loaders/parking/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts b/src/loaders/parking/__tests__/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts similarity index 88% rename from test/loaders/parking/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts rename to src/loaders/parking/__tests__/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts index 18f22d5..b5d434a 100644 --- a/test/loaders/parking/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts +++ b/src/loaders/parking/__tests__/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts @@ -1,18 +1,18 @@ import { beforeEach, describe, expect, it, jest } from "@jest/globals"; import { ChapmanApiBasedParkingRepositoryLoader -} from "../../../src/loaders/parking/ChapmanApiBasedParkingRepositoryLoader"; -import { InMemoryParkingRepository } from "../../../src/repositories/parking/InMemoryParkingRepository"; +} from "../ChapmanApiBasedParkingRepositoryLoader"; +import { InMemoryParkingRepository } from "../../../repositories/parking/InMemoryParkingRepository"; import { resetGlobalFetchMockJson, updateGlobalFetchMockJson, updateGlobalFetchMockJsonToThrowSyntaxError -} from "../../testHelpers/fetchMockHelpers"; +} from "../../../../test/testHelpers/fetchMockHelpers"; import { chapmanParkingStructureData -} from "../../jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData"; -import { IParkingStructure } from "../../../src/entities/ParkingRepositoryEntities"; -import { assertAsyncCallbackThrowsApiResponseError } from "../../testHelpers/assertAsyncCallbackThrowsApiResponseError"; +} from "../../../../test/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData"; +import { IParkingStructure } from "../../../entities/ParkingRepositoryEntities"; +import { assertAsyncCallbackThrowsApiResponseError } from "../../../../test/testHelpers/assertAsyncCallbackThrowsApiResponseError"; describe("ChapmanApiBasedParkingRepositoryLoader", () => { let loader: ChapmanApiBasedParkingRepositoryLoader; diff --git a/test/loaders/shuttle/ApiBasedShuttleRepositoryLoaderTests.test.ts b/src/loaders/shuttle/__tests__/ApiBasedShuttleRepositoryLoaderTests.test.ts similarity index 88% rename from test/loaders/shuttle/ApiBasedShuttleRepositoryLoaderTests.test.ts rename to src/loaders/shuttle/__tests__/ApiBasedShuttleRepositoryLoaderTests.test.ts index 6b55712..85dd2f5 100644 --- a/test/loaders/shuttle/ApiBasedShuttleRepositoryLoaderTests.test.ts +++ b/src/loaders/shuttle/__tests__/ApiBasedShuttleRepositoryLoaderTests.test.ts @@ -1,21 +1,21 @@ import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { ApiBasedShuttleRepositoryLoader } from "../../../src/loaders/shuttle/ApiBasedShuttleRepositoryLoader"; -import { UnoptimizedInMemoryShuttleRepository } from "../../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; -import { fetchRouteDataSuccessfulResponse } from "../../jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse"; +import { ApiBasedShuttleRepositoryLoader } from "../ApiBasedShuttleRepositoryLoader"; +import { UnoptimizedInMemoryShuttleRepository } from "../../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; +import { fetchRouteDataSuccessfulResponse } from "../../../../test/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse"; import { fetchStopAndPolylineDataSuccessfulResponse -} from "../../jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse"; -import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../testHelpers/mockDataGenerators"; +} from "../../../../test/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse"; +import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../../../test/testHelpers/mockDataGenerators"; import { fetchShuttleDataSuccessfulResponse -} from "../../jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse"; -import { fetchEtaDataSuccessfulResponse } from "../../jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse"; +} from "../../../../test/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse"; +import { fetchEtaDataSuccessfulResponse } from "../../../../test/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse"; import { resetGlobalFetchMockJson, updateGlobalFetchMockJson, updateGlobalFetchMockJsonToThrowSyntaxError -} from "../../testHelpers/fetchMockHelpers"; -import { assertAsyncCallbackThrowsApiResponseError } from "../../testHelpers/assertAsyncCallbackThrowsApiResponseError"; +} from "../../../../test/testHelpers/fetchMockHelpers"; +import { assertAsyncCallbackThrowsApiResponseError } from "../../../../test/testHelpers/assertAsyncCallbackThrowsApiResponseError"; describe("ApiBasedShuttleRepositoryLoader", () => { let loader: ApiBasedShuttleRepositoryLoader; diff --git a/test/notifications/schedulers/ETANotificationSchedulerTests.test.ts b/src/notifications/schedulers/__tests__/ETANotificationSchedulerTests.test.ts similarity index 87% rename from test/notifications/schedulers/ETANotificationSchedulerTests.test.ts rename to src/notifications/schedulers/__tests__/ETANotificationSchedulerTests.test.ts index 3fd9192..1204632 100644 --- a/test/notifications/schedulers/ETANotificationSchedulerTests.test.ts +++ b/src/notifications/schedulers/__tests__/ETANotificationSchedulerTests.test.ts @@ -1,14 +1,14 @@ import { beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { ETANotificationScheduler } from "../../../src/notifications/schedulers/ETANotificationScheduler"; -import { UnoptimizedInMemoryShuttleRepository } from "../../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; -import { IEta, IShuttle, IStop } from "../../../src/entities/ShuttleRepositoryEntities"; -import { addMockShuttleToRepository, addMockStopToRepository } from "../../testHelpers/repositorySetupHelpers"; -import { AppleNotificationSender } from "../../../src/notifications/senders/AppleNotificationSender"; -import { InMemoryNotificationRepository } from "../../../src/repositories/notifications/InMemoryNotificationRepository"; -import { NotificationRepository } from "../../../src/repositories/notifications/NotificationRepository"; +import { ETANotificationScheduler } from "../ETANotificationScheduler"; +import { UnoptimizedInMemoryShuttleRepository } from "../../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; +import { IEta, IShuttle, IStop } from "../../../entities/ShuttleRepositoryEntities"; +import { addMockShuttleToRepository, addMockStopToRepository } from "../../../../test/testHelpers/repositorySetupHelpers"; +import { AppleNotificationSender } from "../../senders/AppleNotificationSender"; +import { InMemoryNotificationRepository } from "../../../repositories/notifications/InMemoryNotificationRepository"; +import { NotificationRepository } from "../../../repositories/notifications/NotificationRepository"; jest.mock("http2"); -jest.mock("../../../src/notifications/senders/AppleNotificationSender"); +jest.mock("../../senders/AppleNotificationSender"); const MockAppleNotificationSender = AppleNotificationSender as jest.MockedClass; diff --git a/test/notifications/senders/AppleNotificationSenderTests.test.ts b/src/notifications/senders/__tests__/AppleNotificationSenderTests.test.ts similarity index 98% rename from test/notifications/senders/AppleNotificationSenderTests.test.ts rename to src/notifications/senders/__tests__/AppleNotificationSenderTests.test.ts index bd7f9ef..b0f83cc 100644 --- a/test/notifications/senders/AppleNotificationSenderTests.test.ts +++ b/src/notifications/senders/__tests__/AppleNotificationSenderTests.test.ts @@ -4,7 +4,7 @@ import { EventEmitter } from "node:events"; import { AppleNotificationSender, NotificationAlertArguments -} from "../../../src/notifications/senders/AppleNotificationSender"; +} from "../AppleNotificationSender"; import { ClientHttp2Session } from "node:http2"; jest.mock("http2"); diff --git a/test/repositories/NotificationRepositorySharedTests.test.ts b/src/repositories/notifications/__tests__/NotificationRepositorySharedTests.test.ts similarity index 94% rename from test/repositories/NotificationRepositorySharedTests.test.ts rename to src/repositories/notifications/__tests__/NotificationRepositorySharedTests.test.ts index fc96674..daf9944 100644 --- a/test/repositories/NotificationRepositorySharedTests.test.ts +++ b/src/repositories/notifications/__tests__/NotificationRepositorySharedTests.test.ts @@ -1,7 +1,7 @@ import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { InMemoryNotificationRepository } from "../../src/repositories/notifications/InMemoryNotificationRepository"; -import { NotificationEvent, NotificationRepository } from "../../src/repositories/notifications/NotificationRepository"; -import { RedisNotificationRepository } from "../../src/repositories/notifications/RedisNotificationRepository"; +import { InMemoryNotificationRepository } from "../InMemoryNotificationRepository"; +import { NotificationEvent, NotificationRepository } from "../NotificationRepository"; +import { RedisNotificationRepository } from "../RedisNotificationRepository"; interface RepositoryHolder { name: string; diff --git a/test/repositories/ParkingRepositorySharedTests.test.ts b/src/repositories/parking/__tests__/ParkingRepositorySharedTests.test.ts similarity index 93% rename from test/repositories/ParkingRepositorySharedTests.test.ts rename to src/repositories/parking/__tests__/ParkingRepositorySharedTests.test.ts index 04bfe6f..d6d5858 100644 --- a/test/repositories/ParkingRepositorySharedTests.test.ts +++ b/src/repositories/parking/__tests__/ParkingRepositorySharedTests.test.ts @@ -1,9 +1,9 @@ import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { InMemoryParkingRepository, } from "../../src/repositories/parking/InMemoryParkingRepository"; -import { IParkingStructure } from "../../src/entities/ParkingRepositoryEntities"; -import { HistoricalParkingAverageQueryArguments } from "../../src/repositories/parking/ParkingGetterRepository"; -import { ParkingGetterSetterRepository } from "../../src/repositories/parking/ParkingGetterSetterRepository"; -import { RedisParkingRepository } from "../../src/repositories/parking/RedisParkingRepository"; +import { InMemoryParkingRepository, } from "../InMemoryParkingRepository"; +import { IParkingStructure } from "../../../entities/ParkingRepositoryEntities"; +import { HistoricalParkingAverageQueryArguments } from "../ParkingGetterRepository"; +import { ParkingGetterSetterRepository } from "../ParkingGetterSetterRepository"; +import { RedisParkingRepository } from "../RedisParkingRepository"; interface RepositoryHolder { name: string; diff --git a/test/repositories/UnoptimizedInMemoryShuttleRepositoryTests.test.ts b/src/repositories/shuttle/__tests__/UnoptimizedInMemoryShuttleRepositoryTests.test.ts similarity index 99% rename from test/repositories/UnoptimizedInMemoryShuttleRepositoryTests.test.ts rename to src/repositories/shuttle/__tests__/UnoptimizedInMemoryShuttleRepositoryTests.test.ts index c5a840d..d75d4ba 100644 --- a/test/repositories/UnoptimizedInMemoryShuttleRepositoryTests.test.ts +++ b/src/repositories/shuttle/__tests__/UnoptimizedInMemoryShuttleRepositoryTests.test.ts @@ -1,12 +1,12 @@ import { beforeEach, describe, expect, jest, test } from "@jest/globals"; -import { UnoptimizedInMemoryShuttleRepository } from "../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; +import { UnoptimizedInMemoryShuttleRepository } from "../UnoptimizedInMemoryShuttleRepository"; import { generateMockEtas, generateMockOrderedStops, generateMockRoutes, generateMockShuttles, generateMockStops, -} from "../testHelpers/mockDataGenerators"; +} from "../../../../test/testHelpers/mockDataGenerators"; // For repositories created in the future, reuse core testing // logic from here and differentiate setup (e.g. creating mocks) diff --git a/test/resolvers/EtaResolverTests.test.ts b/src/resolvers/__tests__/EtaResolverTests.test.ts similarity index 92% rename from test/resolvers/EtaResolverTests.test.ts rename to src/resolvers/__tests__/EtaResolverTests.test.ts index 5611f9a..60332cd 100644 --- a/test/resolvers/EtaResolverTests.test.ts +++ b/src/resolvers/__tests__/EtaResolverTests.test.ts @@ -1,11 +1,11 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; -import { IEta, IShuttle, IStop } from "../../src/entities/ShuttleRepositoryEntities"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { IEta, IShuttle, IStop } from "../../entities/ShuttleRepositoryEntities"; import { addMockEtaToRepository, addMockShuttleToRepository, addMockStopToRepository, -} from "../testHelpers/repositorySetupHelpers"; +} from "../../../test/testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); describe("EtaResolvers", () => { diff --git a/test/resolvers/MutationResolverTests.test.ts b/src/resolvers/__tests__/MutationResolverTests.test.ts similarity index 97% rename from test/resolvers/MutationResolverTests.test.ts rename to src/resolvers/__tests__/MutationResolverTests.test.ts index 04dbf69..6d229e5 100644 --- a/test/resolvers/MutationResolverTests.test.ts +++ b/src/resolvers/__tests__/MutationResolverTests.test.ts @@ -1,11 +1,11 @@ import { describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; import { addMockShuttleToRepository, addMockStopToRepository, -} from "../testHelpers/repositorySetupHelpers"; +} from "../../../test/testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); -import { NotificationInput } from "../../src/generated/graphql"; +import { NotificationInput } from "../../generated/graphql"; describe("MutationResolvers", () => { const holder = setupTestServerHolder() diff --git a/test/resolvers/OrderedStopResolverTests.test.ts b/src/resolvers/__tests__/OrderedStopResolverTests.test.ts similarity index 97% rename from test/resolvers/OrderedStopResolverTests.test.ts rename to src/resolvers/__tests__/OrderedStopResolverTests.test.ts index 5484b3a..84eabaa 100644 --- a/test/resolvers/OrderedStopResolverTests.test.ts +++ b/src/resolvers/__tests__/OrderedStopResolverTests.test.ts @@ -1,8 +1,8 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; -import { IRoute, IStop } from "../../src/entities/ShuttleRepositoryEntities"; -import { generateMockOrderedStops, generateMockStops } from "../testHelpers/mockDataGenerators"; -import { addMockRouteToRepository } from "../testHelpers/repositorySetupHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { IRoute, IStop } from "../../entities/ShuttleRepositoryEntities"; +import { generateMockOrderedStops, generateMockStops } from "../../../test/testHelpers/mockDataGenerators"; +import { addMockRouteToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); describe("OrderedStopResolvers", () => { diff --git a/test/resolvers/ParkingStructureResolverTests.test.ts b/src/resolvers/__tests__/ParkingStructureResolverTests.test.ts similarity index 88% rename from test/resolvers/ParkingStructureResolverTests.test.ts rename to src/resolvers/__tests__/ParkingStructureResolverTests.test.ts index 7133c57..7369a00 100644 --- a/test/resolvers/ParkingStructureResolverTests.test.ts +++ b/src/resolvers/__tests__/ParkingStructureResolverTests.test.ts @@ -1,11 +1,11 @@ import { beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; -import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; -import { generateParkingStructures } from "../testHelpers/mockDataGenerators"; -import { HistoricalParkingAverageQueryInput } from "../../src/generated/graphql"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { InterchangeSystem } from "../../entities/InterchangeSystem"; +import { generateParkingStructures } from "../../../test/testHelpers/mockDataGenerators"; +import { HistoricalParkingAverageQueryInput } from "../../generated/graphql"; import assert = require("node:assert"); -jest.mock("../../src/environment"); +jest.mock("../../environment"); describe("ParkingStructureResolver", () => { const holder = setupTestServerHolder(); diff --git a/test/resolvers/ParkingSystemResolverTests.test.ts b/src/resolvers/__tests__/ParkingSystemResolverTests.test.ts similarity index 96% rename from test/resolvers/ParkingSystemResolverTests.test.ts rename to src/resolvers/__tests__/ParkingSystemResolverTests.test.ts index 951e2c2..e049fb2 100644 --- a/test/resolvers/ParkingSystemResolverTests.test.ts +++ b/src/resolvers/__tests__/ParkingSystemResolverTests.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { generateParkingStructures } from "../testHelpers/mockDataGenerators"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; -import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; +import { generateParkingStructures } from "../../../test/testHelpers/mockDataGenerators"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { InterchangeSystem } from "../../entities/InterchangeSystem"; import assert = require("node:assert"); diff --git a/test/resolvers/QueryResolverTests.test.ts b/src/resolvers/__tests__/QueryResolverTests.test.ts similarity index 95% rename from test/resolvers/QueryResolverTests.test.ts rename to src/resolvers/__tests__/QueryResolverTests.test.ts index c24cc61..0f6d942 100644 --- a/test/resolvers/QueryResolverTests.test.ts +++ b/src/resolvers/__tests__/QueryResolverTests.test.ts @@ -3,10 +3,10 @@ import { buildSystemForTesting, setupTestServerContext, setupTestServerHolder -} from "../testHelpers/apolloTestServerHelpers"; +} from "../../../test/testHelpers/apolloTestServerHelpers"; import assert = require("node:assert"); -import { addMockShuttleToRepository, addMockStopToRepository } from "../testHelpers/repositorySetupHelpers"; -import { ScheduledNotification } from "../../src/repositories/notifications/NotificationRepository"; +import { addMockShuttleToRepository, addMockStopToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; +import { ScheduledNotification } from "../../repositories/notifications/NotificationRepository"; // See Apollo documentation for integration test guide // https://www.apollographql.com/docs/apollo-server/testing/testing diff --git a/test/resolvers/RouteResolverTests.test.ts b/src/resolvers/__tests__/RouteResolverTests.test.ts similarity index 93% rename from test/resolvers/RouteResolverTests.test.ts rename to src/resolvers/__tests__/RouteResolverTests.test.ts index 2b13583..0f21a9f 100644 --- a/test/resolvers/RouteResolverTests.test.ts +++ b/src/resolvers/__tests__/RouteResolverTests.test.ts @@ -1,13 +1,13 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; import { addMockRouteToRepository, addMockStopToRepository -} from "../testHelpers/repositorySetupHelpers"; -import { generateMockOrderedStops, generateMockShuttles } from "../testHelpers/mockDataGenerators"; -import { IRoute, IStop } from "../../src/entities/ShuttleRepositoryEntities"; +} from "../../../test/testHelpers/repositorySetupHelpers"; +import { generateMockOrderedStops, generateMockShuttles } from "../../../test/testHelpers/mockDataGenerators"; +import { IRoute, IStop } from "../../entities/ShuttleRepositoryEntities"; import assert = require("node:assert"); -import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; +import { InterchangeSystem } from "../../entities/InterchangeSystem"; describe("RouteResolvers", () => { const holder = setupTestServerHolder(); diff --git a/test/resolvers/ShuttleResolverTests.test.ts b/src/resolvers/__tests__/ShuttleResolverTests.test.ts similarity index 93% rename from test/resolvers/ShuttleResolverTests.test.ts rename to src/resolvers/__tests__/ShuttleResolverTests.test.ts index bf8cc5d..6c32ac4 100644 --- a/test/resolvers/ShuttleResolverTests.test.ts +++ b/src/resolvers/__tests__/ShuttleResolverTests.test.ts @@ -1,10 +1,10 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { generateMockEtas, generateMockRoutes } from "../testHelpers/mockDataGenerators"; -import { IShuttle } from "../../src/entities/ShuttleRepositoryEntities"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; -import { addMockShuttleToRepository } from "../testHelpers/repositorySetupHelpers"; +import { generateMockEtas, generateMockRoutes } from "../../../test/testHelpers/mockDataGenerators"; +import { IShuttle } from "../../entities/ShuttleRepositoryEntities"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { addMockShuttleToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); -import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; +import { InterchangeSystem } from "../../entities/InterchangeSystem"; describe("ShuttleResolvers", () => { diff --git a/test/resolvers/StopResolverTests.test.ts b/src/resolvers/__tests__/StopResolverTests.test.ts similarity index 91% rename from test/resolvers/StopResolverTests.test.ts rename to src/resolvers/__tests__/StopResolverTests.test.ts index 6bf31cd..2ae4a9f 100644 --- a/test/resolvers/StopResolverTests.test.ts +++ b/src/resolvers/__tests__/StopResolverTests.test.ts @@ -2,10 +2,10 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; import { setupTestServerContext, setupTestServerHolder -} from "../testHelpers/apolloTestServerHelpers"; -import { generateMockEtas, generateMockOrderedStops } from "../testHelpers/mockDataGenerators"; -import { IStop } from "../../src/entities/ShuttleRepositoryEntities"; -import { addMockStopToRepository } from "../testHelpers/repositorySetupHelpers"; +} from "../../../test/testHelpers/apolloTestServerHelpers"; +import { generateMockEtas, generateMockOrderedStops } from "../../../test/testHelpers/mockDataGenerators"; +import { IStop } from "../../entities/ShuttleRepositoryEntities"; +import { addMockStopToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); describe("StopResolvers", () => { diff --git a/test/resolvers/SystemResolverTests.test.ts b/src/resolvers/__tests__/SystemResolverTests.test.ts similarity index 97% rename from test/resolvers/SystemResolverTests.test.ts rename to src/resolvers/__tests__/SystemResolverTests.test.ts index 6c0e7aa..115df77 100644 --- a/test/resolvers/SystemResolverTests.test.ts +++ b/src/resolvers/__tests__/SystemResolverTests.test.ts @@ -1,18 +1,18 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; import { generateMockRoutes, generateMockShuttles, generateMockStops, generateParkingStructures -} from "../testHelpers/mockDataGenerators"; +} from "../../../test/testHelpers/mockDataGenerators"; import { addMockRouteToRepository, addMockShuttleToRepository, addMockStopToRepository, -} from "../testHelpers/repositorySetupHelpers"; +} from "../../../test/testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); -import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; +import { InterchangeSystem } from "../../entities/InterchangeSystem"; describe("SystemResolvers", () => { const holder = setupTestServerHolder(); diff --git a/test/types/CircularQueue.test.ts b/src/types/__tests__/CircularQueue.test.ts similarity index 99% rename from test/types/CircularQueue.test.ts rename to src/types/__tests__/CircularQueue.test.ts index 748396d..fc4ef42 100644 --- a/test/types/CircularQueue.test.ts +++ b/src/types/__tests__/CircularQueue.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "@jest/globals"; -import { CircularQueue } from "../../src/types/CircularQueue"; +import { CircularQueue } from "../CircularQueue"; interface TestItem { id: number; diff --git a/test/types/TupleKeyTests.test.ts b/src/types/__tests__/TupleKeyTests.test.ts similarity index 96% rename from test/types/TupleKeyTests.test.ts rename to src/types/__tests__/TupleKeyTests.test.ts index b04c3ec..d791371 100644 --- a/test/types/TupleKeyTests.test.ts +++ b/src/types/__tests__/TupleKeyTests.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "@jest/globals"; -import { TupleKey } from "../../src/types/TupleKey"; +import { TupleKey } from "../TupleKey"; describe("TupleKey", () => { it("stores a value copy of the original tuple", () => { From 14fbdc74083dce3d16b0e6f42cb0da4db8c841ce Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Thu, 31 Jul 2025 22:41:05 -0400 Subject: [PATCH 2/4] Move testHelpers directory up one level --- .../TimedApiBasedRepositoryLoaderTests.test.ts | 2 +- ...manApiBasedParkingRepositoryLoaderTests.test.ts | 6 +++--- .../ApiBasedShuttleRepositoryLoaderTests.test.ts | 14 +++++++------- .../ETANotificationSchedulerTests.test.ts | 2 +- ...optimizedInMemoryShuttleRepositoryTests.test.ts | 2 +- src/resolvers/__tests__/EtaResolverTests.test.ts | 4 ++-- .../__tests__/MutationResolverTests.test.ts | 4 ++-- .../__tests__/OrderedStopResolverTests.test.ts | 6 +++--- .../ParkingStructureResolverTests.test.ts | 4 ++-- .../__tests__/ParkingSystemResolverTests.test.ts | 4 ++-- src/resolvers/__tests__/QueryResolverTests.test.ts | 4 ++-- src/resolvers/__tests__/RouteResolverTests.test.ts | 6 +++--- .../__tests__/ShuttleResolverTests.test.ts | 6 +++--- src/resolvers/__tests__/StopResolverTests.test.ts | 6 +++--- .../__tests__/SystemResolverTests.test.ts | 6 +++--- test/sum.test.ts | 7 ------- .../apolloTestServerHelpers.ts | 8 ++++---- .../assertAsyncCallbackThrowsApiResponseError.ts | 2 +- .../fetchMockHelpers.ts | 0 .../chapmanParkingStructureData.ts | 0 .../fetchEtaData/fetchEtaDataSuccessfulResponse.ts | 0 .../fetchRouteDataSuccessfulResponse.ts | 0 .../fetchShuttleDataSuccessfulResponse.ts | 0 .../fetchStopAndPolylineDataSuccessfulResponse.ts | 0 .../fetchSystemDataFailedResponse.ts | 0 .../fetchSystemDataSuccessfulResponse.ts | 0 .../mockDataGenerators.ts | 4 ++-- .../repositorySetupHelpers.ts | 2 +- 28 files changed, 46 insertions(+), 53 deletions(-) delete mode 100644 test/sum.test.ts rename {test/testHelpers => testHelpers}/apolloTestServerHelpers.ts (84%) rename {test/testHelpers => testHelpers}/assertAsyncCallbackThrowsApiResponseError.ts (73%) rename {test/testHelpers => testHelpers}/fetchMockHelpers.ts (100%) rename {test => testHelpers}/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData.ts (100%) rename {test => testHelpers}/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse.ts (100%) rename {test => testHelpers}/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse.ts (100%) rename {test => testHelpers}/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse.ts (100%) rename {test => testHelpers}/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse.ts (100%) rename {test => testHelpers}/jsonSnapshots/fetchSystemData/fetchSystemDataFailedResponse.ts (100%) rename {test => testHelpers}/jsonSnapshots/fetchSystemData/fetchSystemDataSuccessfulResponse.ts (100%) rename {test/testHelpers => testHelpers}/mockDataGenerators.ts (96%) rename {test/testHelpers => testHelpers}/repositorySetupHelpers.ts (92%) diff --git a/src/loaders/__tests__/TimedApiBasedRepositoryLoaderTests.test.ts b/src/loaders/__tests__/TimedApiBasedRepositoryLoaderTests.test.ts index de36bf2..fc94ad3 100644 --- a/src/loaders/__tests__/TimedApiBasedRepositoryLoaderTests.test.ts +++ b/src/loaders/__tests__/TimedApiBasedRepositoryLoaderTests.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeAll, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { TimedApiBasedRepositoryLoader } from "../TimedApiBasedRepositoryLoader"; -import { resetGlobalFetchMockJson } from "../../../test/testHelpers/fetchMockHelpers"; +import { resetGlobalFetchMockJson } from "../../../testHelpers/fetchMockHelpers"; import { UnoptimizedInMemoryShuttleRepository } from "../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; import { ApiBasedShuttleRepositoryLoader } from "../shuttle/ApiBasedShuttleRepositoryLoader"; diff --git a/src/loaders/parking/__tests__/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts b/src/loaders/parking/__tests__/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts index b5d434a..ebc33a8 100644 --- a/src/loaders/parking/__tests__/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts +++ b/src/loaders/parking/__tests__/ChapmanApiBasedParkingRepositoryLoaderTests.test.ts @@ -7,12 +7,12 @@ import { resetGlobalFetchMockJson, updateGlobalFetchMockJson, updateGlobalFetchMockJsonToThrowSyntaxError -} from "../../../../test/testHelpers/fetchMockHelpers"; +} from "../../../../testHelpers/fetchMockHelpers"; import { chapmanParkingStructureData -} from "../../../../test/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData"; +} from "../../../../testHelpers/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData"; import { IParkingStructure } from "../../../entities/ParkingRepositoryEntities"; -import { assertAsyncCallbackThrowsApiResponseError } from "../../../../test/testHelpers/assertAsyncCallbackThrowsApiResponseError"; +import { assertAsyncCallbackThrowsApiResponseError } from "../../../../testHelpers/assertAsyncCallbackThrowsApiResponseError"; describe("ChapmanApiBasedParkingRepositoryLoader", () => { let loader: ChapmanApiBasedParkingRepositoryLoader; diff --git a/src/loaders/shuttle/__tests__/ApiBasedShuttleRepositoryLoaderTests.test.ts b/src/loaders/shuttle/__tests__/ApiBasedShuttleRepositoryLoaderTests.test.ts index 85dd2f5..7770064 100644 --- a/src/loaders/shuttle/__tests__/ApiBasedShuttleRepositoryLoaderTests.test.ts +++ b/src/loaders/shuttle/__tests__/ApiBasedShuttleRepositoryLoaderTests.test.ts @@ -1,21 +1,21 @@ import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { ApiBasedShuttleRepositoryLoader } from "../ApiBasedShuttleRepositoryLoader"; import { UnoptimizedInMemoryShuttleRepository } from "../../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; -import { fetchRouteDataSuccessfulResponse } from "../../../../test/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse"; +import { fetchRouteDataSuccessfulResponse } from "../../../../testHelpers/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse"; import { fetchStopAndPolylineDataSuccessfulResponse -} from "../../../../test/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse"; -import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../../../test/testHelpers/mockDataGenerators"; +} from "../../../../testHelpers/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse"; +import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../../../testHelpers/mockDataGenerators"; import { fetchShuttleDataSuccessfulResponse -} from "../../../../test/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse"; -import { fetchEtaDataSuccessfulResponse } from "../../../../test/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse"; +} from "../../../../testHelpers/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse"; +import { fetchEtaDataSuccessfulResponse } from "../../../../testHelpers/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse"; import { resetGlobalFetchMockJson, updateGlobalFetchMockJson, updateGlobalFetchMockJsonToThrowSyntaxError -} from "../../../../test/testHelpers/fetchMockHelpers"; -import { assertAsyncCallbackThrowsApiResponseError } from "../../../../test/testHelpers/assertAsyncCallbackThrowsApiResponseError"; +} from "../../../../testHelpers/fetchMockHelpers"; +import { assertAsyncCallbackThrowsApiResponseError } from "../../../../testHelpers/assertAsyncCallbackThrowsApiResponseError"; describe("ApiBasedShuttleRepositoryLoader", () => { let loader: ApiBasedShuttleRepositoryLoader; diff --git a/src/notifications/schedulers/__tests__/ETANotificationSchedulerTests.test.ts b/src/notifications/schedulers/__tests__/ETANotificationSchedulerTests.test.ts index 1204632..7fc621f 100644 --- a/src/notifications/schedulers/__tests__/ETANotificationSchedulerTests.test.ts +++ b/src/notifications/schedulers/__tests__/ETANotificationSchedulerTests.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it, jest } from "@jest/globals"; import { ETANotificationScheduler } from "../ETANotificationScheduler"; import { UnoptimizedInMemoryShuttleRepository } from "../../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; import { IEta, IShuttle, IStop } from "../../../entities/ShuttleRepositoryEntities"; -import { addMockShuttleToRepository, addMockStopToRepository } from "../../../../test/testHelpers/repositorySetupHelpers"; +import { addMockShuttleToRepository, addMockStopToRepository } from "../../../../testHelpers/repositorySetupHelpers"; import { AppleNotificationSender } from "../../senders/AppleNotificationSender"; import { InMemoryNotificationRepository } from "../../../repositories/notifications/InMemoryNotificationRepository"; import { NotificationRepository } from "../../../repositories/notifications/NotificationRepository"; diff --git a/src/repositories/shuttle/__tests__/UnoptimizedInMemoryShuttleRepositoryTests.test.ts b/src/repositories/shuttle/__tests__/UnoptimizedInMemoryShuttleRepositoryTests.test.ts index d75d4ba..e9f1a80 100644 --- a/src/repositories/shuttle/__tests__/UnoptimizedInMemoryShuttleRepositoryTests.test.ts +++ b/src/repositories/shuttle/__tests__/UnoptimizedInMemoryShuttleRepositoryTests.test.ts @@ -6,7 +6,7 @@ import { generateMockRoutes, generateMockShuttles, generateMockStops, -} from "../../../../test/testHelpers/mockDataGenerators"; +} from "../../../../testHelpers/mockDataGenerators"; // For repositories created in the future, reuse core testing // logic from here and differentiate setup (e.g. creating mocks) diff --git a/src/resolvers/__tests__/EtaResolverTests.test.ts b/src/resolvers/__tests__/EtaResolverTests.test.ts index 60332cd..e6bbe20 100644 --- a/src/resolvers/__tests__/EtaResolverTests.test.ts +++ b/src/resolvers/__tests__/EtaResolverTests.test.ts @@ -1,11 +1,11 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; import { IEta, IShuttle, IStop } from "../../entities/ShuttleRepositoryEntities"; import { addMockEtaToRepository, addMockShuttleToRepository, addMockStopToRepository, -} from "../../../test/testHelpers/repositorySetupHelpers"; +} from "../../../testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); describe("EtaResolvers", () => { diff --git a/src/resolvers/__tests__/MutationResolverTests.test.ts b/src/resolvers/__tests__/MutationResolverTests.test.ts index 6d229e5..0428d72 100644 --- a/src/resolvers/__tests__/MutationResolverTests.test.ts +++ b/src/resolvers/__tests__/MutationResolverTests.test.ts @@ -1,9 +1,9 @@ import { describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; import { addMockShuttleToRepository, addMockStopToRepository, -} from "../../../test/testHelpers/repositorySetupHelpers"; +} from "../../../testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); import { NotificationInput } from "../../generated/graphql"; diff --git a/src/resolvers/__tests__/OrderedStopResolverTests.test.ts b/src/resolvers/__tests__/OrderedStopResolverTests.test.ts index 84eabaa..a124510 100644 --- a/src/resolvers/__tests__/OrderedStopResolverTests.test.ts +++ b/src/resolvers/__tests__/OrderedStopResolverTests.test.ts @@ -1,8 +1,8 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; import { IRoute, IStop } from "../../entities/ShuttleRepositoryEntities"; -import { generateMockOrderedStops, generateMockStops } from "../../../test/testHelpers/mockDataGenerators"; -import { addMockRouteToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; +import { generateMockOrderedStops, generateMockStops } from "../../../testHelpers/mockDataGenerators"; +import { addMockRouteToRepository } from "../../../testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); describe("OrderedStopResolvers", () => { diff --git a/src/resolvers/__tests__/ParkingStructureResolverTests.test.ts b/src/resolvers/__tests__/ParkingStructureResolverTests.test.ts index 7369a00..05676bf 100644 --- a/src/resolvers/__tests__/ParkingStructureResolverTests.test.ts +++ b/src/resolvers/__tests__/ParkingStructureResolverTests.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; import { InterchangeSystem } from "../../entities/InterchangeSystem"; -import { generateParkingStructures } from "../../../test/testHelpers/mockDataGenerators"; +import { generateParkingStructures } from "../../../testHelpers/mockDataGenerators"; import { HistoricalParkingAverageQueryInput } from "../../generated/graphql"; import assert = require("node:assert"); diff --git a/src/resolvers/__tests__/ParkingSystemResolverTests.test.ts b/src/resolvers/__tests__/ParkingSystemResolverTests.test.ts index e049fb2..26fb066 100644 --- a/src/resolvers/__tests__/ParkingSystemResolverTests.test.ts +++ b/src/resolvers/__tests__/ParkingSystemResolverTests.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { generateParkingStructures } from "../../../test/testHelpers/mockDataGenerators"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { generateParkingStructures } from "../../../testHelpers/mockDataGenerators"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; import { InterchangeSystem } from "../../entities/InterchangeSystem"; import assert = require("node:assert"); diff --git a/src/resolvers/__tests__/QueryResolverTests.test.ts b/src/resolvers/__tests__/QueryResolverTests.test.ts index 0f6d942..5d832af 100644 --- a/src/resolvers/__tests__/QueryResolverTests.test.ts +++ b/src/resolvers/__tests__/QueryResolverTests.test.ts @@ -3,9 +3,9 @@ import { buildSystemForTesting, setupTestServerContext, setupTestServerHolder -} from "../../../test/testHelpers/apolloTestServerHelpers"; +} from "../../../testHelpers/apolloTestServerHelpers"; import assert = require("node:assert"); -import { addMockShuttleToRepository, addMockStopToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; +import { addMockShuttleToRepository, addMockStopToRepository } from "../../../testHelpers/repositorySetupHelpers"; import { ScheduledNotification } from "../../repositories/notifications/NotificationRepository"; // See Apollo documentation for integration test guide diff --git a/src/resolvers/__tests__/RouteResolverTests.test.ts b/src/resolvers/__tests__/RouteResolverTests.test.ts index 0f21a9f..5e59b32 100644 --- a/src/resolvers/__tests__/RouteResolverTests.test.ts +++ b/src/resolvers/__tests__/RouteResolverTests.test.ts @@ -1,10 +1,10 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; import { addMockRouteToRepository, addMockStopToRepository -} from "../../../test/testHelpers/repositorySetupHelpers"; -import { generateMockOrderedStops, generateMockShuttles } from "../../../test/testHelpers/mockDataGenerators"; +} from "../../../testHelpers/repositorySetupHelpers"; +import { generateMockOrderedStops, generateMockShuttles } from "../../../testHelpers/mockDataGenerators"; import { IRoute, IStop } from "../../entities/ShuttleRepositoryEntities"; import assert = require("node:assert"); import { InterchangeSystem } from "../../entities/InterchangeSystem"; diff --git a/src/resolvers/__tests__/ShuttleResolverTests.test.ts b/src/resolvers/__tests__/ShuttleResolverTests.test.ts index 6c32ac4..7f7ec32 100644 --- a/src/resolvers/__tests__/ShuttleResolverTests.test.ts +++ b/src/resolvers/__tests__/ShuttleResolverTests.test.ts @@ -1,8 +1,8 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { generateMockEtas, generateMockRoutes } from "../../../test/testHelpers/mockDataGenerators"; +import { generateMockEtas, generateMockRoutes } from "../../../testHelpers/mockDataGenerators"; import { IShuttle } from "../../entities/ShuttleRepositoryEntities"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; -import { addMockShuttleToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; +import { addMockShuttleToRepository } from "../../../testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); import { InterchangeSystem } from "../../entities/InterchangeSystem"; diff --git a/src/resolvers/__tests__/StopResolverTests.test.ts b/src/resolvers/__tests__/StopResolverTests.test.ts index 2ae4a9f..6337e1f 100644 --- a/src/resolvers/__tests__/StopResolverTests.test.ts +++ b/src/resolvers/__tests__/StopResolverTests.test.ts @@ -2,10 +2,10 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; import { setupTestServerContext, setupTestServerHolder -} from "../../../test/testHelpers/apolloTestServerHelpers"; -import { generateMockEtas, generateMockOrderedStops } from "../../../test/testHelpers/mockDataGenerators"; +} from "../../../testHelpers/apolloTestServerHelpers"; +import { generateMockEtas, generateMockOrderedStops } from "../../../testHelpers/mockDataGenerators"; import { IStop } from "../../entities/ShuttleRepositoryEntities"; -import { addMockStopToRepository } from "../../../test/testHelpers/repositorySetupHelpers"; +import { addMockStopToRepository } from "../../../testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); describe("StopResolvers", () => { diff --git a/src/resolvers/__tests__/SystemResolverTests.test.ts b/src/resolvers/__tests__/SystemResolverTests.test.ts index 115df77..b4e4827 100644 --- a/src/resolvers/__tests__/SystemResolverTests.test.ts +++ b/src/resolvers/__tests__/SystemResolverTests.test.ts @@ -1,16 +1,16 @@ import { beforeEach, describe, expect, it } from "@jest/globals"; -import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers"; +import { setupTestServerContext, setupTestServerHolder } from "../../../testHelpers/apolloTestServerHelpers"; import { generateMockRoutes, generateMockShuttles, generateMockStops, generateParkingStructures -} from "../../../test/testHelpers/mockDataGenerators"; +} from "../../../testHelpers/mockDataGenerators"; import { addMockRouteToRepository, addMockShuttleToRepository, addMockStopToRepository, -} from "../../../test/testHelpers/repositorySetupHelpers"; +} from "../../../testHelpers/repositorySetupHelpers"; import assert = require("node:assert"); import { InterchangeSystem } from "../../entities/InterchangeSystem"; diff --git a/test/sum.test.ts b/test/sum.test.ts deleted file mode 100644 index 5643f10..0000000 --- a/test/sum.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { describe, expect, test } from "@jest/globals"; - -describe("sum", () => { - test("adds 1 + 2 to equal 3", () => { - expect(1 + 2).toBe(3); - }); -}); \ No newline at end of file diff --git a/test/testHelpers/apolloTestServerHelpers.ts b/testHelpers/apolloTestServerHelpers.ts similarity index 84% rename from test/testHelpers/apolloTestServerHelpers.ts rename to testHelpers/apolloTestServerHelpers.ts index c367e3b..ea192c2 100644 --- a/test/testHelpers/apolloTestServerHelpers.ts +++ b/testHelpers/apolloTestServerHelpers.ts @@ -1,12 +1,12 @@ import { readFileSync } from "fs"; import { ApolloServer } from "@apollo/server"; -import { MergedResolvers } from "../../src/MergedResolvers"; +import { MergedResolvers } from "../src/MergedResolvers"; import { beforeEach } from "@jest/globals"; -import { ServerContext } from "../../src/ServerContext"; -import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; +import { ServerContext } from "../src/ServerContext"; +import { InterchangeSystem } from "../src/entities/InterchangeSystem"; import { ChapmanApiBasedParkingRepositoryLoader -} from "../../src/loaders/parking/ChapmanApiBasedParkingRepositoryLoader"; +} from "../src/loaders/parking/ChapmanApiBasedParkingRepositoryLoader"; function setUpTestServer() { diff --git a/test/testHelpers/assertAsyncCallbackThrowsApiResponseError.ts b/testHelpers/assertAsyncCallbackThrowsApiResponseError.ts similarity index 73% rename from test/testHelpers/assertAsyncCallbackThrowsApiResponseError.ts rename to testHelpers/assertAsyncCallbackThrowsApiResponseError.ts index d1107a9..cb9f09f 100644 --- a/test/testHelpers/assertAsyncCallbackThrowsApiResponseError.ts +++ b/testHelpers/assertAsyncCallbackThrowsApiResponseError.ts @@ -1,5 +1,5 @@ import { expect } from "@jest/globals"; -import { ApiResponseError } from "../../src/loaders/ApiResponseError"; +import { ApiResponseError } from "../src/loaders/ApiResponseError"; export async function assertAsyncCallbackThrowsApiResponseError(callback: () => Promise) { await expect(callback).rejects.toThrow(ApiResponseError); diff --git a/test/testHelpers/fetchMockHelpers.ts b/testHelpers/fetchMockHelpers.ts similarity index 100% rename from test/testHelpers/fetchMockHelpers.ts rename to testHelpers/fetchMockHelpers.ts diff --git a/test/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData.ts b/testHelpers/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData.ts similarity index 100% rename from test/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData.ts rename to testHelpers/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData.ts diff --git a/test/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse.ts b/testHelpers/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse.ts similarity index 100% rename from test/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse.ts rename to testHelpers/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse.ts diff --git a/test/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse.ts b/testHelpers/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse.ts similarity index 100% rename from test/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse.ts rename to testHelpers/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse.ts diff --git a/test/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse.ts b/testHelpers/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse.ts similarity index 100% rename from test/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse.ts rename to testHelpers/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse.ts diff --git a/test/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse.ts b/testHelpers/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse.ts similarity index 100% rename from test/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse.ts rename to testHelpers/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse.ts diff --git a/test/jsonSnapshots/fetchSystemData/fetchSystemDataFailedResponse.ts b/testHelpers/jsonSnapshots/fetchSystemData/fetchSystemDataFailedResponse.ts similarity index 100% rename from test/jsonSnapshots/fetchSystemData/fetchSystemDataFailedResponse.ts rename to testHelpers/jsonSnapshots/fetchSystemData/fetchSystemDataFailedResponse.ts diff --git a/test/jsonSnapshots/fetchSystemData/fetchSystemDataSuccessfulResponse.ts b/testHelpers/jsonSnapshots/fetchSystemData/fetchSystemDataSuccessfulResponse.ts similarity index 100% rename from test/jsonSnapshots/fetchSystemData/fetchSystemDataSuccessfulResponse.ts rename to testHelpers/jsonSnapshots/fetchSystemData/fetchSystemDataSuccessfulResponse.ts diff --git a/test/testHelpers/mockDataGenerators.ts b/testHelpers/mockDataGenerators.ts similarity index 96% rename from test/testHelpers/mockDataGenerators.ts rename to testHelpers/mockDataGenerators.ts index dea9037..99407df 100644 --- a/test/testHelpers/mockDataGenerators.ts +++ b/testHelpers/mockDataGenerators.ts @@ -1,5 +1,5 @@ -import { IEta, IOrderedStop, IRoute, IShuttle, IStop } from "../../src/entities/ShuttleRepositoryEntities"; -import { IParkingStructure } from "../../src/entities/ParkingRepositoryEntities"; +import { IEta, IOrderedStop, IRoute, IShuttle, IStop } from "../src/entities/ShuttleRepositoryEntities"; +import { IParkingStructure } from "../src/entities/ParkingRepositoryEntities"; // Use a single set of generators in case any of the // interfaces change in the future diff --git a/test/testHelpers/repositorySetupHelpers.ts b/testHelpers/repositorySetupHelpers.ts similarity index 92% rename from test/testHelpers/repositorySetupHelpers.ts rename to testHelpers/repositorySetupHelpers.ts index c262ab1..54c5b7e 100644 --- a/test/testHelpers/repositorySetupHelpers.ts +++ b/testHelpers/repositorySetupHelpers.ts @@ -4,7 +4,7 @@ import { generateMockShuttles, generateMockStops, } from "./mockDataGenerators"; -import { ShuttleGetterSetterRepository } from "../../src/repositories/shuttle/ShuttleGetterSetterRepository"; +import { ShuttleGetterSetterRepository } from "../src/repositories/shuttle/ShuttleGetterSetterRepository"; export async function addMockRouteToRepository(repository: ShuttleGetterSetterRepository, systemId: string) { const mockRoutes = generateMockRoutes(); From b745d58ce0a41079f12da2532626877846a4ba1b Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Thu, 31 Jul 2025 22:49:36 -0400 Subject: [PATCH 3/4] Ensure that test and mock directories are excluded when compiling --- tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index e09cfff..dfc1303 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,5 +9,6 @@ "outDir": "dist", "sourceMap": true }, - "include": ["src"] + "include": ["src"], + "exclude": ["**/__tests__/*/**", "**/__mocks__/*/**"] } From 7063f79647b9eaded4cb45f881e0f2e133f39922 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Fri, 1 Aug 2025 17:19:33 -0700 Subject: [PATCH 4/4] Fix the critical security vulnerability --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d2476b8..9c2e0a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4566,9 +4566,9 @@ } }, "node_modules/form-data": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", - "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8",