@angular/core 11.0.2 → 11.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/core-testing.umd.js +16 -281
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core-testing.umd.min.js +11 -25
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +5063 -5033
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +158 -158
- package/bundles/core.umd.min.js.map +1 -1
- package/core.d.ts +9 -6
- package/core.metadata.json +1 -1
- package/esm2015/core.js +2 -2
- package/esm2015/src/change_detection/change_detector_ref.js +2 -2
- package/esm2015/src/core_render3_private_export.js +2 -1
- package/esm2015/src/di/interface/defs.js +2 -2
- package/esm2015/src/di/jit/util.js +3 -2
- package/esm2015/src/di/metadata.js +2 -10
- package/esm2015/src/di/metadata_attr.js +24 -0
- package/esm2015/src/linker/element_ref.js +2 -2
- package/esm2015/src/metadata.js +2 -2
- package/esm2015/src/render3/definition.js +2 -2
- package/esm2015/src/render3/i18n/i18n_parse.js +3 -2
- package/esm2015/src/render3/instructions/all.js +2 -1
- package/esm2015/src/render3/instructions/di.js +2 -10
- package/esm2015/src/render3/instructions/di_attr.js +18 -0
- package/esm2015/src/render3/instructions/listener.js +6 -1
- package/esm2015/src/render3/util/stringify_utils.js +5 -2
- package/esm2015/src/sanitization/bypass.js +3 -3
- package/esm2015/src/sanitization/html_sanitizer.js +6 -6
- package/esm2015/src/sanitization/sanitization.js +2 -2
- package/esm2015/src/sanitization/url_sanitizer.js +2 -2
- package/esm2015/src/version.js +1 -1
- package/esm2015/src/zone/ng_zone.js +2 -2
- package/esm2015/testing/src/async.js +5 -6
- package/esm2015/testing/src/fake_async.js +9 -20
- package/fesm2015/core.js +4700 -4670
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +17 -274
- package/fesm2015/testing.js.map +1 -1
- package/package.json +1 -1
- package/schematics/migrations/abstract-control-parent/index.js +2 -2
- package/schematics/migrations/dynamic-queries/index.js +2 -2
- package/schematics/migrations/initial-navigation/index.js +3 -3
- package/schematics/migrations/initial-navigation/transform.d.ts +1 -2
- package/schematics/migrations/initial-navigation/transform.js +2 -13
- package/schematics/migrations/missing-injectable/index.js +2 -2
- package/schematics/migrations/module-with-providers/index.js +2 -2
- package/schematics/migrations/move-document/index.js +2 -2
- package/schematics/migrations/native-view-encapsulation/index.js +2 -2
- package/schematics/migrations/navigation-extras-omissions/index.js +2 -2
- package/schematics/migrations/relative-link-resolution/index.js +2 -2
- package/schematics/migrations/renderer-to-renderer2/index.js +2 -2
- package/schematics/migrations/router-preserve-query-params/index.js +2 -2
- package/schematics/migrations/static-queries/index.js +2 -2
- package/schematics/migrations/template-var-assignment/index.js +2 -2
- package/schematics/migrations/undecorated-classes-with-decorated-fields/index.js +2 -2
- package/schematics/migrations/undecorated-classes-with-di/index.js +2 -2
- package/schematics/migrations/wait-for-async/index.js +2 -2
- package/schematics/utils/typescript/compiler_host.d.ts +7 -0
- package/schematics/utils/typescript/compiler_host.js +21 -2
- package/src/r3_symbols.d.ts +3 -3
- package/testing/testing.d.ts +1 -1
- package/testing.d.ts +1 -1
- package/esm2015/testing/src/async_fallback.js +0 -102
- package/esm2015/testing/src/fake_async_fallback.js +0 -145
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v11.0.
|
|
2
|
+
* @license Angular v11.0.3
|
|
3
3
|
* (c) 2010-2020 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -10,109 +10,6 @@
|
|
|
10
10
|
(global = global || self, factory((global.ng = global.ng || {}, global.ng.core = global.ng.core || {}, global.ng.core.testing = {}), global.ng.core, global.ng.compiler));
|
|
11
11
|
}(this, (function (exports, core, compiler) { 'use strict';
|
|
12
12
|
|
|
13
|
-
/**
|
|
14
|
-
* @license
|
|
15
|
-
* Copyright Google LLC All Rights Reserved.
|
|
16
|
-
*
|
|
17
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
18
|
-
* found in the LICENSE file at https://angular.io/license
|
|
19
|
-
*/
|
|
20
|
-
var _global = (typeof window === 'undefined' ? global : window);
|
|
21
|
-
/**
|
|
22
|
-
* Wraps a test function in an asynchronous test zone. The test will automatically
|
|
23
|
-
* complete when all asynchronous calls within this zone are done. Can be used
|
|
24
|
-
* to wrap an {@link inject} call.
|
|
25
|
-
*
|
|
26
|
-
* Example:
|
|
27
|
-
*
|
|
28
|
-
* ```
|
|
29
|
-
* it('...', async(inject([AClass], (object) => {
|
|
30
|
-
* object.doSomething.then(() => {
|
|
31
|
-
* expect(...);
|
|
32
|
-
* })
|
|
33
|
-
* });
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*/
|
|
38
|
-
function asyncFallback(fn) {
|
|
39
|
-
// If we're running using the Jasmine test framework, adapt to call the 'done'
|
|
40
|
-
// function when asynchronous activity is finished.
|
|
41
|
-
if (_global.jasmine) {
|
|
42
|
-
// Not using an arrow function to preserve context passed from call site
|
|
43
|
-
return function (done) {
|
|
44
|
-
if (!done) {
|
|
45
|
-
// if we run beforeEach in @angular/core/testing/testing_internal then we get no done
|
|
46
|
-
// fake it here and assume sync.
|
|
47
|
-
done = function () { };
|
|
48
|
-
done.fail = function (e) {
|
|
49
|
-
throw e;
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
runInTestZone(fn, this, done, function (err) {
|
|
53
|
-
if (typeof err === 'string') {
|
|
54
|
-
return done.fail(new Error(err));
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
done.fail(err);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
// Otherwise, return a promise which will resolve when asynchronous activity
|
|
63
|
-
// is finished. This will be correctly consumed by the Mocha framework with
|
|
64
|
-
// it('...', async(myFn)); or can be used in a custom framework.
|
|
65
|
-
// Not using an arrow function to preserve context passed from call site
|
|
66
|
-
return function () {
|
|
67
|
-
var _this = this;
|
|
68
|
-
return new Promise(function (finishCallback, failCallback) {
|
|
69
|
-
runInTestZone(fn, _this, finishCallback, failCallback);
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
function runInTestZone(fn, context, finishCallback, failCallback) {
|
|
74
|
-
var currentZone = Zone.current;
|
|
75
|
-
var AsyncTestZoneSpec = Zone['AsyncTestZoneSpec'];
|
|
76
|
-
if (AsyncTestZoneSpec === undefined) {
|
|
77
|
-
throw new Error('AsyncTestZoneSpec is needed for the async() test helper but could not be found. ' +
|
|
78
|
-
'Please make sure that your environment includes zone.js/dist/async-test.js');
|
|
79
|
-
}
|
|
80
|
-
var ProxyZoneSpec = Zone['ProxyZoneSpec'];
|
|
81
|
-
if (ProxyZoneSpec === undefined) {
|
|
82
|
-
throw new Error('ProxyZoneSpec is needed for the async() test helper but could not be found. ' +
|
|
83
|
-
'Please make sure that your environment includes zone.js/dist/proxy.js');
|
|
84
|
-
}
|
|
85
|
-
var proxyZoneSpec = ProxyZoneSpec.get();
|
|
86
|
-
ProxyZoneSpec.assertPresent();
|
|
87
|
-
// We need to create the AsyncTestZoneSpec outside the ProxyZone.
|
|
88
|
-
// If we do it in ProxyZone then we will get to infinite recursion.
|
|
89
|
-
var proxyZone = Zone.current.getZoneWith('ProxyZoneSpec');
|
|
90
|
-
var previousDelegate = proxyZoneSpec.getDelegate();
|
|
91
|
-
proxyZone.parent.run(function () {
|
|
92
|
-
var testZoneSpec = new AsyncTestZoneSpec(function () {
|
|
93
|
-
// Need to restore the original zone.
|
|
94
|
-
currentZone.run(function () {
|
|
95
|
-
if (proxyZoneSpec.getDelegate() == testZoneSpec) {
|
|
96
|
-
// Only reset the zone spec if it's sill this one. Otherwise, assume it's OK.
|
|
97
|
-
proxyZoneSpec.setDelegate(previousDelegate);
|
|
98
|
-
}
|
|
99
|
-
finishCallback();
|
|
100
|
-
});
|
|
101
|
-
}, function (error) {
|
|
102
|
-
// Need to restore the original zone.
|
|
103
|
-
currentZone.run(function () {
|
|
104
|
-
if (proxyZoneSpec.getDelegate() == testZoneSpec) {
|
|
105
|
-
// Only reset the zone spec if it's sill this one. Otherwise, assume it's OK.
|
|
106
|
-
proxyZoneSpec.setDelegate(previousDelegate);
|
|
107
|
-
}
|
|
108
|
-
failCallback(error);
|
|
109
|
-
});
|
|
110
|
-
}, 'test');
|
|
111
|
-
proxyZoneSpec.setDelegate(testZoneSpec);
|
|
112
|
-
});
|
|
113
|
-
return Zone.current.runGuarded(fn, context);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
13
|
/**
|
|
117
14
|
* @license
|
|
118
15
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -149,10 +46,10 @@
|
|
|
149
46
|
if (typeof asyncTest === 'function') {
|
|
150
47
|
return asyncTest(fn);
|
|
151
48
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
49
|
+
return function () {
|
|
50
|
+
return Promise.reject('zone-testing.js is needed for the async() test helper but could not be found. ' +
|
|
51
|
+
'Please make sure that your environment includes zone.js/dist/zone-testing.js');
|
|
52
|
+
};
|
|
156
53
|
}
|
|
157
54
|
/**
|
|
158
55
|
* @deprecated use `waitForAsync()`, (expected removal in v12)
|
|
@@ -367,159 +264,9 @@
|
|
|
367
264
|
* Use of this source code is governed by an MIT-style license that can be
|
|
368
265
|
* found in the LICENSE file at https://angular.io/license
|
|
369
266
|
*/
|
|
370
|
-
/**
|
|
371
|
-
* fakeAsync has been moved to zone.js
|
|
372
|
-
* this file is for fallback in case old version of zone.js is used
|
|
373
|
-
*/
|
|
374
267
|
var _Zone = typeof Zone !== 'undefined' ? Zone : null;
|
|
375
|
-
var
|
|
376
|
-
var
|
|
377
|
-
var _fakeAsyncTestZoneSpec = null;
|
|
378
|
-
/**
|
|
379
|
-
* Clears out the shared fake async zone for a test.
|
|
380
|
-
* To be called in a global `beforeEach`.
|
|
381
|
-
*
|
|
382
|
-
* @publicApi
|
|
383
|
-
*/
|
|
384
|
-
function resetFakeAsyncZoneFallback() {
|
|
385
|
-
if (_fakeAsyncTestZoneSpec) {
|
|
386
|
-
_fakeAsyncTestZoneSpec.unlockDatePatch();
|
|
387
|
-
}
|
|
388
|
-
_fakeAsyncTestZoneSpec = null;
|
|
389
|
-
// in node.js testing we may not have ProxyZoneSpec in which case there is nothing to reset.
|
|
390
|
-
ProxyZoneSpec && ProxyZoneSpec.assertPresent().resetDelegate();
|
|
391
|
-
}
|
|
392
|
-
var _inFakeAsyncCall = false;
|
|
393
|
-
/**
|
|
394
|
-
* Wraps a function to be executed in the fakeAsync zone:
|
|
395
|
-
* - microtasks are manually executed by calling `flushMicrotasks()`,
|
|
396
|
-
* - timers are synchronous, `tick()` simulates the asynchronous passage of time.
|
|
397
|
-
*
|
|
398
|
-
* If there are any pending timers at the end of the function, an exception will be thrown.
|
|
399
|
-
*
|
|
400
|
-
* Can be used to wrap inject() calls.
|
|
401
|
-
*
|
|
402
|
-
* @usageNotes
|
|
403
|
-
* ### Example
|
|
404
|
-
*
|
|
405
|
-
* {@example core/testing/ts/fake_async.ts region='basic'}
|
|
406
|
-
*
|
|
407
|
-
* @param fn
|
|
408
|
-
* @returns The function wrapped to be executed in the fakeAsync zone
|
|
409
|
-
*
|
|
410
|
-
* @publicApi
|
|
411
|
-
*/
|
|
412
|
-
function fakeAsyncFallback(fn) {
|
|
413
|
-
// Not using an arrow function to preserve context passed from call site
|
|
414
|
-
return function () {
|
|
415
|
-
var args = [];
|
|
416
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
417
|
-
args[_i] = arguments[_i];
|
|
418
|
-
}
|
|
419
|
-
var proxyZoneSpec = ProxyZoneSpec.assertPresent();
|
|
420
|
-
if (_inFakeAsyncCall) {
|
|
421
|
-
throw new Error('fakeAsync() calls can not be nested');
|
|
422
|
-
}
|
|
423
|
-
_inFakeAsyncCall = true;
|
|
424
|
-
try {
|
|
425
|
-
if (!_fakeAsyncTestZoneSpec) {
|
|
426
|
-
if (proxyZoneSpec.getDelegate() instanceof FakeAsyncTestZoneSpec) {
|
|
427
|
-
throw new Error('fakeAsync() calls can not be nested');
|
|
428
|
-
}
|
|
429
|
-
_fakeAsyncTestZoneSpec = new FakeAsyncTestZoneSpec();
|
|
430
|
-
}
|
|
431
|
-
var res = void 0;
|
|
432
|
-
var lastProxyZoneSpec = proxyZoneSpec.getDelegate();
|
|
433
|
-
proxyZoneSpec.setDelegate(_fakeAsyncTestZoneSpec);
|
|
434
|
-
_fakeAsyncTestZoneSpec.lockDatePatch();
|
|
435
|
-
try {
|
|
436
|
-
res = fn.apply(this, args);
|
|
437
|
-
flushMicrotasksFallback();
|
|
438
|
-
}
|
|
439
|
-
finally {
|
|
440
|
-
proxyZoneSpec.setDelegate(lastProxyZoneSpec);
|
|
441
|
-
}
|
|
442
|
-
if (_fakeAsyncTestZoneSpec.pendingPeriodicTimers.length > 0) {
|
|
443
|
-
throw new Error(_fakeAsyncTestZoneSpec.pendingPeriodicTimers.length + " " +
|
|
444
|
-
"periodic timer(s) still in the queue.");
|
|
445
|
-
}
|
|
446
|
-
if (_fakeAsyncTestZoneSpec.pendingTimers.length > 0) {
|
|
447
|
-
throw new Error(_fakeAsyncTestZoneSpec.pendingTimers.length + " timer(s) still in the queue.");
|
|
448
|
-
}
|
|
449
|
-
return res;
|
|
450
|
-
}
|
|
451
|
-
finally {
|
|
452
|
-
_inFakeAsyncCall = false;
|
|
453
|
-
resetFakeAsyncZoneFallback();
|
|
454
|
-
}
|
|
455
|
-
};
|
|
456
|
-
}
|
|
457
|
-
function _getFakeAsyncZoneSpec() {
|
|
458
|
-
if (_fakeAsyncTestZoneSpec == null) {
|
|
459
|
-
throw new Error('The code should be running in the fakeAsync zone to call this function');
|
|
460
|
-
}
|
|
461
|
-
return _fakeAsyncTestZoneSpec;
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* Simulates the asynchronous passage of time for the timers in the fakeAsync zone.
|
|
465
|
-
*
|
|
466
|
-
* The microtasks queue is drained at the very start of this function and after any timer callback
|
|
467
|
-
* has been executed.
|
|
468
|
-
*
|
|
469
|
-
* @usageNotes
|
|
470
|
-
* ### Example
|
|
471
|
-
*
|
|
472
|
-
* {@example core/testing/ts/fake_async.ts region='basic'}
|
|
473
|
-
*
|
|
474
|
-
* @publicApi
|
|
475
|
-
*/
|
|
476
|
-
function tickFallback(millis, tickOptions) {
|
|
477
|
-
if (millis === void 0) { millis = 0; }
|
|
478
|
-
if (tickOptions === void 0) { tickOptions = {
|
|
479
|
-
processNewMacroTasksSynchronously: true
|
|
480
|
-
}; }
|
|
481
|
-
_getFakeAsyncZoneSpec().tick(millis, null, tickOptions);
|
|
482
|
-
}
|
|
483
|
-
/**
|
|
484
|
-
* Simulates the asynchronous passage of time for the timers in the fakeAsync zone by
|
|
485
|
-
* draining the macrotask queue until it is empty. The returned value is the milliseconds
|
|
486
|
-
* of time that would have been elapsed.
|
|
487
|
-
*
|
|
488
|
-
* @param maxTurns
|
|
489
|
-
* @returns The simulated time elapsed, in millis.
|
|
490
|
-
*
|
|
491
|
-
* @publicApi
|
|
492
|
-
*/
|
|
493
|
-
function flushFallback(maxTurns) {
|
|
494
|
-
return _getFakeAsyncZoneSpec().flush(maxTurns);
|
|
495
|
-
}
|
|
496
|
-
/**
|
|
497
|
-
* Discard all remaining periodic tasks.
|
|
498
|
-
*
|
|
499
|
-
* @publicApi
|
|
500
|
-
*/
|
|
501
|
-
function discardPeriodicTasksFallback() {
|
|
502
|
-
var zoneSpec = _getFakeAsyncZoneSpec();
|
|
503
|
-
zoneSpec.pendingPeriodicTimers.length = 0;
|
|
504
|
-
}
|
|
505
|
-
/**
|
|
506
|
-
* Flush any pending microtasks.
|
|
507
|
-
*
|
|
508
|
-
* @publicApi
|
|
509
|
-
*/
|
|
510
|
-
function flushMicrotasksFallback() {
|
|
511
|
-
_getFakeAsyncZoneSpec().flushMicrotasks();
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
/**
|
|
515
|
-
* @license
|
|
516
|
-
* Copyright Google LLC All Rights Reserved.
|
|
517
|
-
*
|
|
518
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
519
|
-
* found in the LICENSE file at https://angular.io/license
|
|
520
|
-
*/
|
|
521
|
-
var _Zone$1 = typeof Zone !== 'undefined' ? Zone : null;
|
|
522
|
-
var fakeAsyncTestModule = _Zone$1 && _Zone$1[_Zone$1.__symbol__('fakeAsyncTest')];
|
|
268
|
+
var fakeAsyncTestModule = _Zone && _Zone[_Zone.__symbol__('fakeAsyncTest')];
|
|
269
|
+
var fakeAsyncTestModuleNotLoadedErrorMessage = "zone-testing.js is needed for the async() test helper but could not be found.\n Please make sure that your environment includes zone.js/dist/zone-testing.js";
|
|
523
270
|
/**
|
|
524
271
|
* Clears out the shared fake async zone for a test.
|
|
525
272
|
* To be called in a global `beforeEach`.
|
|
@@ -530,9 +277,7 @@
|
|
|
530
277
|
if (fakeAsyncTestModule) {
|
|
531
278
|
return fakeAsyncTestModule.resetFakeAsyncZone();
|
|
532
279
|
}
|
|
533
|
-
|
|
534
|
-
return resetFakeAsyncZoneFallback();
|
|
535
|
-
}
|
|
280
|
+
throw new Error(fakeAsyncTestModuleNotLoadedErrorMessage);
|
|
536
281
|
}
|
|
537
282
|
/**
|
|
538
283
|
* Wraps a function to be executed in the fakeAsync zone:
|
|
@@ -557,9 +302,7 @@
|
|
|
557
302
|
if (fakeAsyncTestModule) {
|
|
558
303
|
return fakeAsyncTestModule.fakeAsync(fn);
|
|
559
304
|
}
|
|
560
|
-
|
|
561
|
-
return fakeAsyncFallback(fn);
|
|
562
|
-
}
|
|
305
|
+
throw new Error(fakeAsyncTestModuleNotLoadedErrorMessage);
|
|
563
306
|
}
|
|
564
307
|
/**
|
|
565
308
|
* Simulates the asynchronous passage of time for the timers in the fakeAsync zone.
|
|
@@ -620,9 +363,7 @@
|
|
|
620
363
|
if (fakeAsyncTestModule) {
|
|
621
364
|
return fakeAsyncTestModule.tick(millis, tickOptions);
|
|
622
365
|
}
|
|
623
|
-
|
|
624
|
-
return tickFallback(millis, tickOptions);
|
|
625
|
-
}
|
|
366
|
+
throw new Error(fakeAsyncTestModuleNotLoadedErrorMessage);
|
|
626
367
|
}
|
|
627
368
|
/**
|
|
628
369
|
* Simulates the asynchronous passage of time for the timers in the fakeAsync zone by
|
|
@@ -638,9 +379,7 @@
|
|
|
638
379
|
if (fakeAsyncTestModule) {
|
|
639
380
|
return fakeAsyncTestModule.flush(maxTurns);
|
|
640
381
|
}
|
|
641
|
-
|
|
642
|
-
return flushFallback(maxTurns);
|
|
643
|
-
}
|
|
382
|
+
throw new Error(fakeAsyncTestModuleNotLoadedErrorMessage);
|
|
644
383
|
}
|
|
645
384
|
/**
|
|
646
385
|
* Discard all remaining periodic tasks.
|
|
@@ -651,9 +390,7 @@
|
|
|
651
390
|
if (fakeAsyncTestModule) {
|
|
652
391
|
return fakeAsyncTestModule.discardPeriodicTasks();
|
|
653
392
|
}
|
|
654
|
-
|
|
655
|
-
discardPeriodicTasksFallback();
|
|
656
|
-
}
|
|
393
|
+
throw new Error(fakeAsyncTestModuleNotLoadedErrorMessage);
|
|
657
394
|
}
|
|
658
395
|
/**
|
|
659
396
|
* Flush any pending microtasks.
|
|
@@ -664,9 +401,7 @@
|
|
|
664
401
|
if (fakeAsyncTestModule) {
|
|
665
402
|
return fakeAsyncTestModule.flushMicrotasks();
|
|
666
403
|
}
|
|
667
|
-
|
|
668
|
-
return flushMicrotasksFallback();
|
|
669
|
-
}
|
|
404
|
+
throw new Error(fakeAsyncTestModuleNotLoadedErrorMessage);
|
|
670
405
|
}
|
|
671
406
|
|
|
672
407
|
/*! *****************************************************************************
|
|
@@ -3191,10 +2926,10 @@
|
|
|
3191
2926
|
* Use of this source code is governed by an MIT-style license that can be
|
|
3192
2927
|
* found in the LICENSE file at https://angular.io/license
|
|
3193
2928
|
*/
|
|
3194
|
-
var _global
|
|
2929
|
+
var _global = (typeof window === 'undefined' ? global : window);
|
|
3195
2930
|
// Reset the test providers and the fake async zone before each test.
|
|
3196
|
-
if (_global
|
|
3197
|
-
_global
|
|
2931
|
+
if (_global.beforeEach) {
|
|
2932
|
+
_global.beforeEach(function () {
|
|
3198
2933
|
TestBed.resetTestingModule();
|
|
3199
2934
|
resetFakeAsyncZone();
|
|
3200
2935
|
});
|