eletrotupi / tcc / api/tests/users/delete.test.ts master
1.5 KB Raw
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);
//});