import { Test, TestingModule } from '@nestjs/testing'; import { INestApplication } from '@nestjs/common'; import cookieParser from 'cookie-parser'; import request from 'supertest'; import { App } from 'supertest/types.js'; import { AppModule } from './../src/app.module.js'; describe('API (e2e)', () => { let app: INestApplication; beforeAll(() => { process.env.SL_URL = 'https://localhost:50000/b1s/v1'; process.env.SL_COMPANY_DB = 'TEST'; process.env.DB_TYPE = 'MSSQL'; }); beforeEach(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [AppModule], }).compile(); app = moduleFixture.createNestApplication(); app.setGlobalPrefix('api'); app.use(cookieParser()); await app.init(); }); it('/api/health es público', () => { return request(app.getHttpServer()).get('/api/health').expect(200).expect({ status: 'ok' }); }); it('/api/auth/info devuelve la sociedad configurada', () => { return request(app.getHttpServer()).get('/api/auth/info').expect(200).expect({ companyDb: 'TEST', dbType: 'MSSQL' }); }); it('/api/metadata/status exige sesión', () => { return request(app.getHttpServer()).get('/api/metadata/status').expect(401); }); afterEach(async () => { await app.close(); }); });