Browse Source

test(core): add api.interceptor.spec

pull/1921/head
mehmet-erim 7 years ago
parent
commit
62d4bcd24c
  1. 2
      npm/ng-packs/package.json
  2. 74
      npm/ng-packs/packages/core/src/lib/tests/api.interceptor.spec.ts

2
npm/ng-packs/package.json

@ -13,9 +13,9 @@
"@abp/ng.feature-management": "^0.9.0",
"@abp/ng.permission-management": "^0.9.0",
"@abp/ng.theme.shared": "^0.9.0",
"@angular-builders/jest": "^8.2.0",
"@angular-devkit/build-angular": "~0.803.6",
"@angular-devkit/build-ng-packagr": "~0.803.6",
"@angular-builders/jest": "^8.2.0",
"@angular/animations": "~8.2.8",
"@angular/cdk": "^8.2.2",
"@angular/cli": "~8.3.6",

74
npm/ng-packs/packages/core/src/lib/tests/api.interceptor.spec.ts

@ -0,0 +1,74 @@
import { HttpRequest } from '@angular/common/http';
import { SpyObject } from '@ngneat/spectator';
import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest';
import { Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc';
import { Subject, timer } from 'rxjs';
import { ApiInterceptor } from '../interceptors';
import { StartLoader, StopLoader } from '../actions';
describe('ApiInterceptor', () => {
let spectator: SpectatorService<ApiInterceptor>;
let interceptor: ApiInterceptor;
let store: SpyObject<Store>;
let oauthService: SpyObject<OAuthService>;
const createService = createServiceFactory({
service: ApiInterceptor,
mocks: [OAuthService, Store],
});
beforeEach(() => {
spectator = createService();
interceptor = spectator.service;
store = spectator.get(Store);
oauthService = spectator.get(OAuthService);
});
it('should add headers to http request', done => {
oauthService.getAccessToken.andReturn('ey892mkwa8^2jk');
store.selectSnapshot.andReturn({ id: 'test' });
const request = new HttpRequest('GET', 'https://abp.io');
const handleRes$ = new Subject();
const handler = {
handle: (req: HttpRequest<any>) => {
expect(req.headers.get('Authorization')).toEqual('Bearer ey892mkwa8^2jk');
expect(req.headers.get('Accept-Language')).toEqual({ id: 'test' });
expect(req.headers.get('__tenant')).toEqual('test');
done();
return handleRes$;
},
};
interceptor.intercept(request, handler as any);
handleRes$.next();
handleRes$.complete();
});
it('should dispatch the loader', done => {
const spy = jest.spyOn(store, 'dispatch');
const request = new HttpRequest('GET', 'https://abp.io');
const handleRes$ = new Subject();
const handler = {
handle: (req: HttpRequest<any>) => {
return handleRes$;
},
};
interceptor.intercept(request, handler as any).subscribe();
handleRes$.next();
handleRes$.complete();
timer(0).subscribe(() => {
expect(spy.mock.calls[0][0] instanceof StartLoader).toBeTruthy();
expect(spy.mock.calls[1][0] instanceof StopLoader).toBeTruthy();
done();
});
});
});
Loading…
Cancel
Save