aboutsummaryrefslogtreecommitdiffstats
path: root/packages/web/lib
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-02 09:53:24 +0000
committerMohamedBassem <me@mbassem.com>2024-03-02 09:53:24 +0000
commitb7b5306619cc4420bd0ae494881ee7161391dec4 (patch)
tree3e284af6160373b4c6873301ea57ab43e36130dd /packages/web/lib
parenta942e69c9a830142c7ead9cbf7c1aa67fd87bf38 (diff)
downloadkarakeep-b7b5306619cc4420bd0ae494881ee7161391dec4.tar.zst
feature: Make the first user an admin automatically
Diffstat (limited to 'packages/web/lib')
-rw-r--r--packages/web/lib/testUtils.ts31
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));
+ };
+}