mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
@@ -177,6 +177,10 @@ export class NestApplication
|
||||
}
|
||||
|
||||
public async init(): Promise<this> {
|
||||
if (this.isInitialized) {
|
||||
return this;
|
||||
}
|
||||
|
||||
this.applyOptions();
|
||||
await this.httpAdapter?.init();
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import { NestApplication } from '../nest-application';
|
||||
import { mapToExcludeRoute } from './../middleware/utils';
|
||||
import { NoopHttpAdapter } from './utils/noop-adapter.spec';
|
||||
import { MicroserviceOptions } from '@nestjs/microservices';
|
||||
import * as sinon from 'sinon';
|
||||
|
||||
describe('NestApplication', () => {
|
||||
describe('Hybrid Application', () => {
|
||||
@@ -79,4 +80,28 @@ describe('NestApplication', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
describe('Double initialization', () => {
|
||||
it('should initialize application only once', async () => {
|
||||
const noopHttpAdapter = new NoopHttpAdapter({});
|
||||
const httpAdapterSpy = sinon.spy(noopHttpAdapter);
|
||||
|
||||
const applicationConfig = new ApplicationConfig();
|
||||
|
||||
const container = new NestContainer(applicationConfig);
|
||||
container.setHttpAdapter(noopHttpAdapter);
|
||||
|
||||
const instance = new NestApplication(
|
||||
container,
|
||||
noopHttpAdapter,
|
||||
applicationConfig,
|
||||
new GraphInspector(container),
|
||||
{},
|
||||
);
|
||||
|
||||
await instance.init();
|
||||
await instance.init();
|
||||
|
||||
expect(httpAdapterSpy.init.calledOnce).to.be.true;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user