testing setup

This commit is contained in:
2025-08-29 14:19:38 +02:00
parent e74b30e04c
commit 869cc07fdd
46 changed files with 6710 additions and 1460 deletions

View File

@@ -43,14 +43,13 @@ export function trpcCrudRouterFromDrizzleEntity<T extends SchemaKeys<Schema>>(ta
)
}
const { input } = opts;
console.log(input)
if (input === undefined) {
throw new TRPCError({ message: "no update input", code: "BAD_REQUEST" })
}
if (!isKeyOf('id',input) || !isKeyOf('id',schema[table])) {
if (!isKeyOf('id', input) || !isKeyOf('id', schema[table])) {
throw new TRPCError({ message: "no id provided", code: "BAD_REQUEST" })
}
return await db.update(schema[table]).set(input).where(eq(schema[table]['id'],input['id'])).returning().execute();
return await db.update(schema[table]).set(input).where(eq(schema[table]['id'], input['id'])).returning().execute();
}),
insert: publicProcedure.input(schemas.insert).mutation(async (opts) => {
let admin = await isAdmin();

View File

@@ -0,0 +1,19 @@
import type { QueryProcedure } from '@trpc/server/unstable-core-do-not-import';
import type { Entries } from 'type-fest';
import { assertType, expect, test } from 'vitest'
import { trpcRouter } from '~/server/routers/_app';
const routerEntries = Object.entries(trpcRouter) as Entries<typeof trpcRouter>
routerEntries.forEach(([key, value]) => {
switch (key) {
case '_def': break;
case 'createCaller': break;
default:
test.concurrent(`default router ${key}`, async ({ annotate }) => {
expect(value.select).toBeInstanceOf(Function)
expect(value.update).toBeInstanceOf(Function)
expect(value.delete).toBeInstanceOf(Function)
expect(value.insert).toBeInstanceOf(Function)
})
}
})

View File

@@ -8,7 +8,6 @@ const { router : project } = trpcCrudRouterFromDrizzleEntity('project')
const { router : techStack } = trpcCrudRouterFromDrizzleEntity('techStack')
const { router : category } = trpcCrudRouterFromDrizzleEntity('cvCategory')
const { router : entry } = trpcCrudRouterFromDrizzleEntity('cvEntry')
const root = {}
export const trpcRouter = router({
project: project,
techStack: techStack,