import { Test, TestingModule } from '@nestjs/testing'; import { INestApplication } from '@nestjs/common'; import request from 'supertest'; import { AppModule } from './../src/app.module'; describe('AdminController (e2e)', () => { let app: INestApplication; beforeEach(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [AppModule], }).compile(); app = moduleFixture.createNestApplication(); await app.init(); }); afterEach(async () => { await app.close(); }); it('/admin/stats (GET)', () => { return request(app.getHttpServer()) .get('/admin/stats') .expect(200) .expect(res => { expect(res.body).toHaveProperty('totalCompanies'); expect(res.body).toHaveProperty('monthlyRevenue'); }); }); it('/admin/revenue (GET)', () => { return request(app.getHttpServer()) .get('/admin/revenue') .expect(200) .expect(res => { expect(Array.isArray(res.body)).toBe(true); expect(res.body[0]).toHaveProperty('month'); expect(res.body[0]).toHaveProperty('revenue'); }); }); it('/admin/subscriptions-by-plan (GET)', () => { return request(app.getHttpServer()) .get('/admin/subscriptions-by-plan') .expect(200) .expect(res => { expect(Array.isArray(res.body)).toBe(true); expect(res.body[0]).toHaveProperty('plan'); expect(res.body[0]).toHaveProperty('count'); }); }); });