import test from "ava"; import { PrismaClient } from '@prisma/client'; import { PrismaPg } from '@prisma/adapter-pg'; import request from 'supertest'; import bcrypt from 'bcryptjs'; import 'dotenv/config'; import { Express } from 'express'; import { createApp } from '../../src/createApp'; let prisma: PrismaClient; let app: Express; test.before(() => { process.env.NODE_ENV = 'test'; const connectionString = process.env.DATABASE_URL || 'postgres://user:password@orbit_db:5432/orbit_test'; const adapter = new PrismaPg({ connectionString }); prisma = new PrismaClient({ adapter }); // Create Express app with test Prisma client app = createApp(prisma); }); test.beforeEach(async () => { // Clean database before each test try { await prisma.user.deleteMany({}); } catch (err) { console.error('Error cleaning test DB:', err); } }); test.after.always(async () => { await prisma?.$disconnect(); }); //test("DELETE /users/:id deletes a user", async (t) => { // t.pass() // // Create a user first // const user = await prisma.user.create({ // data: { // email: "delete@example.com", // firstName: "Delete", // lastName: "Me", // encryptedPassword: bcrypt.hashSync("password", 10) // } // }); // // await request(app) // .delete(`/users/${user.id}`) // .expect(204); // // // Verify user was deleted // const dbUser = await prisma.user.findUnique({ // where: { id: user.id } // }); // t.is(dbUser, null); //});