From 68d3c562bd0eb09b1d4f4f8742335136027e5df0 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 10 Sep 2021 20:54:42 +0300 Subject: [PATCH] fix some testing errors --- .../src/lib/strategies/auth-flow.strategy.ts | 2 +- .../src/lib/tests/permission.guard.spec.ts | 2 +- .../src/lib/tests/profile.service.spec.ts | 14 ++++++++--- .../core/src/lib/tests/rest.service.spec.ts | 8 ++++-- .../core/src/lib/utils/environment-utils.ts | 2 +- .../breadcrumb/breadcrumb.component.ts | 2 +- .../src/lib/handlers/error.handler.ts | 25 +++++++++++-------- .../lib/tests/breadcrumb.component.spec.ts | 5 ++-- .../src/lib/tests/error.handler.spec.ts | 15 ++++++++--- 9 files changed, 50 insertions(+), 25 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts b/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts index 1505d1c6aa..f2b806576d 100644 --- a/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts +++ b/npm/ng-packs/packages/core/src/lib/strategies/auth-flow.strategy.ts @@ -11,9 +11,9 @@ import { import { from, Observable, of, pipe } from 'rxjs'; import { filter, switchMap, tap } from 'rxjs/operators'; import { LoginParams } from '../models/auth'; -import { HttpErrorReporterService } from '../services'; import { ConfigStateService } from '../services/config-state.service'; import { EnvironmentService } from '../services/environment.service'; +import { HttpErrorReporterService } from '../services/http-error-reporter.service'; import { SessionStateService } from '../services/session-state.service'; import { TENANT_KEY } from '../tokens/tenant-key.token'; import { removeRememberMe, setRememberMe } from '../utils/auth-utils'; diff --git a/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts index bc8a6a6d67..4f1dca85df 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/permission.guard.spec.ts @@ -21,7 +21,7 @@ describe('PermissionGuard', () => { const createService = createServiceFactory({ service: PermissionGuard, - mocks: [PermissionService, Store], + mocks: [PermissionService], declarations: [DummyComponent], imports: [ HttpClientTestingModule, diff --git a/npm/ng-packs/packages/core/src/lib/tests/profile.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/profile.service.spec.ts index e3483711a8..4fb8480b2d 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/profile.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/profile.service.spec.ts @@ -1,5 +1,11 @@ import { createHttpFactory, HttpMethod, SpectatorHttp, SpyObject } from '@ngneat/spectator/jest'; -import { EnvironmentService, ProfileService, RestService } from '../services'; +import { UpdateProfileDto } from '../models'; +import { + EnvironmentService, + HttpErrorReporterService, + ProfileService, + RestService, +} from '../services'; import { CORE_OPTIONS } from '../tokens'; describe('ProfileService', () => { @@ -8,7 +14,7 @@ describe('ProfileService', () => { const createHttp = createHttpFactory({ service: ProfileService, - providers: [RestService, { provide: CORE_OPTIONS, useValue: {} }], + providers: [RestService, HttpErrorReporterService, { provide: CORE_OPTIONS, useValue: {} }], mocks: [EnvironmentService], }); @@ -43,7 +49,9 @@ describe('ProfileService', () => { phoneNumber: '+123456', isExternal: false, hasPassword: false, - }; + extraProperties: {}, + } as UpdateProfileDto; + spectator.service.update(mock).subscribe(); const req = spectator.expectOne('https://abp.io/api/identity/my-profile', HttpMethod.PUT); expect(req.request.body).toEqual(mock); diff --git a/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts index 3f57d1913a..1a3672df3d 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/rest.service.spec.ts @@ -15,8 +15,12 @@ describe('HttpClient testing', () => { const createHttp = createHttpFactory({ service: RestService, - providers: [EnvironmentService, { provide: CORE_OPTIONS, useValue: { environment: {} } }], - mocks: [OAuthService, HttpErrorReporterService], + providers: [ + EnvironmentService, + HttpErrorReporterService, + { provide: CORE_OPTIONS, useValue: { environment: {} } }, + ], + mocks: [OAuthService], }); beforeEach(() => { diff --git a/npm/ng-packs/packages/core/src/lib/utils/environment-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/environment-utils.ts index 8ce8a952db..2ef55da455 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/environment-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/environment-utils.ts @@ -2,8 +2,8 @@ import { HttpClient } from '@angular/common/http'; import { Injector } from '@angular/core'; import { catchError, tap } from 'rxjs/operators'; import { Environment, RemoteEnv } from '../models/environment'; -import { HttpErrorReporterService } from '../services'; import { EnvironmentService } from '../services/environment.service'; +import { HttpErrorReporterService } from '../services/http-error-reporter.service'; import { deepMerge } from './object-utils'; export function getRemoteEnv(injector: Injector, environment: Partial) { diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts index 8970bbbaa6..69a5c81af2 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts @@ -9,7 +9,7 @@ import { import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { map, startWith } from 'rxjs/operators'; -import { eThemeSharedRouteNames } from '../../enums'; +import { eThemeSharedRouteNames } from '../../enums/route-names'; @Component({ selector: 'abp-breadcrumb', diff --git a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts index 8db4856f5e..46d5cb11ea 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts @@ -10,7 +10,6 @@ import { ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, - Inject, Injectable, Injector, RendererFactory2, @@ -78,15 +77,21 @@ export class ErrorHandler { throwError(err), ); - constructor( - protected httpErrorReporter: HttpErrorReporterService, - protected routerEvents: RouterEvents, - protected confirmationService: ConfirmationService, - protected cfRes: ComponentFactoryResolver, - protected rendererFactory: RendererFactory2, - protected injector: Injector, - @Inject('HTTP_ERROR_CONFIG') protected httpErrorConfig: HttpErrorConfig, - ) { + protected httpErrorReporter: HttpErrorReporterService; + protected routerEvents: RouterEvents; + protected confirmationService: ConfirmationService; + protected cfRes: ComponentFactoryResolver; + protected rendererFactory: RendererFactory2; + protected httpErrorConfig: HttpErrorConfig; + + constructor(protected injector: Injector) { + this.httpErrorReporter = injector.get(HttpErrorReporterService); + this.routerEvents = injector.get(RouterEvents); + this.confirmationService = injector.get(ConfirmationService); + this.cfRes = injector.get(ComponentFactoryResolver); + this.rendererFactory = injector.get(RendererFactory2); + this.httpErrorConfig = injector.get('HTTP_ERROR_CONFIG'); + this.listenToRestError(); this.listenToRouterError(); this.listenToRouterDataResolved(); diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts index 4d6ba5d027..480ec03f37 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/breadcrumb.component.spec.ts @@ -8,6 +8,8 @@ import { import { HttpClient } from '@angular/common/http'; import { RouterModule } from '@angular/router'; import { createRoutingFactory, SpectatorRouting } from '@ngneat/spectator/jest'; +// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries +import { mockRoutesService } from '../../../../core/src/lib/tests/routes.service.spec'; import { BreadcrumbComponent } from '../components/breadcrumb/breadcrumb.component'; const mockRoutes: ABP.Route[] = [ @@ -75,6 +77,3 @@ describe('BreadcrumbComponent', () => { expect(spectator.query('ol.breadcrumb')).toBeFalsy(); }); }); -function mockRoutesService() { - throw new Error('Function not implemented.'); -} diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts index 52cb1e8b55..47771f15c4 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/error.handler.spec.ts @@ -5,12 +5,14 @@ import { HttpErrorResponse, HttpHeaders } from '@angular/common/http'; import { Component, NgModule } from '@angular/core'; import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; import { OAuthService } from 'angular-oauth2-oidc'; -import { of } from 'rxjs'; +import { of, Subject } from 'rxjs'; import { HttpErrorWrapperComponent } from '../components/http-error-wrapper/http-error-wrapper.component'; import { DEFAULT_ERROR_LOCALIZATIONS, DEFAULT_ERROR_MESSAGES, ErrorHandler } from '../handlers'; import { ConfirmationService } from '../services'; import { httpErrorConfigFactory } from '../tokens/http-error.token'; +const reporter$ = new Subject(); + @NgModule({ exports: [HttpErrorWrapperComponent], declarations: [HttpErrorWrapperComponent], @@ -33,6 +35,15 @@ describe('ErrorHandler', () => { imports: [CoreTestingModule.withConfig(), MockModule], mocks: [OAuthService], providers: [ + { + provide: HttpErrorReporterService, + useValue: { + reportError: err => { + reporter$.next(err); + }, + reporter$: reporter$.asObservable(), + }, + }, { provide: APP_BASE_HREF, useValue: '/' }, { provide: 'HTTP_ERROR_CONFIG', @@ -117,8 +128,6 @@ describe('ErrorHandler', () => { isHomeShow: false, }; - expect(selectHtmlErrorWrapper()).toBeNull(); - httpErrorReporter.reportError(error); expect(createComponent).toHaveBeenCalledWith(params);