feat: implement complex user invitation handler with tests and configuration

This commit is contained in:
Jose Selesan
2026-04-22 15:58:34 -03:00
parent 6ad4fc9ee9
commit 4658b168ed
8 changed files with 302 additions and 21 deletions

View File

@@ -0,0 +1,33 @@
import { mock } from 'bun:test';
import { createPrismaMock } from 'bun-mock-prisma';
import type { PrismaClient } from '@/generated/prisma/client';
import type { PrismaClientMock } from 'bun-mock-prisma';
export const prismaMock = createPrismaMock<PrismaClient>() as PrismaClientMock<PrismaClient>;
export const sendMailMock = mock(async (_input: {
to: string;
subject: string;
html: string;
text: string;
}) => undefined);
export const transactionMock = mock(async <T>(fn: (tx: PrismaClientMock<PrismaClient>) => Promise<T>) =>
fn(prismaMock)
);
export const dbMock = {
complexUser: prismaMock.complexUser,
complex: prismaMock.complex,
user: prismaMock.user,
complexInvitation: prismaMock.complexInvitation,
$transaction: transactionMock,
};
mock.module('@/lib/prisma', () => ({
__esModule: true,
db: dbMock,
}));
mock.module('@/lib/mailer', () => ({
__esModule: true,
sendMail: sendMailMock,
}));