Files
nest/integration/microservices/e2e/sum-nats.spec.ts
2018-03-17 15:01:17 +01:00

60 lines
1.4 KiB
TypeScript

import * as express from 'express';
import * as request from 'supertest';
import { Test } from '@nestjs/testing';
import { INestApplication } from '@nestjs/common';
import { Transport } from '@nestjs/microservices';
import { NatsController } from '../src/nats/nats.controller';
describe('NATS transport', () => {
let server;
let app: INestApplication;
beforeEach(async () => {
const module = await Test.createTestingModule({
controllers: [NatsController],
}).compile();
server = express();
app = module.createNestApplication(server);
app.connectMicroservice({
transport: Transport.NATS,
url: 'nats://localhost:4222'
});
await app.startAllMicroservicesAsync();
await app.init();
});
it(`/POST`, () => {
return request(server)
.post('/?command=sum')
.send([1, 2, 3, 4, 5])
.expect(200, '15');
});
it(`/POST (Promise/async)`, () => {
return request(server)
.post('/?command=asyncSum')
.send([1, 2, 3, 4, 5])
.expect(200)
.expect(200, '15');
});
it(`/POST (Observable stream)`, () => {
return request(server)
.post('/?command=streamSum')
.send([1, 2, 3, 4, 5])
.expect(200, '15');
});
it(`/POST (streaming)`, () => {
return request(server)
.post('/stream')
.send([1, 2, 3, 4, 5])
.expect(200, '15');
});
afterEach(async () => {
await app.close();
});
});