Skip to content

Commit bf1a97b

Browse files
test(nestjs) bump test coverage
1 parent a95b3d6 commit bf1a97b

4 files changed

Lines changed: 106 additions & 56 deletions

File tree

package.json

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,34 @@
11
{
22
"name": "nestjs",
3-
"version": "5.3.15",
3+
"version": "5.4.0",
44
"description": "Modern, fast, powerful node.js web framework",
55
"scripts": {
66
"coverage": "nyc report --reporter=text-lcov | coveralls",
77
"precommit": "lint-staged",
8-
"test": "nyc --require ts-node/register mocha packages/**/*.spec.ts --reporter spec --require 'node_modules/reflect-metadata/Reflect.js'",
9-
"integration-test": "mocha integration/**/*.spec.ts --reporter spec --require ts-node/register --require 'node_modules/reflect-metadata/Reflect.js'",
10-
"lint": "tslint -p tsconfig.json -c tslint.json \"packages/**/*.ts\" -e \"*.spec.ts\"",
11-
"format": "prettier **/**/*.ts --ignore-path ./.prettierignore --write && git status",
8+
"test":
9+
"nyc --require ts-node/register mocha packages/**/*.spec.ts --reporter spec --require 'node_modules/reflect-metadata/Reflect.js'",
10+
"integration-test":
11+
"mocha integration/**/*.spec.ts --reporter spec --require ts-node/register --require 'node_modules/reflect-metadata/Reflect.js'",
12+
"lint":
13+
"tslint -p tsconfig.json -c tslint.json \"packages/**/*.ts\" -e \"*.spec.ts\"",
14+
"format":
15+
"prettier **/**/*.ts --ignore-path ./.prettierignore --write && git status",
1216
"clean": "gulp clean:bundle",
1317
"build": "npm run clean && gulp build",
1418
"prebuild:dev": "rm -rf node_modules/@nestjs",
1519
"build:dev": "gulp build --dist node_modules/@nestjs && gulp move",
1620
"postinstall": "opencollective",
1721
"prerelease": "gulp copy-misc && gulp build --dist node_modules/@nestjs",
18-
"publish": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --exact -m \"chore(@nestjs) publish %s release\"",
19-
"publish:rc": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=rc -m \"chore(@nestjs) publish %s release\"",
20-
"publish:next": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=next --skip-git -m \"chore(@nestjs) publish %s release\"",
21-
"publish:beta": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=beta -m \"chore(@nestjs) publish %s release\"",
22-
"publish:test": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --npm-tag=test --skip-git -m \"chore(@nestjs) publish %s release\""
22+
"publish":
23+
"npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --exact -m \"chore(@nestjs) publish %s release\"",
24+
"publish:rc":
25+
"npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=rc -m \"chore(@nestjs) publish %s release\"",
26+
"publish:next":
27+
"npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=next --skip-git -m \"chore(@nestjs) publish %s release\"",
28+
"publish:beta":
29+
"npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=beta -m \"chore(@nestjs) publish %s release\"",
30+
"publish:test":
31+
"npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --npm-tag=test --skip-git -m \"chore(@nestjs) publish %s release\""
2332
},
2433
"engines": {
2534
"node": ">= 8.9.0"
@@ -132,9 +141,7 @@
132141
}
133142
},
134143
"nyc": {
135-
"include": [
136-
"packages/**/*.ts"
137-
],
144+
"include": ["packages/**/*.ts"],
138145
"exclude": [
139146
"node_modules/",
140147
"packages/**/*.spec.ts",
@@ -154,23 +161,13 @@
154161
"packages/common/serializer/**/*",
155162
"packages/common/services/logger.service.ts"
156163
],
157-
"extension": [
158-
".ts"
159-
],
160-
"require": [
161-
"ts-node/register"
162-
],
163-
"reporter": [
164-
"text-summary",
165-
"html"
166-
],
164+
"extension": [".ts"],
165+
"require": ["ts-node/register"],
166+
"reporter": ["text-summary", "html"],
167167
"sourceMap": true,
168168
"instrument": true
169169
},
170170
"lint-staged": {
171-
"packages/**/*.{ts,json}": [
172-
"npm run format",
173-
"git add"
174-
]
171+
"packages/**/*.{ts,json}": ["npm run format", "git add"]
175172
}
176173
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { expect } from 'chai';
2+
import { ApplicationReferenceHost } from './../../helpers/application-ref-host';
3+
4+
describe('ApplicationReferenceHost', () => {
5+
const applicationRefHost = new ApplicationReferenceHost();
6+
it('should wrap application reference', () => {
7+
const ref = {};
8+
applicationRefHost.applicationRef = ref;
9+
10+
expect(applicationRefHost.applicationRef).to.be.eql(ref);
11+
});
12+
});

packages/core/test/router/router-response-controller.spec.ts

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
import * as sinon from 'sinon';
21
import { expect } from 'chai';
3-
import { RouterResponseController } from '../../router/router-response-controller';
2+
import { of } from 'rxjs';
3+
import * as sinon from 'sinon';
44
import { RequestMethod } from '../../../common';
5-
import { Observable, of } from 'rxjs';
65
import { ExpressAdapter } from '../../adapters/express-adapter';
6+
import { RouterResponseController } from '../../router/router-response-controller';
77

