jest.mock('@angular/router'); import { TestBed } from '@angular/core/testing'; import { HttpResponse } from '@angular/common/http'; import { HttpClientTestingModule } from '@angular/common/http/testing'; import { ActivatedRouteSnapshot, Router } from '@angular/router'; import { of } from 'rxjs'; import { IEPreguntaAbiertaRespuesta, EPreguntaAbiertaRespuesta } from '../e-pregunta-abierta-respuesta.model'; import { EPreguntaAbiertaRespuestaService } from '../service/e-pregunta-abierta-respuesta.service'; import { EPreguntaAbiertaRespuestaRoutingResolveService } from './e-pregunta-abierta-respuesta-routing-resolve.service'; describe('Service Tests', () => { describe('EPreguntaAbiertaRespuesta routing resolve service', () => { let mockRouter: Router; let mockActivatedRouteSnapshot: ActivatedRouteSnapshot; let routingResolveService: EPreguntaAbiertaRespuestaRoutingResolveService; let service: EPreguntaAbiertaRespuestaService; let resultEPreguntaAbiertaRespuesta: IEPreguntaAbiertaRespuesta | undefined; beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [Router, ActivatedRouteSnapshot], }); mockRouter = TestBed.inject(Router); mockActivatedRouteSnapshot = TestBed.inject(ActivatedRouteSnapshot); routingResolveService = TestBed.inject(EPreguntaAbiertaRespuestaRoutingResolveService); service = TestBed.inject(EPreguntaAbiertaRespuestaService); resultEPreguntaAbiertaRespuesta = undefined; }); describe('resolve', () => { it('should return IEPreguntaAbiertaRespuesta returned by find', () => { // GIVEN service.find = jest.fn(id => of(new HttpResponse({ body: { id } }))); mockActivatedRouteSnapshot.params = { id: 123 }; // WHEN routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { resultEPreguntaAbiertaRespuesta = result; }); // THEN expect(service.find).toBeCalledWith(123); expect(resultEPreguntaAbiertaRespuesta).toEqual({ id: 123 }); }); it('should return new IEPreguntaAbiertaRespuesta if id is not provided', () => { // GIVEN service.find = jest.fn(); mockActivatedRouteSnapshot.params = {}; // WHEN routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { resultEPreguntaAbiertaRespuesta = result; }); // THEN expect(service.find).not.toBeCalled(); expect(resultEPreguntaAbiertaRespuesta).toEqual(new EPreguntaAbiertaRespuesta()); }); it('should route to 404 page if data not found in server', () => { // GIVEN jest.spyOn(service, 'find').mockReturnValue(of(new HttpResponse({ body: null as unknown as EPreguntaAbiertaRespuesta }))); mockActivatedRouteSnapshot.params = { id: 123 }; // WHEN routingResolveService.resolve(mockActivatedRouteSnapshot).subscribe(result => { resultEPreguntaAbiertaRespuesta = result; }); // THEN expect(service.find).toBeCalledWith(123); expect(resultEPreguntaAbiertaRespuesta).toEqual(undefined); expect(mockRouter.navigate).toHaveBeenCalledWith(['404']); }); }); }); });