#angular #location #karma-jasmine #window.location
Вопрос:
Я хочу протестировать эту функцию :
onLinkClick() { if (this.congratsType === 'warning') { this.location.back(); } else { window.location.href = this.urlNol; } }
Я уже пробовал с этим:
let loc: Location; beforeEach(waitForAsync(() =gt; { TestBed.configureTestingModule({ declarations: [EndFlowComponent], providers: [ { provide: location, useValue: window.history }, ], }).compileComponents(); })); beforeEach(() =gt; { loc = jasmine.createSpyObj('Location', ['back']); }); it(' redirect on Link click', () =gt; { const congratsTypes = ['success', 'error' , 'info']; // tslint:disable-next-line: no-increment-decrement for (let i = 0; i lt; congratsTypes.length; i ) { component.congratsType = congratsTypes[i]; component.onLinkClick(); expect(loc.back).toHaveBeenCalledTimes(1); } })
когда я запускаю тест, браузер перемещается на внешнюю страницу. Но я хочу запустить его, фактически не переходя по этому URL-адресу.