88
describe('RouterResponseController', () => {
9+
let adapter: ExpressAdapter;
910
let routerResponseController: RouterResponseController;
10-
let handlerMock: sinon.SinonMock;
1111

1212
beforeEach(() => {
13-
routerResponseController = new RouterResponseController(new ExpressAdapter({}));
13+
adapter = new ExpressAdapter({});
14+
routerResponseController = new RouterResponseController(adapter);
1415
});
1516

1617
describe('apply', () => {
@@ -67,9 +68,7 @@ describe('RouterResponseController', () => {
6768
it('should returns Promise', async () => {
6869
const value = 100;
6970
expect(
70-
await routerResponseController.transformToResult(
71-
of(value),
72-
),
71+
await routerResponseController.transformToResult(of(value)),
7372
).to.be.eq(100);
7473
});
7574
});
@@ -113,4 +112,22 @@ describe('RouterResponseController', () => {
113112
expect(response.render.calledWith(template, value)).to.be.true;
114113
});
115114
});
115+
116+
describe('setHeaders', () => {
117+
let setHeaderStub: sinon.SinonStub;
118+
119+
beforeEach(() => {
120+
setHeaderStub = sinon.stub(adapter, 'setHeader').callsFake(() => ({}));
121+
});
122+
123+
it('should set all custom headers', () => {
124+
const response = {};
125+
const headers = [{ name: 'test', value: 'test_value' }];
126+
127+
routerResponseController.setHeaders(response, headers);
128+
expect(
129+
setHeaderStub.calledWith(response, headers[0].name, headers[0].value),
130+
).to.be.true;
131+
});
132+
});
116133
});

packages/core/test/router/routes-resolver.spec.ts

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import * as sinon from 'sinon';
1+
import { BadRequestException, Post } from '@nestjs/common';
22
import { expect } from 'chai';
3-
import { RoutesResolver } from '../../router/routes-resolver';
3+
import * as sinon from 'sinon';
44
import { Controller } from '../../../common/decorators/core/controller.decorator';
55
import { Get } from '../../../common/decorators/http/request-mapping.decorator';
6-
import { RequestMethod } from '../../../common/enums/request-method.enum';
7-
import { ApplicationConfig } from '../../application-config';
8-
import { BadRequestException, Post } from '@nestjs/common';
96
import { ExpressAdapter } from '../../adapters/express-adapter';
7+
import { ApplicationConfig } from '../../application-config';
8+
import { RoutesResolver } from '../../router/routes-resolver';
109

1110
describe('RoutesResolver', () => {
1211
@Controller('global')
@@ -22,14 +21,18 @@ describe('RoutesResolver', () => {
2221
let routesResolver: RoutesResolver;
2322
let container;
2423
let modules: Map<string, any>;
24+
let applicationRef;
2525

2626
before(() => {
2727
modules = new Map();
28+
applicationRef = {
29+
use: () => ({}),
30+
setNotFoundHandler: sinon.spy(),
31+
setErrorHandler: sinon.spy(),
32+
};
2833
container = {
2934
getModules: () => modules,
30-
getApplicationRef: () => ({
31-
use: () => ({})
32-
})
35+
getApplicationRef: () => applicationRef,
3336
};
3437
router = {
3538
get() {},
@@ -38,10 +41,7 @@ describe('RoutesResolver', () => {
3841
});
3942

4043
beforeEach(() => {
41-
routesResolver = new RoutesResolver(
42-
container,
43-
new ApplicationConfig(),
44-
);
44+
routesResolver = new RoutesResolver(container, new ApplicationConfig());
4545
});
4646

4747
describe('registerRouters', () => {
@@ -54,20 +54,27 @@ describe('RoutesResolver', () => {
5454
routes.set('TestRoute', routeWrapper);
5555

5656
const appInstance = new ExpressAdapter(router);
57-
const exploreSpy = sinon.spy((routesResolver as any).routerBuilder, 'explore');
57+
const exploreSpy = sinon.spy(
58+
(routesResolver as any).routerBuilder,
59+
'explore',
60+
);
5861
const moduleName = '';
5962

60-
sinon.stub((routesResolver as any).routerBuilder, 'extractRouterPath').callsFake(() => '');
63+
sinon
64+
.stub((routesResolver as any).routerBuilder, 'extractRouterPath')
65+
.callsFake(() => '');
6166
routesResolver.registerRouters(routes, moduleName, '', appInstance);
6267

6368
expect(exploreSpy.called).to.be.true;
64-
expect(exploreSpy.calledWith(
65-
routeWrapper.instance,
66-
routeWrapper.metatype,
67-
moduleName,
68-
appInstance,
69-
'',
70-
)).to.be.true;
69+
expect(
70+
exploreSpy.calledWith(
71+
routeWrapper.instance,
72+
routeWrapper.metatype,
73+
moduleName,
74+
appInstance,
75+
'',
76+
),
77+
).to.be.true;
7178
});
7279
});
7380

@@ -110,4 +117,21 @@ describe('RoutesResolver', () => {
110117
});
111118
});
112119
});
120+
121+
describe('registerNotFoundHandler', () => {
122+
it('should register not found handler', () => {
123+
routesResolver.registerNotFoundHandler();
124+
125+
expect(applicationRef.setNotFoundHandler.called).to.be.true;
126+
});
127+
});
128+
129+
describe('registerExceptionHandler', () => {
130+
it('should register exception handler', () => {
131+
const ref = container.getApplicationRef();
132+
routesResolver.registerExceptionHandler();
133+
134+
expect(applicationRef.setErrorHandler.called).to.be.true;
135+
});
136+
});
113137
});

0 commit comments

Comments
 (0)