import { prisma } from '@/lib/db'; /** Integration tests need a real database; without one they refuse to run. */ export const hasDatabase = Boolean(process.env.TEST_DATABASE_URL); const WEEK = [ { dayOfWeek: 0, isClosed: true, slots: [] }, { dayOfWeek: 1, isClosed: true, slots: [] }, { dayOfWeek: 2, isClosed: false, slots: [{ open: '10:00', close: '18:30' }] }, { dayOfWeek: 3, isClosed: false, slots: [ { open: '10:00', close: '13:00' }, { open: '14:00', close: '18:30' }, ], }, { dayOfWeek: 4, isClosed: false, slots: [{ open: '10:00', close: '18:30' }] }, { dayOfWeek: 5, isClosed: false, slots: [{ open: '10:00', close: '18:30' }] }, { dayOfWeek: 6, isClosed: false, slots: [{ open: '10:00', close: '18:30' }] }, ]; /** Empties every table and re-seeds the reference week. */ export async function resetDatabase(): Promise { await prisma.deviceLog.deleteMany(); await prisma.device.deleteMany(); await prisma.screenImage.deleteMany(); await prisma.scheduleException.deleteMany(); await prisma.vacationPeriod.deleteMany(); await prisma.publicHoliday.deleteMany(); await prisma.message.deleteMany(); await prisma.weeklySchedule.deleteMany(); await prisma.settings.deleteMany(); await prisma.settings.create({ data: { id: 'singleton' } }); for (const day of WEEK) { await prisma.weeklySchedule.create({ data: day }); } } export function deviceRequest( path: string, headers: Record = {}, init: RequestInit = {}, ): Request { return new Request(`https://trmnl.example.test${path}`, { headers: { host: 'trmnl.example.test', ...headers }, ...init, }); }