После обновления с углового 7 до 8 произошли серьезные изменения в loadChildren для маршрутов вашего приложения. Когда они исправлены и все тесты запущены, я не получаю 100% покрытия кода (больше), потому что loadChildren больше не «строка», а LoadChildrenCallBack.
Как мне проверить эту особенную часть кода
установка:
import { NgModule } from '@angular/core';
import { RouterModule, RouterStateSnapshot, Routes } from '@angular/router';
import {
RouterStateSerializer,
StoreRouterConnectingModule,
} from '@ngrx/router-store';
import { LanguageGuard } from '@routes/guards/language-guard.service';
import { RouterStateUrl } from 'interfaces';
import { ErrorPageComponent } from 'pages';
/**
* Class to implements the RouterStateSerializer with a custom serializer
*/
export class CustomSerializer implements RouterStateSerializer<RouterStateUrl> {
/**
* Serialize the RouterState with the CustomSerialzer
* @param {RouterStateSnapshot} routerState
* @returns RouterStateUrl
*/
serialize(routerState: RouterStateSnapshot): RouterStateUrl {
let route = routerState.root;
while (route.firstChild) {
route = route.firstChild;
}
const {
url,
root: { queryParams },
} = routerState;
const { params } = route;
return { url, params, queryParams };
}
}
const appRoutes: Routes = [
{
children: [
{
path: '',
pathMatch: 'prefix',
redirectTo: 'en',
},
{
component: ErrorPageComponent,
path: '404',
},
{
canActivate: [LanguageGuard],
children: [
{
loadChildren: () =>
import('../modules/home.module').then(
m => m.HomeModule,
),
path: '',
pathMatch: 'full',
},
],
path: ':language',
},
],
path: '',
runGuardsAndResolvers: 'always',
},
];
/**
* Marks an class as an NgModule so it could be configured
*/
@NgModule({
exports: [RouterModule],
imports: [
RouterModule.forRoot(appRoutes, {
enableTracing: false,
onSameUrlNavigation: 'reload',
}),
StoreRouterConnectingModule.forRoot({
serializer: CustomSerializer,
}),
],
providers: [{ provide: RouterStateSerializer, useClass: CustomSerializer }],
})
/**
* Exports the AppRoutingModule from the NgModule
*/
export class AppRoutingModule {}