From 44d4ee4fcb7cf8beebac73f85693c09919b91e66 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 23 Jan 2020 14:23:19 +0100 Subject: Fix e2e tests --- client/src/app/shared/rxjs/zone.ts | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 client/src/app/shared/rxjs/zone.ts (limited to 'client/src/app/shared/rxjs') diff --git a/client/src/app/shared/rxjs/zone.ts b/client/src/app/shared/rxjs/zone.ts new file mode 100644 index 000000000..74eed7032 --- /dev/null +++ b/client/src/app/shared/rxjs/zone.ts @@ -0,0 +1,40 @@ +import { SchedulerLike, Subscription } from 'rxjs' +import { NgZone } from '@angular/core' + +class LeaveZoneScheduler implements SchedulerLike { + constructor (private zone: NgZone, private scheduler: SchedulerLike) { + } + + schedule (...args: any[]): Subscription { + return this.zone.runOutsideAngular(() => + this.scheduler.schedule.apply(this.scheduler, args) + ) + } + + now (): number { + return this.scheduler.now() + } +} + +class EnterZoneScheduler implements SchedulerLike { + constructor (private zone: NgZone, private scheduler: SchedulerLike) { + } + + schedule (...args: any[]): Subscription { + return this.zone.run(() => + this.scheduler.schedule.apply(this.scheduler, args) + ) + } + + now (): number { + return this.scheduler.now() + } +} + +export function leaveZone (zone: NgZone, scheduler: SchedulerLike): SchedulerLike { + return new LeaveZoneScheduler(zone, scheduler) +} + +export function enterZone (zone: NgZone, scheduler: SchedulerLike): SchedulerLike { + return new EnterZoneScheduler(zone, scheduler) +} -- cgit v1.2.3