Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test: TTA-193 increase code coverage
  • Loading branch information
andresacg30 committed Oct 7, 2022
commit 91d1e2e29e5b82088deff45034ee2726e8f9850d
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ import { Component } from '@angular/core';

export class SpinnerOverlayComponent {
constructor() {}
}
}
18 changes: 10 additions & 8 deletions src/app/modules/shared/interceptors/spinner.interceptor.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Overlay } from '@angular/cdk/overlay';
import { TestBed } from '@angular/core/testing';
import { SpinnerInterceptor } from './spinner.interceptor';
import { HttpHandler, HttpRequest, HttpResponse, HttpEvent } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { Observable, of, Subscription } from 'rxjs';
import { SpinnerOverlayService } from '../services/spinner-overlay.service';


Expand All @@ -14,20 +14,22 @@ describe('SpinnerInterceptorService test', () => {
],
});

class MockHttpHandler implements HttpHandler {
handle(req: HttpRequest<any>): Observable<HttpEvent<any>> {
return of(new HttpResponse());
}
class MockHttpHandler implements HttpHandler {
handle(req: HttpRequest<any>): Observable<HttpEvent<any>> {
return of(new HttpResponse());
}
}

let overlay: Overlay;
let httpHandler: HttpHandler;
let spinnerInterceptor: SpinnerInterceptor;
let spinnerOverlayService: SpinnerOverlayService;

beforeEach(() => {
overlay = jasmine.createSpyObj('Overlay', ['create']);
httpHandler = new MockHttpHandler();
spinnerInterceptor = new SpinnerInterceptor(new SpinnerOverlayService(overlay));
spinnerOverlayService = new SpinnerOverlayService(overlay);
});

it('should be created', () => {
Expand All @@ -36,14 +38,14 @@ describe('SpinnerInterceptorService test', () => {

it('if request is made then spinnerInterceptor is called', () => {
const request = new HttpRequest('GET', '/foo');


const spinnerSubscription: Subscription = spinnerOverlayService.spinner$.subscribe();
spyOn(spinnerSubscription, 'unsubscribe')
spyOn(spinnerInterceptor, 'intercept').and.callThrough();

spinnerInterceptor.intercept(request, httpHandler);

expect(spinnerInterceptor.intercept).toHaveBeenCalledWith(request, httpHandler);

expect(spinnerSubscription.unsubscribe).toBeTruthy();
});

});
20 changes: 7 additions & 13 deletions src/app/modules/shared/services/spinner-overlay.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ describe('SpinnerOverlayService test', () => {
providers: [
Overlay,
SpinnerInterceptor,
{
provide: HTTP_INTERCEPTORS,
useClass: SpinnerInterceptor,
multi: true,
},
{
provide: HTTP_INTERCEPTORS,
useClass: SpinnerInterceptor,
multi: true,
},
],
});
spinnerService = TestBed.inject(SpinnerOverlayService);
Expand All @@ -46,20 +46,14 @@ describe('SpinnerOverlayService test', () => {
it('if request is made then spinnerService is show', () => {
const request = new HttpRequest('GET', '/foo');
spyOn(spinnerService, 'show');
spyOn(spinnerService, 'hide');

spinnerInterceptor.intercept(request, mockHttpHandler);

expect(spinnerService.show).toHaveBeenCalled();
expect(overlayRef).toBeUndefined();
expect(ComponentPortal).toBeTruthy();
expect(spinnerService.hide).toBeTruthy();
});

it('if request is made then spinnerService is hide', () => {
const request = new HttpRequest('GET', '/foo');
spyOn(spinnerService, 'hide');

spinnerInterceptor.intercept(request, mockHttpHandler);

expect(spinnerService.hide).toBeTruthy();
});
});
7 changes: 4 additions & 3 deletions src/app/modules/shared/services/spinner-overlay.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ import { SpinnerOverlayComponent } from './../components/spinner-overlay/spinner
providedIn: 'root',
})
export class SpinnerOverlayService {
public overlayRef: OverlayRef = undefined;
static spinner$: any;
public overlayRef: OverlayRef = undefined;


constructor(private readonly overlay: Overlay) {}
constructor(private readonly overlay: Overlay) { }

public readonly spinner$ = defer(() => {
this.show();
Expand Down Expand Up @@ -41,4 +42,4 @@ export class SpinnerOverlayService {
this.overlayRef.detach();
this.overlayRef = undefined;
}
};
}