Skip to content

Commit afaf23e

Browse files
Merge branch 'master' of https://github.com/nestjs/nest
2 parents ca6d226 + 0c6385d commit afaf23e

26 files changed

Lines changed: 282 additions & 305 deletions

integration/injector/e2e/property-injection.spec.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { expect } from 'chai';
33
import { DependencyService } from '../src/properties/dependency.service';
44
import { PropertiesModule } from '../src/properties/properties.module';
55
import { PropertiesService } from '../src/properties/properties.service';
6+
import { UnknownDependenciesException } from '@nestjs/core/errors/exceptions/unknown-dependencies.exception';
67

78
describe('Injector', () => {
89
it('should resolve property-based dependencies', async () => {
@@ -14,5 +15,30 @@ describe('Injector', () => {
1415

1516
expect(app.get(PropertiesService).service).to.be.eql(dependency);
1617
expect(app.get(PropertiesService).token).to.be.true;
18+
expect(app.get(PropertiesService).symbolToken).to.be.true;
19+
});
20+
21+
it('should throw UnknownDependenciesException when dependency is not met', async () => {
22+
let exception;
23+
24+
try {
25+
const builder = Test.createTestingModule({
26+
providers: [
27+
DependencyService,
28+
PropertiesService,
29+
{
30+
provide: 'token',
31+
useValue: true,
32+
},
33+
// symbol token is missing here
34+
],
35+
});
36+
const app = await builder.compile();
37+
app.get(DependencyService);
38+
} catch (e) {
39+
exception = e;
40+
}
41+
42+
expect(exception).to.be.instanceOf(UnknownDependenciesException);
1743
});
1844
});

integration/injector/src/properties/properties.module.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Module } from '@nestjs/common';
22
import { DependencyService } from './dependency.service';
3-
import { PropertiesService } from './properties.service';
3+
import { PropertiesService, SYMBOL_TOKEN } from './properties.service';
44

55
@Module({
66
providers: [
@@ -10,6 +10,10 @@ import { PropertiesService } from './properties.service';
1010
provide: 'token',
1111
useValue: true,
1212
},
13+
{
14+
provide: SYMBOL_TOKEN,
15+
useValue: true,
16+
},
1317
],
1418
})
1519
export class PropertiesModule {}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import { Inject, Injectable } from '@nestjs/common';
22
import { DependencyService } from './dependency.service';
33

4+
export const SYMBOL_TOKEN = Symbol('token');
5+
46
@Injectable()
57
export class PropertiesService {
68
@Inject() service: DependencyService;
79
@Inject('token') token: boolean;
10+
@Inject(SYMBOL_TOKEN) symbolToken: boolean;
811
}

integration/mongoose/package-lock.json

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

integration/mongoose/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
"@nestjs/common": "6.10.12",
1313
"@nestjs/core": "6.10.12",
1414
"@nestjs/mongoose": "6.1.2",
15-
"mongoose": "5.8.2",
15+
"mongoose": "5.8.3",
1616
"reflect-metadata": "0.1.13",
1717
"rxjs": "6.5.3",
1818
"typescript": "3.7.2"
1919
},
2020
"devDependencies": {
21-
"@types/mongoose": "5.5.34",
21+
"@types/mongoose": "5.5.35",
2222
"@types/node": "7.10.9",
2323
"ts-node": "8.5.4",
2424
"tslint": "5.20.1"

0 commit comments

Comments
 (0)