Skip to content

Commit 925b72a

Browse files
committed
Merge branch 'main' into refactor-randomize-test-users-and-db
1 parent e5e0204 commit 925b72a

29 files changed

+245
-138
lines changed

packages/backend/.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ TOKEN_GCAL_NOTIFICATION=ANOTHER_UNIQUE_STRING
2828
####################################################
2929
# 2. Database #
3030
####################################################
31+
MONGOMS_VERSION=8.0.9 # pins the test mongo server binary version
3132
MONGO_URI=mongodb+srv://admin:YOUR_ADMIN_PW@cluster0.m99yy.mongodb.net/dev_calendar?authSource=admin&retryWrites=true&w=majority&tls=true
3233

3334

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
11
import { mockNodeModules } from "@backend/__tests__/helpers/mock.setup";
22

3+
jest.mock("@core/logger/winston.logger", () => {
4+
const mockLogger = {
5+
debug: jest.fn(),
6+
info: jest.fn(),
7+
warn: jest.fn(),
8+
error: jest.fn(),
9+
verbose: jest.fn(),
10+
};
11+
12+
return {
13+
Logger: jest.fn().mockImplementation(() => mockLogger),
14+
};
15+
});
16+
317
mockNodeModules();
418

519
afterAll(() => jest.clearAllMocks());

packages/backend/src/__tests__/helpers/mock.db.setup.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import mongoService from "@backend/common/services/mongo.service";
77
export async function setupTestDb(): Promise<void> {
88
try {
99
await mongoService.start(true);
10-
11-
console.log(mongoService.db.databaseName, "database started");
1210
} catch (err) {
1311
const error = err as Error;
1412

@@ -35,10 +33,10 @@ export async function cleanupCollections(): Promise<void> {
3533
);
3634
}
3735

38-
export async function cleanupTestMongo(): Promise<void> {
36+
export async function cleanupTestDb(): Promise<void> {
3937
try {
4038
await mongoService.stop();
4139
} catch (err) {
42-
console.error("Error during cleanup:", err);
40+
console.error("Error during test db cleanup:", err);
4341
}
4442
}

packages/backend/src/event/services/event.delete.test.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
import dayjs from "dayjs";
22
import { Collection, ObjectId } from "mongodb";
3-
import { YEAR_MONTH_DAY_FORMAT } from "@core/constants/date.constants";
4-
import { Schema_Event } from "@core/types/event.types";
53
import {
64
mockSomedayRecurrences,
75
newsletterId,
8-
} from "../../../../core/src/__mocks__/v1/events/events.someday.recur";
6+
} from "@core/__mocks__/v1/events/events.someday.recur";
7+
import { YEAR_MONTH_DAY_FORMAT } from "@core/constants/date.constants";
8+
import { Schema_Event } from "@core/types/event.types";
99
import {
10-
cleanupTestMongo,
10+
cleanupTestDb,
1111
setupTestDb,
12-
} from "../../__tests__/helpers/mock.db.setup";
13-
import mongoService from "../../common/services/mongo.service";
14-
import { getDeleteByIdFilter } from "./event.service.util";
12+
} from "@backend/__tests__/helpers/mock.db.setup";
13+
import mongoService from "@backend/common/services/mongo.service";
14+
import { getDeleteByIdFilter } from "@backend/event/services/event.service.util";
1515

