Move all tests to subdirectories underneath code to be tested

This commit is contained in:
2025-07-31 22:35:49 -04:00
parent 0fd8de13f9
commit b7299b8359
20 changed files with 79 additions and 79 deletions

View File

@@ -1,8 +1,8 @@
import { afterEach, beforeAll, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { afterEach, beforeAll, beforeEach, describe, expect, it, jest } from "@jest/globals";
import { TimedApiBasedRepositoryLoader } from "../../src/loaders/TimedApiBasedRepositoryLoader"; import { TimedApiBasedRepositoryLoader } from "../TimedApiBasedRepositoryLoader";
import { resetGlobalFetchMockJson } from "../testHelpers/fetchMockHelpers"; import { resetGlobalFetchMockJson } from "../../../test/testHelpers/fetchMockHelpers";
import { UnoptimizedInMemoryShuttleRepository } from "../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; import { UnoptimizedInMemoryShuttleRepository } from "../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository";
import { ApiBasedShuttleRepositoryLoader } from "../../src/loaders/shuttle/ApiBasedShuttleRepositoryLoader"; import { ApiBasedShuttleRepositoryLoader } from "../shuttle/ApiBasedShuttleRepositoryLoader";
describe("TimedApiBasedRepositoryLoader", () => { describe("TimedApiBasedRepositoryLoader", () => {
let timedLoader: TimedApiBasedRepositoryLoader; let timedLoader: TimedApiBasedRepositoryLoader;

View File

@@ -1,18 +1,18 @@
import { beforeEach, describe, expect, it, jest } from "@jest/globals"; import { beforeEach, describe, expect, it, jest } from "@jest/globals";
import { import {
ChapmanApiBasedParkingRepositoryLoader ChapmanApiBasedParkingRepositoryLoader
} from "../../../src/loaders/parking/ChapmanApiBasedParkingRepositoryLoader"; } from "../ChapmanApiBasedParkingRepositoryLoader";
import { InMemoryParkingRepository } from "../../../src/repositories/parking/InMemoryParkingRepository"; import { InMemoryParkingRepository } from "../../../repositories/parking/InMemoryParkingRepository";
import { import {
resetGlobalFetchMockJson, resetGlobalFetchMockJson,
updateGlobalFetchMockJson, updateGlobalFetchMockJson,
updateGlobalFetchMockJsonToThrowSyntaxError updateGlobalFetchMockJsonToThrowSyntaxError
} from "../../testHelpers/fetchMockHelpers"; } from "../../../../test/testHelpers/fetchMockHelpers";
import { import {
chapmanParkingStructureData chapmanParkingStructureData
} from "../../jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData"; } from "../../../../test/jsonSnapshots/chapmanParkingStructureData/chapmanParkingStructureData";
import { IParkingStructure } from "../../../src/entities/ParkingRepositoryEntities"; import { IParkingStructure } from "../../../entities/ParkingRepositoryEntities";
import { assertAsyncCallbackThrowsApiResponseError } from "../../testHelpers/assertAsyncCallbackThrowsApiResponseError"; import { assertAsyncCallbackThrowsApiResponseError } from "../../../../test/testHelpers/assertAsyncCallbackThrowsApiResponseError";
describe("ChapmanApiBasedParkingRepositoryLoader", () => { describe("ChapmanApiBasedParkingRepositoryLoader", () => {
let loader: ChapmanApiBasedParkingRepositoryLoader; let loader: ChapmanApiBasedParkingRepositoryLoader;

View File

@@ -1,21 +1,21 @@
import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals";
import { ApiBasedShuttleRepositoryLoader } from "../../../src/loaders/shuttle/ApiBasedShuttleRepositoryLoader"; import { ApiBasedShuttleRepositoryLoader } from "../ApiBasedShuttleRepositoryLoader";
import { UnoptimizedInMemoryShuttleRepository } from "../../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; import { UnoptimizedInMemoryShuttleRepository } from "../../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository";
import { fetchRouteDataSuccessfulResponse } from "../../jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse"; import { fetchRouteDataSuccessfulResponse } from "../../../../test/jsonSnapshots/fetchRouteData/fetchRouteDataSuccessfulResponse";
import { import {
fetchStopAndPolylineDataSuccessfulResponse fetchStopAndPolylineDataSuccessfulResponse
} from "../../jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse"; } from "../../../../test/jsonSnapshots/fetchStopAndPolylineData/fetchStopAndPolylineDataSuccessfulResponse";
import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../testHelpers/mockDataGenerators"; import { generateMockRoutes, generateMockShuttles, generateMockStops } from "../../../../test/testHelpers/mockDataGenerators";
import { import {
fetchShuttleDataSuccessfulResponse fetchShuttleDataSuccessfulResponse
} from "../../jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse"; } from "../../../../test/jsonSnapshots/fetchShuttleData/fetchShuttleDataSuccessfulResponse";
import { fetchEtaDataSuccessfulResponse } from "../../jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse"; import { fetchEtaDataSuccessfulResponse } from "../../../../test/jsonSnapshots/fetchEtaData/fetchEtaDataSuccessfulResponse";
import { import {
resetGlobalFetchMockJson, resetGlobalFetchMockJson,
updateGlobalFetchMockJson, updateGlobalFetchMockJson,
updateGlobalFetchMockJsonToThrowSyntaxError updateGlobalFetchMockJsonToThrowSyntaxError
} from "../../testHelpers/fetchMockHelpers"; } from "../../../../test/testHelpers/fetchMockHelpers";
import { assertAsyncCallbackThrowsApiResponseError } from "../../testHelpers/assertAsyncCallbackThrowsApiResponseError"; import { assertAsyncCallbackThrowsApiResponseError } from "../../../../test/testHelpers/assertAsyncCallbackThrowsApiResponseError";
describe("ApiBasedShuttleRepositoryLoader", () => { describe("ApiBasedShuttleRepositoryLoader", () => {
let loader: ApiBasedShuttleRepositoryLoader; let loader: ApiBasedShuttleRepositoryLoader;

View File

@@ -1,14 +1,14 @@
import { beforeEach, describe, expect, it, jest } from "@jest/globals"; import { beforeEach, describe, expect, it, jest } from "@jest/globals";
import { ETANotificationScheduler } from "../../../src/notifications/schedulers/ETANotificationScheduler"; import { ETANotificationScheduler } from "../ETANotificationScheduler";
import { UnoptimizedInMemoryShuttleRepository } from "../../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; import { UnoptimizedInMemoryShuttleRepository } from "../../../repositories/shuttle/UnoptimizedInMemoryShuttleRepository";
import { IEta, IShuttle, IStop } from "../../../src/entities/ShuttleRepositoryEntities"; import { IEta, IShuttle, IStop } from "../../../entities/ShuttleRepositoryEntities";
import { addMockShuttleToRepository, addMockStopToRepository } from "../../testHelpers/repositorySetupHelpers"; import { addMockShuttleToRepository, addMockStopToRepository } from "../../../../test/testHelpers/repositorySetupHelpers";
import { AppleNotificationSender } from "../../../src/notifications/senders/AppleNotificationSender"; import { AppleNotificationSender } from "../../senders/AppleNotificationSender";
import { InMemoryNotificationRepository } from "../../../src/repositories/notifications/InMemoryNotificationRepository"; import { InMemoryNotificationRepository } from "../../../repositories/notifications/InMemoryNotificationRepository";
import { NotificationRepository } from "../../../src/repositories/notifications/NotificationRepository"; import { NotificationRepository } from "../../../repositories/notifications/NotificationRepository";
jest.mock("http2"); jest.mock("http2");
jest.mock("../../../src/notifications/senders/AppleNotificationSender"); jest.mock("../../senders/AppleNotificationSender");
const MockAppleNotificationSender = AppleNotificationSender as jest.MockedClass<typeof AppleNotificationSender>; const MockAppleNotificationSender = AppleNotificationSender as jest.MockedClass<typeof AppleNotificationSender>;

View File

@@ -4,7 +4,7 @@ import { EventEmitter } from "node:events";
import { import {
AppleNotificationSender, AppleNotificationSender,
NotificationAlertArguments NotificationAlertArguments
} from "../../../src/notifications/senders/AppleNotificationSender"; } from "../AppleNotificationSender";
import { ClientHttp2Session } from "node:http2"; import { ClientHttp2Session } from "node:http2";
jest.mock("http2"); jest.mock("http2");

View File

@@ -1,7 +1,7 @@
import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals";
import { InMemoryNotificationRepository } from "../../src/repositories/notifications/InMemoryNotificationRepository"; import { InMemoryNotificationRepository } from "../InMemoryNotificationRepository";
import { NotificationEvent, NotificationRepository } from "../../src/repositories/notifications/NotificationRepository"; import { NotificationEvent, NotificationRepository } from "../NotificationRepository";
import { RedisNotificationRepository } from "../../src/repositories/notifications/RedisNotificationRepository"; import { RedisNotificationRepository } from "../RedisNotificationRepository";
interface RepositoryHolder { interface RepositoryHolder {
name: string; name: string;

View File

@@ -1,9 +1,9 @@
import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals";
import { InMemoryParkingRepository, } from "../../src/repositories/parking/InMemoryParkingRepository"; import { InMemoryParkingRepository, } from "../InMemoryParkingRepository";
import { IParkingStructure } from "../../src/entities/ParkingRepositoryEntities"; import { IParkingStructure } from "../../../entities/ParkingRepositoryEntities";
import { HistoricalParkingAverageQueryArguments } from "../../src/repositories/parking/ParkingGetterRepository"; import { HistoricalParkingAverageQueryArguments } from "../ParkingGetterRepository";
import { ParkingGetterSetterRepository } from "../../src/repositories/parking/ParkingGetterSetterRepository"; import { ParkingGetterSetterRepository } from "../ParkingGetterSetterRepository";
import { RedisParkingRepository } from "../../src/repositories/parking/RedisParkingRepository"; import { RedisParkingRepository } from "../RedisParkingRepository";
interface RepositoryHolder { interface RepositoryHolder {
name: string; name: string;

View File

@@ -1,12 +1,12 @@
import { beforeEach, describe, expect, jest, test } from "@jest/globals"; import { beforeEach, describe, expect, jest, test } from "@jest/globals";
import { UnoptimizedInMemoryShuttleRepository } from "../../src/repositories/shuttle/UnoptimizedInMemoryShuttleRepository"; import { UnoptimizedInMemoryShuttleRepository } from "../UnoptimizedInMemoryShuttleRepository";
import { import {
generateMockEtas, generateMockEtas,
generateMockOrderedStops, generateMockOrderedStops,
generateMockRoutes, generateMockRoutes,
generateMockShuttles, generateMockShuttles,
generateMockStops, generateMockStops,
} from "../testHelpers/mockDataGenerators"; } from "../../../../test/testHelpers/mockDataGenerators";
// For repositories created in the future, reuse core testing // For repositories created in the future, reuse core testing
// logic from here and differentiate setup (e.g. creating mocks) // logic from here and differentiate setup (e.g. creating mocks)

View File

@@ -1,11 +1,11 @@
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { IEta, IShuttle, IStop } from "../../src/entities/ShuttleRepositoryEntities"; import { IEta, IShuttle, IStop } from "../../entities/ShuttleRepositoryEntities";
import { import {
addMockEtaToRepository, addMockEtaToRepository,
addMockShuttleToRepository, addMockShuttleToRepository,
addMockStopToRepository, addMockStopToRepository,
} from "../testHelpers/repositorySetupHelpers"; } from "../../../test/testHelpers/repositorySetupHelpers";
import assert = require("node:assert"); import assert = require("node:assert");
describe("EtaResolvers", () => { describe("EtaResolvers", () => {

View File

@@ -1,11 +1,11 @@
import { describe, expect, it } from "@jest/globals"; import { describe, expect, it } from "@jest/globals";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { import {
addMockShuttleToRepository, addMockShuttleToRepository,
addMockStopToRepository, addMockStopToRepository,
} from "../testHelpers/repositorySetupHelpers"; } from "../../../test/testHelpers/repositorySetupHelpers";
import assert = require("node:assert"); import assert = require("node:assert");
import { NotificationInput } from "../../src/generated/graphql"; import { NotificationInput } from "../../generated/graphql";
describe("MutationResolvers", () => { describe("MutationResolvers", () => {
const holder = setupTestServerHolder() const holder = setupTestServerHolder()

View File

@@ -1,8 +1,8 @@
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { IRoute, IStop } from "../../src/entities/ShuttleRepositoryEntities"; import { IRoute, IStop } from "../../entities/ShuttleRepositoryEntities";
import { generateMockOrderedStops, generateMockStops } from "../testHelpers/mockDataGenerators"; import { generateMockOrderedStops, generateMockStops } from "../../../test/testHelpers/mockDataGenerators";
import { addMockRouteToRepository } from "../testHelpers/repositorySetupHelpers"; import { addMockRouteToRepository } from "../../../test/testHelpers/repositorySetupHelpers";
import assert = require("node:assert"); import assert = require("node:assert");
describe("OrderedStopResolvers", () => { describe("OrderedStopResolvers", () => {

View File

@@ -1,11 +1,11 @@
import { beforeEach, describe, expect, it, jest } from "@jest/globals"; import { beforeEach, describe, expect, it, jest } from "@jest/globals";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; import { InterchangeSystem } from "../../entities/InterchangeSystem";
import { generateParkingStructures } from "../testHelpers/mockDataGenerators"; import { generateParkingStructures } from "../../../test/testHelpers/mockDataGenerators";
import { HistoricalParkingAverageQueryInput } from "../../src/generated/graphql"; import { HistoricalParkingAverageQueryInput } from "../../generated/graphql";
import assert = require("node:assert"); import assert = require("node:assert");
jest.mock("../../src/environment"); jest.mock("../../environment");
describe("ParkingStructureResolver", () => { describe("ParkingStructureResolver", () => {
const holder = setupTestServerHolder(); const holder = setupTestServerHolder();

View File

@@ -1,7 +1,7 @@
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { generateParkingStructures } from "../testHelpers/mockDataGenerators"; import { generateParkingStructures } from "../../../test/testHelpers/mockDataGenerators";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; import { InterchangeSystem } from "../../entities/InterchangeSystem";
import assert = require("node:assert"); import assert = require("node:assert");

View File

@@ -3,10 +3,10 @@ import {
buildSystemForTesting, buildSystemForTesting,
setupTestServerContext, setupTestServerContext,
setupTestServerHolder setupTestServerHolder
} from "../testHelpers/apolloTestServerHelpers"; } from "../../../test/testHelpers/apolloTestServerHelpers";
import assert = require("node:assert"); import assert = require("node:assert");
import { addMockShuttleToRepository, addMockStopToRepository } from "../testHelpers/repositorySetupHelpers"; import { addMockShuttleToRepository, addMockStopToRepository } from "../../../test/testHelpers/repositorySetupHelpers";
import { ScheduledNotification } from "../../src/repositories/notifications/NotificationRepository"; import { ScheduledNotification } from "../../repositories/notifications/NotificationRepository";
// See Apollo documentation for integration test guide // See Apollo documentation for integration test guide
// https://www.apollographql.com/docs/apollo-server/testing/testing // https://www.apollographql.com/docs/apollo-server/testing/testing

View File

@@ -1,13 +1,13 @@
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { import {
addMockRouteToRepository, addMockRouteToRepository,
addMockStopToRepository addMockStopToRepository
} from "../testHelpers/repositorySetupHelpers"; } from "../../../test/testHelpers/repositorySetupHelpers";
import { generateMockOrderedStops, generateMockShuttles } from "../testHelpers/mockDataGenerators"; import { generateMockOrderedStops, generateMockShuttles } from "../../../test/testHelpers/mockDataGenerators";
import { IRoute, IStop } from "../../src/entities/ShuttleRepositoryEntities"; import { IRoute, IStop } from "../../entities/ShuttleRepositoryEntities";
import assert = require("node:assert"); import assert = require("node:assert");
import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; import { InterchangeSystem } from "../../entities/InterchangeSystem";
describe("RouteResolvers", () => { describe("RouteResolvers", () => {
const holder = setupTestServerHolder(); const holder = setupTestServerHolder();

View File

@@ -1,10 +1,10 @@
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { generateMockEtas, generateMockRoutes } from "../testHelpers/mockDataGenerators"; import { generateMockEtas, generateMockRoutes } from "../../../test/testHelpers/mockDataGenerators";
import { IShuttle } from "../../src/entities/ShuttleRepositoryEntities"; import { IShuttle } from "../../entities/ShuttleRepositoryEntities";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { addMockShuttleToRepository } from "../testHelpers/repositorySetupHelpers"; import { addMockShuttleToRepository } from "../../../test/testHelpers/repositorySetupHelpers";
import assert = require("node:assert"); import assert = require("node:assert");
import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; import { InterchangeSystem } from "../../entities/InterchangeSystem";
describe("ShuttleResolvers", () => { describe("ShuttleResolvers", () => {

View File

@@ -2,10 +2,10 @@ import { beforeEach, describe, expect, it } from "@jest/globals";
import { import {
setupTestServerContext, setupTestServerContext,
setupTestServerHolder setupTestServerHolder
} from "../testHelpers/apolloTestServerHelpers"; } from "../../../test/testHelpers/apolloTestServerHelpers";
import { generateMockEtas, generateMockOrderedStops } from "../testHelpers/mockDataGenerators"; import { generateMockEtas, generateMockOrderedStops } from "../../../test/testHelpers/mockDataGenerators";
import { IStop } from "../../src/entities/ShuttleRepositoryEntities"; import { IStop } from "../../entities/ShuttleRepositoryEntities";
import { addMockStopToRepository } from "../testHelpers/repositorySetupHelpers"; import { addMockStopToRepository } from "../../../test/testHelpers/repositorySetupHelpers";
import assert = require("node:assert"); import assert = require("node:assert");
describe("StopResolvers", () => { describe("StopResolvers", () => {

View File

@@ -1,18 +1,18 @@
import { beforeEach, describe, expect, it } from "@jest/globals"; import { beforeEach, describe, expect, it } from "@jest/globals";
import { setupTestServerContext, setupTestServerHolder } from "../testHelpers/apolloTestServerHelpers"; import { setupTestServerContext, setupTestServerHolder } from "../../../test/testHelpers/apolloTestServerHelpers";
import { import {
generateMockRoutes, generateMockRoutes,
generateMockShuttles, generateMockShuttles,
generateMockStops, generateMockStops,
generateParkingStructures generateParkingStructures
} from "../testHelpers/mockDataGenerators"; } from "../../../test/testHelpers/mockDataGenerators";
import { import {
addMockRouteToRepository, addMockRouteToRepository,
addMockShuttleToRepository, addMockShuttleToRepository,
addMockStopToRepository, addMockStopToRepository,
} from "../testHelpers/repositorySetupHelpers"; } from "../../../test/testHelpers/repositorySetupHelpers";
import assert = require("node:assert"); import assert = require("node:assert");
import { InterchangeSystem } from "../../src/entities/InterchangeSystem"; import { InterchangeSystem } from "../../entities/InterchangeSystem";
describe("SystemResolvers", () => { describe("SystemResolvers", () => {
const holder = setupTestServerHolder(); const holder = setupTestServerHolder();

View File

@@ -1,5 +1,5 @@
import { describe, expect, it } from "@jest/globals"; import { describe, expect, it } from "@jest/globals";
import { CircularQueue } from "../../src/types/CircularQueue"; import { CircularQueue } from "../CircularQueue";
interface TestItem { interface TestItem {
id: number; id: number;

View File

@@ -1,5 +1,5 @@
import { describe, expect, it } from "@jest/globals"; import { describe, expect, it } from "@jest/globals";
import { TupleKey } from "../../src/types/TupleKey"; import { TupleKey } from "../TupleKey";
describe("TupleKey", () => { describe("TupleKey", () => {
it("stores a value copy of the original tuple", () => { it("stores a value copy of the original tuple", () => {