Repository: SwitchbackTech/compass (ts)

Issue:
♻️ Refactor: Move compass mocks to `@core` package
### Feature Description

Moving these mocks to the core package will make it easier to isolate them from the backend and test them as independent utilities. The core package includes the schemas, so having the mocks (which are generated from the schemas) in the same location makes sense.

### Use Case

The backend should maintain mocks for google calendar, as those won't be exposed to the web client (the compass schema will)

### Additional Context

_No response_

Pull request description:
♻️ Refactor: Move mock utils to `@core`
Closes #367 by moving compass mocks and utilities to the `@core` package.

This pull request focuses on refactoring imports, reorganizing mock files, and updating dependencies to improve code maintainability and consistency. The changes include moving utility imports to a more centralized location, renaming and reorganizing mock files for better clarity, and updating the `package.json` file to include a new development dependency.

### Refactoring imports:

* Consolidated utility imports like `isBase`, `isExistingInstance`, and `categorizeRecurringEvents` under the `@core/util/event/event.util` module, replacing their previous scattered locations in `@backend/event/util/event.util`. [[1]](diffhunk://#diff-8b6586757e9f3e53e70f5daf6fc6c6367ddd9f19b8c18d099e40eb783cab250bR10-L11) [[2]](diffhunk://#diff-576321f57f33618cd890bd32528caaace86e6d3f698835756789a81845e48c01R1-R4) [[3]](diffhunk://#diff-6a6368e54fd4ea9da9158798c3e2cf5dc4b0d2c38533c2fa0ebf5e5e5d8b4832R15) [[4]](diffhunk://#diff-549d5ae97a0eb5da9878e5a543efb74bea358ca8562f08795cefb806cf21923aR16)

### Reorganizing mock files:

* Renamed `packages/backend/src/__tests__/mocks.ccal/ccal.mock.db.util.ts` to `packages/backend/src/__tests__/mocks.db/ccal.mock.db.util.ts` for better alignment with its purpose and updated all corresponding import paths. [[1]](diffhunk://#diff-fde4bac067867b6f30a7bca80f69613ac07024d87318b72eab79dcf4dd8031bdR3-L10) [[2]](diffhunk://#diff-f3d9029111c6a9351ea40b8caeff57f18b89c6ab389491c012f1452c845ce51eL19-R23)
* Updated paths for mock files under `__mocks__` to include a `v1` subdirectory, reflecting a versioning strategy for mocks (e.g., `events.someday.recur` and `events.22jan`). [[1]](diffhunk://#diff-e394726fa7256b9f390a3efdbe04592c75153bb77303ae4764319cd8c269db88L7-R7) [[2]](diffhunk://#diff-c6263938a0315b391343e01a00f92ac46eb56f022c5c0a9d286bf1b8ebe35b37R4-R10) [[3]](diffhunk://#diff-bdabf4b8fc4ff3aa8cca94a7b22554f718ee0773a5873e7e4cd241da6173c5d2L2-R2)

### Dependency updates:

* Added `@faker-js/faker` version `^9.6.0` to `devDependencies` in `packages/core/package.json` to support the creation of mock data.

Patch:
diff --git a/packages/backend/src/sync/services/import/sync.import.ts b/packages/backend/src/sync/services/import/sync.import.ts
index 374cfe65..08a23699 100644
--- a/packages/backend/src/sync/services/import/sync.import.ts
+++ b/packages/backend/src/sync/services/import/sync.import.ts
@@ -12,6 +12,7 @@ import {
 } from "@core/types/event.types";
 import { gCalendar, gSchema$Event, gSchema$EventBase } from "@core/types/gcal";
 import { Schema_Sync } from "@core/types/sync.types";
+import { categorizeRecurringEvents } from "@core/util/event/event.util";
 import { getGcalClient } from "@backend/auth/services/google.auth.service";
 import { Collections } from "@backend/common/constants/collections";
 import { ENV } from "@backend/common/constants/env.constants";
@@ -23,7 +24,6 @@ import {
 import { error } from "@backend/common/errors/handlers/error.handler";
 import gcalService from "@backend/common/services/gcal/gcal.service";
 import mongoService from "@backend/common/services/mongo.service";
-import { categorizeRecurringEvents } from "@backend/event/util/event.util";
 import {
   getSync,
   updateSync,
diff --git a/packages/backend/src/sync/services/sync/gcal.sync.processor.ts b/packages/backend/src/sync/services/sync/gcal.sync.processor.ts
index 887a58a6..57d8f0a9 100644
--- a/packages/backend/src/sync/services/sync/gcal.sync.processor.ts
+++ b/packages/backend/src/sync/services/sync/gcal.sync.processor.ts
@@ -13,6 +13,7 @@ import {
   gSchema$EventBase,
 } from "@core/types/gcal";
 import { convertRfc5545ToIso } from "@core/util/date.utils";
+import { isBase } from "@core/util/event/event.util";
 import {
   EventError,
   GenericError,
@@ -25,7 +26,6 @@ import {
 import { EventRepository } from "@backend/event/services/recur/repo/event.repo";
 import { RecurringEventRepository } from "@backend/event/services/recur/repo/recur.event.repo";
 import { GcalParser } from "@backend/event/services/recur/util/recur.gcal.util";
-import { isBase } from "@backend/event/util/event.util";
 import { Change_Gcal, Operation_Sync } from "../../sync.types";
 import { createSyncImport } from "../import/sync.import";
 
diff --git a/packages/core/package.json b/packages/core/package.json
index e7a768ba..cd721b48 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -11,7 +11,8 @@
   },
   "devDependencies": {
     "@types/tinycolor2": "^1.4.6",
-    "typescript": "^5.1.6"
+    "typescript": "^5.1.6",
+    "@faker-js/faker": "^9.6.0"
   },
   "dependencies": {
     "tinycolor2": "^1.6.0",
diff --git a/packages/backend/src/__tests__/mocks.ccal/ccal.event.factory.ts b/packages/core/src/__mocks__/mocks.ccal/ccal.event.factory.ts
similarity index 100%
rename from packages/backend/src/__tests__/mocks.ccal/ccal.event.factory.ts
rename to packages/core/src/__mocks__/mocks.ccal/ccal.event.factory.ts
diff --git a/packages/core/src/__mocks__/calendarlist/calendarlist.ts b/packages/core/src/__mocks__/v1/calendarlist/calendarlist.ts
similarity index 100%
rename from packages/core/src/__mocks__/calendarlist/calendarlist.ts
rename to packages/core/src/__mocks__/v1/calendarlist/calendarlist.ts
diff --git a/packages/core/src/__mocks__/calendarlist/gcal.calendarlist.ts b/packages/core/src/__mocks__/v1/calendarlist/gcal.calendarlist.ts
similarity index 100%
rename from packages/core/src/__mocks__/calendarlist/gcal.calendarlist.ts
rename to packages/core/src/__mocks__/v1/calendarlist/gcal.calendarlist.ts
diff --git a/packages/core/src/__mocks__/events/events.22jan.ts b/packages/core/src/__mocks__/v1/events/events.22jan.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/events.22jan.ts
rename to packages/core/src/__mocks__/v1/events/events.22jan.ts
diff --git a/packages/core/src/__mocks__/events/events.22mar.ts b/packages/core/src/__mocks__/v1/events/events.22mar.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/events.22mar.ts
rename to packages/core/src/__mocks__/v1/events/events.22mar.ts
diff --git a/packages/core/src/__mocks__/events/events.allday.1.ts b/packages/core/src/__mocks__/v1/events/events.allday.1.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/events.allday.1.ts
rename to packages/core/src/__mocks__/v1/events/events.allday.1.ts
diff --git a/packages/core/src/__mocks__/events/events.allday.2.ts b/packages/core/src/__mocks__/v1/events/events.allday.2.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/events.allday.2.ts
rename to packages/core/src/__mocks__/v1/events/events.allday.2.ts
diff --git a/packages/core/src/__mocks__/events/events.allday.3.ts b/packages/core/src/__mocks__/v1/events/events.allday.3.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/events.allday.3.ts
rename to packages/core/src/__mocks__/v1/events/events.allday.3.ts
diff --git a/packages/core/src/__mocks__/events/events.misc.ts b/packages/core/src/__mocks__/v1/events/events.misc.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/events.misc.ts
rename to packages/core/src/__mocks__/v1/events/events.misc.ts
diff --git a/packages/core/src/__mocks__/events/events.someday.1.ts b/packages/core/src/__mocks__/v1/events/events.someday.1.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/events.someday.1.ts
rename to packages/core/src/__mocks__/v1/events/events.someday.1.ts
diff --git a/packages/core/src/__mocks__/events/events.someday.recur.ts b/packages/core/src/__mocks__/v1/events/events.someday.recur.ts
similarity index 96%
rename from packages/core/src/__mocks__/events/events.someday.recur.ts
rename to packages/core/src/__mocks__/v1/events/events.someday.recur.ts
index 300ed65f..e5dcd74e 100644
--- a/packages/core/src/__mocks__/events/events.someday.recur.ts
+++ b/packages/core/src/__mocks__/v1/events/events.someday.recur.ts
@@ -1,6 +1,6 @@
 import dayjs from "dayjs";
-import { YEAR_MONTH_DAY_FORMAT } from "../../constants/date.constants";
-import { Schema_Event } from "../../types/event.types";
+import { YEAR_MONTH_DAY_FORMAT } from "@core/constants/date.constants";
+import { Schema_Event } from "@core/types/event.types";
 
 const userId = "user1";
 export const newsletterId = "64c266a87866ebd0a2bda49b";
diff --git a/packages/core/src/mappers/map.event.ts b/packages/core/src/mappers/map.event.ts
index 738f6ef6..1265164f 100644
--- a/packages/core/src/mappers/map.event.ts
+++ b/packages/core/src/mappers/map.event.ts
@@ -3,8 +3,9 @@ import { Origin, Priorities, Priority } from "@core/constants/core.constants";
 import { BaseError } from "@core/errors/errors.base";
 import { Event_Core, Schema_Event } from "@core/types/event.types";
 import { gSchema$Event } from "@core/types/gcal";
+import { isAllDay } from "@core/util/event/event.util";
+import { notCancelled } from "@core/util/event/gcal.event.util";
 import { validateEvent } from "@core/validators/event.validator";
-import { isAllDay, notCancelled } from "@backend/event/util/event.util";
 
 export namespace MapEvent {
   export const toCompass = (
diff --git a/packages/backend/src/event/util/event.util.ts b/packages/core/src/util/event/event.util.ts
similarity index 92%
rename from packages/backend/src/event/util/event.util.ts
rename to packages/core/src/util/event/event.util.ts
index be46b7d8..67d5af08 100644
--- a/packages/backend/src/event/util/event.util.ts
+++ b/packages/core/src/util/event/event.util.ts
@@ -4,7 +4,8 @@ import {
   Schema_Event_Recur_Base,
   Schema_Event_Recur_Instance,
 } from "@core/types/event.types";
-import { gSchema$Event } from "@core/types/gcal";
+
+/** Event utilities for Compass events */
 
 export const categorizeEvents = (events: Schema_Event[]) => {
   const baseEvents = events.filter(isBase);
@@ -50,10 +51,6 @@ export const isExistingInstance = (event: Schema_Event) => {
   return event.recurrence?.eventId && event.recurrence?.rule === undefined;
 };
 
-export const notCancelled = (e: gSchema$Event) => {
-  return e.status && e.status !== "cancelled";
-};
-
 /**
  * Filters the base events
  * @param e - The events array
diff --git a/packages/core/src/util/event/gcal.event.util.ts b/packages/core/src/util/event/gcal.event.util.ts
new file mode 100644
index 00000000..a2fc369e
--- /dev/null
+++ b/packages/core/src/util/event/gcal.event.util.ts
@@ -0,0 +1,6 @@
+import { gSchema$Event } from "@core/types/gcal";
+
+/** Google Calendar event utilities */
+export const notCancelled = (e: gSchema$Event) => {
+  return e.status && e.status !== "cancelled";
+};
diff --git a/tsconfig.json b/tsconfig.json
index 60ce35ce..262d0d9b 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -7,7 +7,6 @@
     "packages/scripts/src/**/*.ts",
     "packages/scripts/src/commands/dev.js"
   ],
-  "exclude": ["**/__mocks__/*"],
   "compilerOptions": {
     "target": "ES2016" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,
     "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,


Test patch:
diff --git a/packages/backend/src/__tests__/helpers/mock.events.init.ts b/packages/backend/src/__tests__/helpers/mock.events.init.ts
index 4db6c602..ae381f57 100644
--- a/packages/backend/src/__tests__/helpers/mock.events.init.ts
+++ b/packages/backend/src/__tests__/helpers/mock.events.init.ts
@@ -7,8 +7,8 @@ import {
   gSchema$EventBase,
   gSchema$EventInstance,
 } from "@core/types/gcal";
+import { isBase } from "@core/util/event/event.util";
 import { Collections } from "@backend/common/constants/collections";
-import { isBase } from "@backend/event/util/event.util";
 import { mockGcalEvents } from "../mocks.gcal/mocks.gcal/factories/gcal.event.factory";
 
 export interface State_AfterGcalImport {
diff --git a/packages/backend/src/__tests__/mocks.ccal/ccal.mock.db.util.ts b/packages/backend/src/__tests__/mocks.db/ccal.mock.db.util.ts
similarity index 93%
rename from packages/backend/src/__tests__/mocks.ccal/ccal.mock.db.util.ts
rename to packages/backend/src/__tests__/mocks.db/ccal.mock.db.util.ts
index c97e48c1..37cbd1dd 100644
--- a/packages/backend/src/__tests__/mocks.ccal/ccal.mock.db.util.ts
+++ b/packages/backend/src/__tests__/mocks.db/ccal.mock.db.util.ts
@@ -1,5 +1,9 @@
 import { ObjectId } from "mongodb";
 import { faker } from "@faker-js/faker/.";
+import {
+  createMockBaseEvent,
+  createMockInstance,
+} from "@core/__mocks__/mocks.ccal/ccal.event.factory";
 import {
   Schema_Event,
   Schema_Event_Recur_Base,
@@ -7,7 +11,6 @@ import {
 } from "@core/types/event.types";
 import { Collections } from "@backend/common/constants/collections";
 import { TestSetup } from "../helpers/mock.db.setup";
-import { createMockBaseEvent, createMockInstance } from "./ccal.event.factory";
 
 export const createRecurrenceSeries = async (
   setup: TestSetup,
diff --git a/packages/backend/src/event/services/event.delete.test.ts b/packages/backend/src/event/services/event.delete.test.ts
index 230a59b4..e3fd32b1 100644
--- a/packages/backend/src/event/services/event.delete.test.ts
+++ b/packages/backend/src/event/services/event.delete.test.ts
@@ -4,7 +4,7 @@ import { Schema_Event } from "@core/types/event.types";
 import {
   mockSomedayRecurrences,
   newsletterId,
-} from "../../../../core/src/__mocks__/events/events.someday.recur";
+} from "../../../../core/src/__mocks__/v1/events/events.someday.recur";
 import { YEAR_MONTH_DAY_FORMAT } from "../../../../core/src/constants/date.constants";
 import { getDeleteByIdFilter } from "./event.service.util";
 
diff --git a/packages/backend/src/event/services/event.find.allday.test.ts b/packages/backend/src/event/services/event.find.allday.test.ts
index 5c9eed7d..bc2fe3ae 100644
--- a/packages/backend/src/event/services/event.find.allday.test.ts
+++ b/packages/backend/src/event/services/event.find.allday.test.ts
@@ -1,6 +1,6 @@
 import { Collection, Db, Filter, MongoClient } from "mongodb";
 import { Schema_Event } from "@core/types/event.types";
-import { mockEventSetMar22 } from "../../../../core/src/__mocks__/events/events.22mar";
+import { mockEventSetMar22 } from "../../../../core/src/__mocks__/v1/events/events.22mar";
 import { getReadAllFilter } from "./event.service.util";
 
 describe("Mar 6 - 12, 2022: All-Day Events", () => {
diff --git a/packages/backend/src/event/services/event.find.test.ts b/packages/backend/src/event/services/event.find.test.ts
index e34697a8..4ee14bfb 100644
--- a/packages/backend/src/event/services/event.find.test.ts
+++ b/packages/backend/src/event/services/event.find.test.ts
@@ -1,13 +1,13 @@
 import { Collection, Db, MongoClient } from "mongodb";
 import { MapEvent } from "@core/mappers/map.event";
 import { Schema_Event } from "@core/types/event.types";
+import { isBase, isExistingInstance } from "@core/util/event/event.util";
 import {
   mockRecurringGcalBaseEvent,
   mockRecurringGcalInstances,
 } from "@backend/__tests__/mocks.gcal/factories/gcal.event.factory";
-import { mockEventSetJan22 } from "../../../../core/src/__mocks__/events/events.22jan";
-import { mockEventSetSomeday1 } from "../../../../core/src/__mocks__/events/events.someday.1";
-import { isBase, isExistingInstance } from "../util/event.util";
+import { mockEventSetJan22 } from "../../../../core/src/__mocks__/v1/events/events.22jan";
+import { mockEventSetSomeday1 } from "../../../../core/src/__mocks__/v1/events/events.someday.1";
 import { getReadAllFilter } from "./event.service.util";
 
 const gBase = mockRecurringGcalBaseEvent();
diff --git a/packages/backend/src/sync/services/import/all/import.all.util.test.ts b/packages/backend/src/sync/services/import/all/import.all.util.test.ts
index df94c5e6..297baebc 100644
--- a/packages/backend/src/sync/services/import/all/import.all.util.test.ts
+++ b/packages/backend/src/sync/services/import/all/import.all.util.test.ts
@@ -1,7 +1,9 @@
 import { ObjectId } from "mongodb";
+import {
+  createMockBaseEvent,
+  createMockInstance,
+} from "@core/__mocks__/mocks.ccal/ccal.event.factory";
 import { Event_Core } from "@core/types/event.types";
-import { createMockBaseEvent } from "@backend/__tests__/mocks.ccal/ccal.event.factory";
-import { createMockInstance } from "@backend/__tests__/mocks.ccal/ccal.event.factory";
 import { assignIds } from "./import.all.util";
 
 const getEventsWithoutIds = () => {
diff --git a/packages/backend/src/sync/services/import/sync.import.series.test.ts b/packages/backend/src/sync/services/import/sync.import.series.test.ts
index 8a48b267..d0d787c2 100644
--- a/packages/backend/src/sync/services/import/sync.import.series.test.ts
+++ b/packages/backend/src/sync/services/import/sync.import.series.test.ts
@@ -1,3 +1,7 @@
+import {
+  filterBaseEvents,
+  filterExistingInstances,
+} from "@core/util/event/event.util";
 import {
   cleanupCollections,
   cleanupTestMongo,
@@ -6,10 +10,6 @@ import {
 import { mockRecurringGcalBaseEvent } from "@backend/__tests__/mocks.gcal/factories/gcal.event.factory";
 import { mockGcalEvents } from "@backend/__tests__/mocks.gcal/factories/gcal.event.factory.set";
 import mongoService from "@backend/common/services/mongo.service";
-import {
-  filterBaseEvents,
-  filterExistingInstances,
-} from "@backend/event/util/event.util";
 import { createSyncImport } from "./sync.import";
 
 // Mock Gcal Instances API response
diff --git a/packages/backend/src/sync/services/import/sync.import.util.test.ts b/packages/backend/src/sync/services/import/sync.import.util.test.ts
index 90f70a1b..f12d10de 100644
--- a/packages/backend/src/sync/services/import/sync.import.util.test.ts
+++ b/packages/backend/src/sync/services/import/sync.import.util.test.ts
@@ -1,5 +1,5 @@
 import dayjs from "dayjs";
-import { gcalEvents } from "../../../../../core/src/__mocks__/events/gcal/gcal.event";
+import { gcalEvents } from "../../../../../core/src/__mocks__/v1/events/gcal/gcal.event";
 import { cancelledEventsIds } from "../../../common/services/gcal/gcal.utils";
 import { syncExpired, syncExpiresSoon } from "../../util/sync.util";
 import { organizeGcalEventsByType } from "./sync.import.util";
diff --git a/packages/backend/src/sync/services/sync/gcal.sync.processor.test.ts b/packages/backend/src/sync/services/sync/gcal.sync.processor.test.ts
index 7c37fc2d..ccc5e4f5 100644
--- a/packages/backend/src/sync/services/sync/gcal.sync.processor.test.ts
+++ b/packages/backend/src/sync/services/sync/gcal.sync.processor.test.ts
@@ -5,6 +5,10 @@ import {
   Schema_Event_Recur_Base,
   Schema_Event_Recur_Instance,
 } from "@core/types/event.types";
+import {
+  categorizeEvents,
+  isExistingInstance,
+} from "@core/util/event/event.util";
 import {
   getEventsInDb,
   isEventCollectionEmpty,
@@ -16,7 +20,7 @@ import {
   setupTestDb,
 } from "@backend/__tests__/helpers/mock.db.setup";
 import { simulateDbAfterGcalImport } from "@backend/__tests__/helpers/mock.events.init";
-import { createRecurrenceSeries } from "@backend/__tests__/mocks.ccal/ccal.mock.db.util";
+import { createRecurrenceSeries } from "@backend/__tests__/mocks.db/ccal.mock.db.util";
 import {
   mockRecurringGcalBaseEvent,
   mockRegularGcalEvent,
@@ -26,10 +30,6 @@ import {
   mockGcalEvents,
 } from "@backend/__tests__/mocks.gcal/mocks.gcal/factories/gcal.event.factory";
 import { RecurringEventRepository } from "@backend/event/services/recur/repo/recur.event.repo";
-import {
-  categorizeEvents,
-  isExistingInstance,
-} from "@backend/event/util/event.util";
 import { Change_Gcal } from "@backend/sync/sync.types";
 import { GcalSyncProcessor } from "./gcal.sync.processor";
 import {
diff --git a/packages/backend/src/sync/services/sync/gcal.sync.processor.test.util.ts b/packages/backend/src/sync/services/sync/gcal.sync.processor.test.util.ts
index b719cf06..2df5691e 100644
--- a/packages/backend/src/sync/services/sync/gcal.sync.processor.test.util.ts
+++ b/packages/backend/src/sync/services/sync/gcal.sync.processor.test.util.ts
@@ -1,6 +1,6 @@
 import { Event_Core, Schema_Event } from "@core/types/event.types";
+import { isBase, isExistingInstance } from "@core/util/event/event.util";
 import { State_AfterGcalImport } from "@backend/__tests__/helpers/mock.events.init";
-import { isBase, isExistingInstance } from "@backend/event/util/event.util";
 
 /** Utility assertions for the gcal sync processor tests */
 export const baseHasRecurrenceRule = async (
diff --git a/packages/core/src/__mocks__/events/gcal/gcal.allday.ts b/packages/core/src/__mocks__/v1/events/gcal/gcal.allday.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/gcal/gcal.allday.ts
rename to packages/core/src/__mocks__/v1/events/gcal/gcal.allday.ts
diff --git a/packages/core/src/__mocks__/events/gcal/gcal.cancelled.ts b/packages/core/src/__mocks__/v1/events/gcal/gcal.cancelled.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/gcal/gcal.cancelled.ts
rename to packages/core/src/__mocks__/v1/events/gcal/gcal.cancelled.ts
diff --git a/packages/core/src/__mocks__/events/gcal/gcal.event.ts b/packages/core/src/__mocks__/v1/events/gcal/gcal.event.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/gcal/gcal.event.ts
rename to packages/core/src/__mocks__/v1/events/gcal/gcal.event.ts
diff --git a/packages/core/src/__mocks__/events/gcal/gcal.recurring.ts b/packages/core/src/__mocks__/v1/events/gcal/gcal.recurring.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/gcal/gcal.recurring.ts
rename to packages/core/src/__mocks__/v1/events/gcal/gcal.recurring.ts
diff --git a/packages/core/src/__mocks__/events/gcal/gcal.timed.ts b/packages/core/src/__mocks__/v1/events/gcal/gcal.timed.ts
similarity index 100%
rename from packages/core/src/__mocks__/events/gcal/gcal.timed.ts
rename to packages/core/src/__mocks__/v1/events/gcal/gcal.timed.ts
diff --git a/packages/core/src/mappers/map.calendarlist.test.ts b/packages/core/src/mappers/map.calendarlist.test.ts
index aac35b78..60c385eb 100644
--- a/packages/core/src/mappers/map.calendarlist.test.ts
+++ b/packages/core/src/mappers/map.calendarlist.test.ts
@@ -1,4 +1,4 @@
-import { gcalCalendarList } from "../__mocks__/calendarlist/gcal.calendarlist";
+import { gcalCalendarList } from "../__mocks__/v1/calendarlist/gcal.calendarlist";
 import { MapCalendarList } from "./map.calendarlist";
 
 it("supports multiple calendars", () => {
diff --git a/packages/core/src/mappers/map.event.test.ts b/packages/core/src/mappers/map.event.test.ts
index d025939b..1c06423f 100644
--- a/packages/core/src/mappers/map.event.test.ts
+++ b/packages/core/src/mappers/map.event.test.ts
@@ -1,8 +1,8 @@
-import { recurring } from "@core/__mocks__/events/gcal/gcal.recurring";
-import { timed } from "@core/__mocks__/events/gcal/gcal.timed";
+import { recurring } from "@core/__mocks__/v1/events/gcal/gcal.recurring";
+import { timed } from "@core/__mocks__/v1/events/gcal/gcal.timed";
 import { Schema_Event } from "@core/types/event.types";
 import { gSchema$Event } from "@core/types/gcal";
-import { gcalEvents } from "../__mocks__/events/gcal/gcal.event";
+import { gcalEvents } from "../__mocks__/v1/events/gcal/gcal.event";
 import { Origin, Priorities } from "../constants/core.constants";
 import { MapEvent } from "./map.event";
 
diff --git a/packages/backend/src/event/util/event.util.test.ts b/packages/core/src/util/event/event.util.test.ts
similarity index 74%
rename from packages/backend/src/event/util/event.util.test.ts
rename to packages/core/src/util/event/event.util.test.ts
index 3319db40..b2d64f9b 100644
--- a/packages/backend/src/event/util/event.util.test.ts
+++ b/packages/core/src/util/event/event.util.test.ts
@@ -1,9 +1,9 @@
 import {
+  createMockBaseEvent,
   createMockInstance,
   createMockStandaloneEvent,
-} from "@backend/__tests__/mocks.ccal/ccal.event.factory";
-import { createMockBaseEvent } from "@backend/__tests__/mocks.ccal/ccal.event.factory";
-import { categorizeEvents } from "./event.util";
+} from "@core/__mocks__/mocks.ccal/ccal.event.factory";
+import { categorizeEvents } from "@core/util/event/event.util";
 
 describe("categorizeEvents", () => {
   it("should categorize events correctly", () => {
diff --git a/packages/web/src/__tests__/__mocks__/server/mock.handlers.ts b/packages/web/src/__tests__/__mocks__/server/mock.handlers.ts
index aee4d6fa..7a18700e 100644
--- a/packages/web/src/__tests__/__mocks__/server/mock.handlers.ts
+++ b/packages/web/src/__tests__/__mocks__/server/mock.handlers.ts
@@ -6,7 +6,7 @@ import {
   MARCH_1,
   MULTI_WEEK,
   TY_TIM,
-} from "@core/__mocks__/events/events.misc";
+} from "@core/__mocks__/v1/events/events.misc";
 import { ENV_WEB } from "@web/common/constants/env.constants";
 
 export const globalHandlers = [
diff --git a/packages/web/src/__tests__/__mocks__/state/state.weekEvents.ts b/packages/web/src/__tests__/__mocks__/state/state.weekEvents.ts
index 58f34f8c..4e35dfa3 100644
--- a/packages/web/src/__tests__/__mocks__/state/state.weekEvents.ts
+++ b/packages/web/src/__tests__/__mocks__/state/state.weekEvents.ts
@@ -6,7 +6,7 @@ import {
   MARCH_1,
   MULTI_WEEK,
   TY_TIM,
-} from "@core/__mocks__/events/events.misc";
+} from "@core/__mocks__/v1/events/events.misc";
 
 export const preloadedState = {
   events: {
diff --git a/packages/web/src/__tests__/utils/grid.util/assign.row.test.ts b/packages/web/src/__tests__/utils/grid.util/assign.row.test.ts
index d6696b45..8ae848a6 100644
--- a/packages/web/src/__tests__/utils/grid.util/assign.row.test.ts
+++ b/packages/web/src/__tests__/utils/grid.util/assign.row.test.ts
@@ -1,5 +1,5 @@
 import { v4 as uuidv4 } from "uuid";
-import { mar13To19 } from "@core/__mocks__/events/events.allday.3";
+import { mar13To19 } from "@core/__mocks__/v1/events/events.allday.3";
 import { Schema_Event } from "@core/types/event.types";
 import { assignEventsToRow } from "@web/common/utils/grid.util";
 
diff --git a/packages/web/src/views/Calendar/Calendar.form.test.tsx b/packages/web/src/views/Calendar/Calendar.form.test.tsx
index a7dcd025..08c02c0c 100644
--- a/packages/web/src/views/Calendar/Calendar.form.test.tsx
+++ b/packages/web/src/views/Calendar/Calendar.form.test.tsx
@@ -2,7 +2,7 @@ import React, { act } from "react";
 import "@testing-library/jest-dom";
 import { screen, waitFor, within } from "@testing-library/react";
 import userEvent from "@testing-library/user-event";
-import { CLIMB } from "@core/__mocks__/events/events.misc";
+import { CLIMB } from "@core/__mocks__/v1/events/events.misc";
 import { render } from "@web/__tests__/__mocks__/mock.render";
 import { preloadedState } from "@web/__tests__/__mocks__/state/state.weekEvents";
 import { CalendarView } from "@web/views/Calendar";