jasmineでExpected spy scroll to have been called
お世話になります。
jasmineでangularのテストを実施しています。今回のケースはngOnInitでwindow.scrollイベントが動いた事を確認するテストなのですが、subscribeだとspyOnが検知してくれず困っています。ご教授ください。テストコードは以下に記載します。
ts側(失敗する)
public ngOnInit() {
this.route.events.subscribe(event => {
if (event instanceof NavigationEnd) {
window.scroll(100, 100);
alert("ここ呼ばれているはずだよ!!");
}
})
}
テスト側
import { assert } from 'chai';
import { CounterComponent } from './counter.component';
import { TestBed, async, ComponentFixture } from '@angular/core/testing';
import { RouterModule , Router, NavigationEnd ,Routes } from "@angular/router";
import {APP_BASE_HREF} from '@angular/common';
let fixture: ComponentFixture<CounterComponent>;
const appRoutes: Routes = [
{path: 'counter', component: CounterComponent}
];
describe('Counter component', () => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [CounterComponent],
imports: [
RouterModule.forRoot(appRoutes)
],
providers: [{provide: APP_BASE_HREF, useValue : '/' }]
})
fixture = TestBed.createComponent(CounterComponent);
fixture.detectChanges();
});
it('test', async(() => {
let router: Router;
router = TestBed.get(Router);
spyOn(window, "scroll");
router.navigate(["/counter"]);
fixture.componentInstance.ngOnInit();
expect(window.scroll).toHaveBeenCalled();
}));
});
ts側(これだと成功します)
public ngOnInit() {
window.scroll(100, 100);
this.route.events.subscribe(event => {
if (event instanceof NavigationEnd) {
}
})
}
subscribe後のalertは検知できているのですが、なぜかspyOnで検知できません。