
Closes #10503 It is possible for code in `beforeEach` to capture and fork a zone (for example creating `NgZone` in `beforeEach`). Subsequently the code in `it` may chose to do `fakeAsync`. The issue is that because the code in `it` can use `NgZone` from the `beforeEach`. it effectively can escape the `fakeAsync` zone. A solution is to run all of the test in `ProxyZone` which allows a test to dynamically replace the rules at any time. This allows the `beforeEach` to fork a zone, and then `it` to retroactively became `fakeAsync` zone.
18 lines
553 B
TypeScript
18 lines
553 B
TypeScript
/**
|
|
* @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
|
|
*/
|
|
|
|
// Only needed to satisfy the check in core/src/util/decorators.ts
|
|
// TODO(alexeagle): maybe remove that check?
|
|
require('reflect-metadata');
|
|
|
|
require('zone.js/dist/zone-node.js');
|
|
require('zone.js/dist/long-stack-trace-zone.js');
|
|
require('zone.js/dist/sync-test.js');
|
|
require('zone.js/dist/proxy-zone.js');
|
|
require('zone.js/dist/jasmine-patch.js');
|