// test/factories/timesheet.factory.ts export type TimesheetPayload = { employee_id: number; is_approved?: boolean; }; /** * Construit un payload valide pour POST /timesheets. * Par défaut, is_approved=false. */ export function makeTimesheet( employeeId: number, overrides: Partial = {} ): TimesheetPayload { return { employee_id: employeeId, is_approved: false, ...overrides, }; } /** * Payload délibérément invalide pour déclencher un 400 via ValidationPipe. */ export function makeInvalidTimesheet(): Record { return { employee_id: 'not-a-number' }; } /** * Helper pour récupérer un employee_id existant * sans importer les types Prisma dans le factory. */ export async function pickAnyEmployeeId( prisma: { employees: { findFirst: (args?: any) => Promise<{ id: number } | null> } } ): Promise { const emp = await prisma.employees.findFirst({ select: { id: true } }); return emp?.id ?? null; }