import { INestApplication } from '@nestjs/common'; import { Transport } from '@nestjs/microservices'; import { Test } from '@nestjs/testing'; import * as request from 'supertest'; import { NatsBroadcastController } from '../src/nats/nats-broadcast.controller'; describe('NATS transport', () => { let server; let app: INestApplication; beforeEach(async () => { const module = await Test.createTestingModule({ controllers: [NatsBroadcastController], }).compile(); app = module.createNestApplication(); server = app.getHttpAdapter().getInstance(); app.connectMicroservice({ transport: Transport.NATS, options: { url: 'nats://0.0.0.0:4222', }, }); app.connectMicroservice({ transport: Transport.NATS, options: { url: 'nats://0.0.0.0:4222', }, }); await app.startAllMicroservicesAsync(); await app.init(); }); it(`Broadcast (2 subscribers)`, () => { return request(server).get('/broadcast').expect(200, '2'); }); afterEach(async () => { await app.close(); }); });