import {Injectable, NgZone} from '../index'; import {EventEmitter, ObservableWrapper} from '../src/facade/async'; /** * A mock implementation of {@link NgZone}. */ @Injectable() export class MockNgZone extends NgZone { private _mockOnStable: EventEmitter = new EventEmitter(false); constructor() { super({enableLongStackTrace: false}); } get onStable() { return this._mockOnStable; } run(fn: Function): any { return fn(); } runOutsideAngular(fn: Function): any { return fn(); } simulateZoneExit(): void { ObservableWrapper.callNext(this.onStable, null); } }