お世話になります。

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で検知できません。