diff options
| author | MohamedBassem <me@mbassem.com> | 2024-03-02 09:53:24 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-03-02 09:53:24 +0000 |
| commit | b7b5306619cc4420bd0ae494881ee7161391dec4 (patch) | |
| tree | 3e284af6160373b4c6873301ea57ab43e36130dd /packages/web/lib | |
| parent | a942e69c9a830142c7ead9cbf7c1aa67fd87bf38 (diff) | |
| download | karakeep-b7b5306619cc4420bd0ae494881ee7161391dec4.tar.zst | |
feature: Make the first user an admin automatically
Diffstat (limited to 'packages/web/lib')
| -rw-r--r-- | packages/web/lib/testUtils.ts | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/packages/web/lib/testUtils.ts b/packages/web/lib/testUtils.ts index 142ad844..bad78463 100644 --- a/packages/web/lib/testUtils.ts +++ b/packages/web/lib/testUtils.ts @@ -25,13 +25,15 @@ export async function seedUsers(db: TestDB) { .returning(); } -export function getApiCaller(db: TestDB, userId: string) { +export function getApiCaller(db: TestDB, userId?: string) { const createCaller = createCallerFactory(appRouter); return createCaller({ - user: { - id: userId, - role: "user", - }, + user: userId + ? { + id: userId, + role: "user", + } + : null, db, }); } @@ -40,20 +42,29 @@ export type APICallerType = ReturnType<typeof getApiCaller>; export interface CustomTestContext { apiCallers: APICallerType[]; + unauthedAPICaller: APICallerType; db: TestDB; } -export async function buildTestContext(): Promise<CustomTestContext> { +export async function buildTestContext( + seedDB: boolean, +): Promise<CustomTestContext> { const db = getTestDB(); - const users = await seedUsers(db); + 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 const defaultBeforeEach = async (context: object) => { - Object.assign(context, await buildTestContext()); -}; +export function defaultBeforeEach(seedDB: boolean = true) { + return async (context: object) => { + Object.assign(context, await buildTestContext(seedDB)); + }; +} |
