
committed by
Kara Erickson

parent
7b3bcc23af
commit
5eb7426216
33
packages/zone.js/lib/zone-spec/sync-test.ts
Normal file
33
packages/zone.js/lib/zone-spec/sync-test.ts
Normal file
@ -0,0 +1,33 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google Inc. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by an MIT-style license that can be
|
||||
* found in the LICENSE file at https://angular.io/license
|
||||
*/
|
||||
|
||||
class SyncTestZoneSpec implements ZoneSpec {
|
||||
runZone = Zone.current;
|
||||
|
||||
constructor(namePrefix: string) { this.name = 'syncTestZone for ' + namePrefix; }
|
||||
|
||||
// ZoneSpec implementation below.
|
||||
|
||||
name: string;
|
||||
|
||||
onScheduleTask(delegate: ZoneDelegate, current: Zone, target: Zone, task: Task): Task {
|
||||
switch (task.type) {
|
||||
case 'microTask':
|
||||
case 'macroTask':
|
||||
throw new Error(`Cannot call ${task.source} from within a sync test.`);
|
||||
case 'eventTask':
|
||||
task = delegate.scheduleTask(target, task);
|
||||
break;
|
||||
}
|
||||
return task;
|
||||
}
|
||||
}
|
||||
|
||||
// Export the class so that new instances can be created with proper
|
||||
// constructor params.
|
||||
(Zone as any)['SyncTestZoneSpec'] = SyncTestZoneSpec;
|
Reference in New Issue
Block a user