Я настраиваю UT (используя жасмин) для приложения Angular 7, чтобы проверить метод, который использует эффект угловой анимации на основе текущего свойства анимации маршрута.
Я даже не знаю, как определить это для жасмина
//#region ANGULAR 7 SOURCE CODE
getAnimationEffect(outlet: RouterOutlet): string {
let currentAnimationEffect = '';
if (outlet && outlet.activatedRouteData) {
if (outlet.activatedRouteData['moduleIndex'] &&
outlet.activatedRouteData['moduleIndex'] > 0 &&
outlet.activatedRouteData['moduleIndex'] !== this.currentModuleIndex) {
this.currentModuleIndex = _.cloneDeep(outlet.activatedRouteData['moduleIndex']);
currentAnimationEffect = 'isModuleLanding';
} else {
currentAnimationEffect = outlet.activatedRouteData['animation'];
}
} else {
currentAnimationEffect = 'isModuleLanding';
}
return currentAnimationEffect;
}
//#endregion
//#region ANGULAR 7 UT
describe('testing routing stuff', () => {
const testRoutes: Routes = [
{
path: 'module',
data: { title: 'Module', moduleIndex: 1 }
},
{
path: 'tab',
data: { title: 'Module -> Tab', animation: 'tabLanding', moduleIndex: 1 }
},
{
path: 'detail',
data: { title: 'Module -> Tab -> Detail', animation: 'detailLanding', moduleIndex: 1 }
}
];
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [ RouterTestingModule.withRoutes(testRoutes) ],
...
})
.compileComponents();
}));
});
it('should get the animation effect that correspond to the current active route',
async(() => {
// Provoke navigation end to route 'module/tab/detail'
const event = new NavigationEnd(666, '/module/tab', '/module/tab/detail');
TestBed.get(Router).events.next(event);
// Get response to current active route animation effect that correspond to this route
const testAnimationEffect = componentBaseView.getAnimationEffect(<IDontKnowHowToDefineAParamHere>)
// Assert
expect(testAnimationEffect).toEqual('detailLadning');
})
);
});
//#endregion
Я ожидал, что смогу протестировать этот эффект анимации, когда текущий активированный маршрутизатор, его вкладка / x / detail, вернет мне «detailLanding».
Я не знаю, как мне это настроить, и я не смог найти ни одного теста, в котором метод получал бы сам маршрутизатор-розетку.
Есть мысли здесь?