aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/lib/testUtils.ts
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-05 13:11:06 +0000
committerMohamedBassem <me@mbassem.com>2024-03-05 13:11:06 +0000
commit8a46ecb7373d6c5e7300861169ea51a7917cd2b4 (patch)
tree4ad318c3b5fc8b7a74cba6d0e37b6ade24db829a /packages/web/lib/testUtils.ts
parent224aa38d5976523f213e2860b6addc7630d472ba (diff)
downloadkarakeep-8a46ecb7373d6c5e7300861169ea51a7917cd2b4.tar.zst
refactor: Extract trpc logic into its package
Diffstat (limited to 'packages/web/lib/testUtils.ts')
-rw-r--r--packages/web/lib/testUtils.ts70
1 files changed, 0 insertions, 70 deletions
diff --git a/packages/web/lib/testUtils.ts b/packages/web/lib/testUtils.ts
deleted file mode 100644
index bad78463..00000000
--- a/packages/web/lib/testUtils.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import { users } from "@hoarder/db/schema";
-import { getInMemoryDB } from "@hoarder/db/drizzle";
-import { appRouter } from "@/server/api/routers/_app";
-import { createCallerFactory } from "@/server/api/trpc";
-
-export function getTestDB() {
- return getInMemoryDB(true);
-}
-
-export type TestDB = ReturnType<typeof getTestDB>;
-
-export async function seedUsers(db: TestDB) {
- return await db
- .insert(users)
- .values([
- {
- name: "Test User 1",
- email: "test1@test.com",
- },
- {
- name: "Test User 2",
- email: "test2@test.com",
- },
- ])
- .returning();
-}
-
-export function getApiCaller(db: TestDB, userId?: string) {
- const createCaller = createCallerFactory(appRouter);
- return createCaller({
- user: userId
- ? {
- id: userId,
- role: "user",
- }
- : null,
- db,
- });
-}
-
-export type APICallerType = ReturnType<typeof getApiCaller>;
-
-export interface CustomTestContext {
- apiCallers: APICallerType[];
- unauthedAPICaller: APICallerType;
- db: TestDB;
-}
-
-export async function buildTestContext(
- seedDB: boolean,
-): Promise<CustomTestContext> {
- const db = getTestDB();
- let users: Awaited<ReturnType<typeof seedUsers>> = [];
- if (seedDB) {
- users = await seedUsers(db);
- }
- const callers = users.map((u) => getApiCaller(db, u.id));
-
- return {
- apiCallers: callers,
- unauthedAPICaller: getApiCaller(db),
- db,
- };
-}
-
-export function defaultBeforeEach(seedDB: boolean = true) {
- return async (context: object) => {
- Object.assign(context, await buildTestContext(seedDB));
- };
-}