36 lines
946 B
TypeScript
36 lines
946 B
TypeScript
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,
|
|
}));
|