import { PrismaService } from './prisma.service';
import { Test } from '@nestjs/testing';

describe('PrismaService', () => {
  let service: PrismaService;

  beforeAll(async () => {
    const moduleRef = await Test.createTestingModule({
      providers: [PrismaService],
    }).compile();

    service = moduleRef.get(PrismaService);
    await service.onModuleInit();
  });

  afterAll(async () => {
    await service.onModuleDestroy();
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });

  it('should be able to run a trivial query against the database', async () => {
    // Execute a raw query that does not depend on application tables
    const result = await service.$queryRaw<Array<{ now: Date }>>`SELECT now() AS now`;
    expect(Array.isArray(result)).toBe(true);
    expect(result.length).toBe(1);
    expect(result[0].now).toBeInstanceOf(Date);
  });
});
