import { Test, TestingModule } from '@nestjs/testing'; import { INestApplication, ValidationPipe } from '@nestjs/common'; import * as request from 'supertest'; import { AppModule } from '../src/app.module'; describe('AppController (e2e)', () => { let app: INestApplication; beforeEach(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [AppModule], }).compile(); app = moduleFixture.createNestApplication(); app.useGlobalPipes( new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true, transform: true, }), ); await app.init(); }); afterEach(async () => { await app.close(); }); describe('/api/v1/health (GET)', () => { it('should return health status', () => { return request(app.getHttpServer()) .get('/api/v1/health') .expect(200) .expect((res) => { expect(res.body).toHaveProperty('status'); }); }); it('should return liveness status', () => { return request(app.getHttpServer()) .get('/api/v1/health/liveness') .expect(200) .expect((res) => { expect(res.body).toHaveProperty('status', 'ok'); expect(res.body).toHaveProperty('timestamp'); }); }); }); });