|
1 | | -import * as sinon from 'sinon'; |
2 | 1 | import { expect } from 'chai'; |
| 2 | +import { of } from 'rxjs'; |
| 3 | +import * as sinon from 'sinon'; |
| 4 | +import { ApplicationConfig } from '../../../core/application-config'; |
| 5 | +import { GuardsConsumer } from '../../../core/guards/guards-consumer'; |
| 6 | +import { GuardsContextCreator } from '../../../core/guards/guards-context-creator'; |
| 7 | +import { NestContainer } from '../../../core/injector/container'; |
| 8 | +import { InterceptorsConsumer } from '../../../core/interceptors/interceptors-consumer'; |
| 9 | +import { InterceptorsContextCreator } from '../../../core/interceptors/interceptors-context-creator'; |
| 10 | +import { PipesConsumer } from '../../../core/pipes/pipes-consumer'; |
| 11 | +import { PipesContextCreator } from '../../../core/pipes/pipes-context-creator'; |
| 12 | +import { RpcException } from '../../index'; |
3 | 13 | import { |
| 14 | + Component, |
4 | 15 | Guard, |
5 | 16 | Injectable, |
6 | 17 | UseGuards, |
7 | | - Component, |
8 | 18 | UsePipes, |
9 | 19 | } from './../../../common'; |
10 | | -import { RpcProxy } from './../../context/rpc-proxy'; |
11 | | -import { RpcContextCreator } from './../../context/rpc-context-creator'; |
12 | | -import { RpcExceptionsHandler } from '../../exceptions/rpc-exceptions-handler'; |
13 | 20 | import { ExceptionFiltersContext } from './../../context/exception-filters-context'; |
14 | | -import { PipesContextCreator } from '../../../core/pipes/pipes-context-creator'; |
15 | | -import { PipesConsumer } from '../../../core/pipes/pipes-consumer'; |
16 | | -import { PARAMTYPES_METADATA } from '../../../common/constants'; |
17 | | -import { GuardsContextCreator } from '../../../core/guards/guards-context-creator'; |
18 | | -import { GuardsConsumer } from '../../../core/guards/guards-consumer'; |
19 | | -import { NestContainer } from '../../../core/injector/container'; |
20 | | -import { Observable, of } from 'rxjs'; |
21 | | -import { RpcException } from '../../index'; |
22 | | -import { InterceptorsContextCreator } from '../../../core/interceptors/interceptors-context-creator'; |
23 | | -import { InterceptorsConsumer } from '../../../core/interceptors/interceptors-consumer'; |
24 | | -import { ApplicationConfig } from '../../../core/application-config'; |
| 21 | +import { RpcContextCreator } from './../../context/rpc-context-creator'; |
| 22 | +import { RpcProxy } from './../../context/rpc-proxy'; |
25 | 23 |
|
26 | 24 | @Guard() |
27 | 25 | class TestGuard { |
@@ -102,6 +100,9 @@ describe('RpcContextCreator', () => { |
102 | 100 | describe('when proxy called', () => { |
103 | 101 | it('should call guards consumer `tryActivate`', async () => { |
104 | 102 | const tryActivateSpy = sinon.spy(guardsConsumer, 'tryActivate'); |
| 103 | + sinon |
| 104 | + .stub(guardsContextCreator, 'create') |
| 105 | + .callsFake(() => [{ canActivate: () => true }]); |
105 | 106 | const proxy = await contextCreator.create( |
106 | 107 | instance, |
107 | 108 | instance.test, |
@@ -168,4 +169,11 @@ describe('RpcContextCreator', () => { |
168 | 169 | }); |
169 | 170 | }); |
170 | 171 | }); |
| 172 | + describe('createGuardsFn', () => { |
| 173 | + it('should throw exception when "tryActivate" returns false', () => { |
| 174 | + const guardsFn = contextCreator.createGuardsFn([null], null, null); |
| 175 | + sinon.stub(guardsConsumer, 'tryActivate').callsFake(() => false); |
| 176 | + expect(guardsFn([])).to.eventually.throw(); |
| 177 | + }); |
| 178 | + }); |
171 | 179 | }); |
0 commit comments