1616
describe("Delete Events", () => {
1717
let eventCollection: Collection<Schema_Event>;
1818

1919
beforeAll(async () => {
2020
await setupTestDb();
21+
2122
eventCollection = mongoService.db.collection("event.delete.test");
2223
});
2324

@@ -26,7 +27,7 @@ describe("Delete Events", () => {
2627
await eventCollection.insertMany([...mockSomedayRecurrences]);
2728
});
2829

29-
afterAll(cleanupTestMongo);
30+
afterAll(cleanupTestDb);
3031

3132
describe("Recurring events: someday", () => {
3233
it("only deletes future instances", async () => {

packages/backend/src/event/services/event.find.allday.test.ts

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,31 @@
1-
import { Collection, Filter } from "mongodb";
1+
import { Filter } from "mongodb";
2+
import { mockEventSetMar22 } from "@core/__mocks__/v1/events/events.22mar";
23
import { Schema_Event } from "@core/types/event.types";
3-
import { mockEventSetMar22 } from "../../../../core/src/__mocks__/v1/events/events.22mar";
44
import {
5-
cleanupTestMongo,
5+
cleanupTestDb,
66
setupTestDb,
7-
} from "../../__tests__/helpers/mock.db.setup";
8-
import mongoService from "../../common/services/mongo.service";
9-
import { getReadAllFilter } from "./event.service.util";
7+
} from "@backend/__tests__/helpers/mock.db.setup";
8+
import mongoService from "@backend/common/services/mongo.service";
9+
import { getReadAllFilter } from "@backend/event/services/event.service.util";
1010

1111
describe("Mar 6 - 12, 2022: All-Day Events", () => {
12-
let eventCollection: Collection<Schema_Event>;
1312
let filter: Filter<Schema_Event>;
1413
let titles: string[];
1514

1615
beforeAll(async () => {
1716
await setupTestDb();
1817

19-
eventCollection = mongoService.event;
20-
21-
await eventCollection.insertMany(mockEventSetMar22);
18+
await mongoService.event.insertMany(mockEventSetMar22);
2219

2320
filter = getReadAllFilter("user1", {
2421
start: "2022-03-06T00:00:00-07:00",
2522
end: "2022-03-12T23:59:59-07:00",
2623
});
27-
const result = await eventCollection.find(filter).toArray();
24+
const result = await mongoService.event.find(filter).toArray();
2825
titles = result.map((e) => e.title);
2926
});
3027

31-
afterAll(cleanupTestMongo);
28+
afterAll(cleanupTestDb);
3229

3330
it("finds overlapping multi-week event", async () => {
3431
expect(titles.includes("Feb 14 - Mar 8")).toBe(true);

packages/backend/src/event/services/event.find.test.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import { Collection, Filter } from "mongodb";
2+
import { mockEventSetJan22 } from "@core/__mocks__/v1/events/events.22jan";
3+
import { mockEventSetSomeday1 } from "@core/__mocks__/v1/events/events.someday.1";
24
import { MapEvent } from "@core/mappers/map.event";
35
import { Schema_Event } from "@core/types/event.types";
46
import { isBase, isExistingInstance } from "@core/util/event/event.util";
7+
import {
8+
cleanupTestDb,
9+
setupTestDb,
10+
} from "@backend/__tests__/helpers/mock.db.setup";
511
import {
612
mockRecurringGcalBaseEvent,
713
mockRecurringGcalInstances,
814
} from "@backend/__tests__/mocks.gcal/factories/gcal.event.factory";
9-
import { mockEventSetJan22 } from "../../../../core/src/__mocks__/v1/events/events.22jan";
10-
import { mockEventSetSomeday1 } from "../../../../core/src/__mocks__/v1/events/events.someday.1";
11-
import {
12-
cleanupTestMongo,
13-
setupTestDb,
14-
} from "../../__tests__/helpers/mock.db.setup";
15-
import mongoService from "../../common/services/mongo.service";
16-
import { getReadAllFilter } from "./event.service.util";
15+
import mongoService from "@backend/common/services/mongo.service";
16+
import { getReadAllFilter } from "@backend/event/services/event.service.util";
1717

1818
const gBase = mockRecurringGcalBaseEvent();
1919
const gInstances = mockRecurringGcalInstances(gBase, 10, 7);
@@ -43,7 +43,7 @@ describe("Jan 2022: Many Formats", () => {
4343
await eventCollection.insertMany(allEvents);
4444
});
4545

46-
afterAll(cleanupTestMongo);
46+
afterAll(cleanupTestDb);
4747

4848
it("returns events by provided user only", async () => {
4949
const filter = getReadAllFilter("user1", {

packages/backend/src/servers/websocket/websocket.server.test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
/**
2+
* @jest-environment node
3+
*
4+
* we do not need the database for this test
5+
*/
16
import { randomUUID } from "node:crypto";
27
import { updateUserMetadata } from "supertokens-node/recipe/usermetadata";
38
import {
@@ -9,9 +14,9 @@ import {
914
} from "@core/constants/websocket.constants";
1015
import { UserMetadata } from "@core/types/user.types";
1116
import { BaseDriver } from "@backend/__tests__/drivers/base.driver";
17+
import { GenericError } from "@backend/common/errors/generic/generic.errors";
18+
import { error } from "@backend/common/errors/handlers/error.handler";
1219
import { webSocketServer } from "@backend/servers/websocket/websocket.server";
13-
import { GenericError } from "../../common/errors/generic/generic.errors";
14-
import { error } from "../../common/errors/handlers/error.handler";
1520

1621
describe("WebSocket Server", () => {
1722
const baseDriver = new BaseDriver();

packages/backend/src/sync/controllers/sync.controller.test.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
} from "@backend/__tests__/helpers/mock.db.queries";
1717
import {
1818
cleanupCollections,
19-
cleanupTestMongo,
19+
cleanupTestDb,
2020
setupTestDb,
2121
} from "@backend/__tests__/helpers/mock.db.setup";
2222
import { waitUntilEvent } from "@backend/common/helpers/common.util";
@@ -59,8 +59,6 @@ describe("SyncController", () => {
5959

6060
if (waitForEventChanged) expect(eventChanged?.status).toEqual("fulfilled");
6161

62-
console.log(eventChanged);
63-
6462
return { user, websocketClient };
6563
}
6664

@@ -74,7 +72,7 @@ describe("SyncController", () => {
7472

7573
afterAll(async () => {
7674
await baseDriver.teardown();
77-
await cleanupTestMongo();
75+
await cleanupTestDb();
7876
jest.clearAllMocks();
7977
});
8078

@@ -394,7 +392,7 @@ describe("SyncController", () => {
394392
});
395393

396394
describe("Frontend Notifications", () => {
397-
beforeEach(() => cleanupCollections());
395+
beforeEach(cleanupCollections);
398396

399397
it("should notify the frontend that the import has started", async () => {
400398
const user = await UserDriver.createUser();

packages/backend/src/sync/services/import/sync.import.full.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
import { isBase, isExistingInstance } from "@core/util/event/event.util";
2+
import { UtilDriver } from "@backend/__tests__/drivers/util.driver";
23
import {
34
getCategorizedEventsInDb,
45
getEventsInDb,
56
} from "@backend/__tests__/helpers/mock.db.queries";
67
import {
78
cleanupCollections,
8-
cleanupTestMongo,
9+
cleanupTestDb,
910
setupTestDb,
1011
} from "@backend/__tests__/helpers/mock.db.setup";
11-
import { UtilDriver } from "../../../__tests__/drivers/util.driver";
12-
import { createSyncImport } from "./sync.import";
12+
import { createSyncImport } from "@backend/sync/services/import/sync.import";
1313

1414
describe("SyncImport: Full", () => {
1515
beforeAll(setupTestDb);
1616

1717
beforeEach(cleanupCollections);
1818

19-
afterAll(cleanupTestMongo);
19+
afterAll(cleanupTestDb);
2020

2121
it("should import the first instance of a recurring event (and the base)", async () => {
2222
const { user } = await UtilDriver.setupTestUser();

packages/backend/src/sync/services/import/sync.import.series.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
} from "@core/util/event/event.util";
66
import {
77
cleanupCollections,
8-
cleanupTestMongo,
8+
cleanupTestDb,
99
setupTestDb,
1010
} from "@backend/__tests__/helpers/mock.db.setup";
1111
import { mockRecurringGcalBaseEvent } from "@backend/__tests__/mocks.gcal/factories/gcal.event.factory";
@@ -18,7 +18,7 @@ describe("SyncImport: Series", () => {
1818

1919
beforeEach(cleanupCollections);
2020

21-
afterAll(cleanupTestMongo);
21+
afterAll(cleanupTestDb);
2222

2323
it("should import a series when provided a gcal base event", async () => {
2424
/* Assemble */

0 commit comments

Comments
 (0)