Skip to content
This repository was archived by the owner on Jan 19, 2023. It is now read-only.

Commit 6fed377

Browse files
committed
test: update tests to not run jasmine done function in sync-test zone from describe block
There are some ZoneJS tests that fork the zone from the `describe` block for testing the zone patching. This does cause the Jasmine `done` function later in `it` specs to be invoked in the sync-test zone from the original `describe` block. The `done` implementation now has changed with the Karma Jasmine update and breaks because it now causes tasks to be scheduled. It is conceptually incorrect/invalid to take the describe sync zone and run test logic with that sync zone. ``` An error was thrown in afterAll error properties: Object({ originalStack: 'Error: Cannot call jasmine.execute().forceTask from within a sync test (syncTestZone for jasmine.describe#FileReader). at new ZoneAwareError (packages/zone.js/test/browser_test_rollup.umd.js:98:37) at e.onScheduleTask (packages/zone.js/bundles/zone-testing-bundle.umd.min.js:158:196) at e.scheduleTask (packages/zone.js/bundles/zone-testing-bundle.umd.min.js:14:7529) at t.scheduleTask (packages/zone.js/bundles/zone-testing-bundle.umd.min.js:14:3539) at t.scheduleMicroTask (packages/zone.js/bundles/zone-testing-bundle.umd.min.js:14:3791) at r.execute (packages/zone.js/bundles/zone-testing-bundle.umd.min.js:166:4312) at queueRunnerFa ... at <Jasmine> ```
1 parent e545ff9 commit 6fed377

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

packages/zone.js/test/browser/FileReader.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ describe('FileReader', ifEnvSupports('FileReader', function() {
1313
let fileReader: FileReader;
1414
let blob: Blob;
1515
const data = 'Hello, World!';
16-
const testZone = Zone.current.fork({name: 'TestZone'});
1716

1817
// Android 4.3's native browser doesn't implement add/RemoveEventListener for FileReader
1918
function supportsEventTargetFns() {
@@ -39,6 +38,8 @@ describe('FileReader', ifEnvSupports('FileReader', function() {
3938

4039
describe('EventTarget methods', ifEnvSupports(supportsEventTargetFns, function() {
4140
it('should bind addEventListener listeners', function(done) {
41+
const testZone = Zone.current.fork({name: 'TestZone'});
42+
4243
testZone.run(function() {
4344
fileReader.addEventListener('load', function() {
4445
expect(Zone.current).toBe(testZone);
@@ -51,6 +52,7 @@ describe('FileReader', ifEnvSupports('FileReader', function() {
5152
});
5253

5354
it('should remove listeners via removeEventListener', function(done) {
55+
const testZone = Zone.current.fork({name: 'TestZone'});
5456
const listenerSpy = jasmine.createSpy('listener');
5557

5658
testZone.run(function() {
@@ -67,6 +69,7 @@ describe('FileReader', ifEnvSupports('FileReader', function() {
6769
}));
6870

6971
it('should bind onEventType listeners', function(done) {
72+
const testZone = Zone.current.fork({name: 'TestZone'});
7073
let listenersCalled = 0;
7174

7275
testZone.run(function() {

packages/zone.js/test/browser/MutationObserver.spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ declare const global: any;
1212

1313
describe('MutationObserver', ifEnvSupports('MutationObserver', function() {
1414
let elt: HTMLDivElement;
15-
const testZone = Zone.current.fork({name: 'test'});
1615

1716
beforeEach(function() {
1817
elt = document.createElement('div');
1918
});
2019

2120
it('should run observers within the zone', function(done) {
21+
const testZone = Zone.current.fork({name: 'test'});
2222
let ob;
2323

2424
testZone.run(function() {
@@ -54,9 +54,8 @@ describe('MutationObserver', ifEnvSupports('MutationObserver', function() {
5454
}));
5555

5656
describe('WebKitMutationObserver', ifEnvSupports('WebKitMutationObserver', function() {
57-
const testZone = Zone.current.fork({name: 'test'});
58-
5957
it('should run observers within the zone', function(done) {
58+
const testZone = Zone.current.fork({name: 'test'});
6059
let elt: HTMLDivElement;
6160

6261
testZone.run(function() {

0 commit comments

Comments
 (0)