Угловые тесты SpyNgModuleFactoryLoader.stubbedModules не могут распознать 2 ленивых модуля - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь проверить навигацию маршрутизатора с ленивыми модулями с угловой 6 кармой.но я получаю консольные ошибки

Cannot find module app/features/landing/landing.module#landingPageModule.

тогда я использую

loader = TestBed.get(NgModuleFactoryLoader); loader.stubbedModules = { 'landingPageModule': LandingPageModule };

 router.resetConfig([
    {path: 'main', loadChildren: 'landingPageModule'},
    {path: 'main/auth/login', loadChildren: 'AuthModule'},
    {path: 'main/auth/sign-up', loadChildren: 'AuthModule'}
]);

все хорошо, когда я нахожусь в навигации

{path: 'main', loadChildren: 'landingPageModule'},

нокогда я перемещаюсь

{path: 'main/auth/login', loadChildren: 'AuthModule'},

я все еще получаю

Cannot find module app/features/auth/auth.module#AuthModule ошибку на консоли.

LandingPageroutes выглядит так

export const landingPageRoutes: Routes = [
{path: '', component: HomeComponent, canActivate: [AuthGuard],data: {roles: ['user']}},
{
    path: 'auth', component: LandingPageComponent, children: [
        {path: '', pathMatch: 'full', redirectTo: 'login'},
        {path: '', loadChildren: 'app/features/auth/auth.module#AuthModule'},
    ]
},

AuthModule объявлен в LandingPageModule, поэтому мне нужно заблокировать 2 модуля в SpyNgModuleFactoryLoader, но он не работает

loader = TestBed.get(NgModuleFactoryLoader);
    loader.stubbedModules = {
        'AuthModule' : AuthModule,
        'landingPageModule': LandingPageModule
    };

1 Ответ

0 голосов
/ 25 мая 2018

Проблема была в

 router.resetConfig([
        {path: 'main', loadChildren: 'landingPageModule'},
        {path: 'main/auth/login', loadChildren: 'AuthModule'},
        {path: 'main/auth/sign-up', loadChildren: 'AuthModule'}
    ]);

Нет необходимости объявлять 2 различных модуля на router.resetConfig, просто замените изменение AuthModule на landingPageModule.

     router.resetConfig([
        {path: 'main', loadChildren: 'AuthModule'},
        {path: 'main/auth/login', loadChildren: 'AuthModule'},
        {path: 'main/auth/sign-up', loadChildren: 'AuthModule'}
    ]);
...