Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit 288f472

Browse files
committed
chore: release v0.8.19
1 parent 0d40dd1 commit 288f472

19 files changed

+8658
-182
lines changed

dist/fake-async-test.js

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,10 @@
149149
return Scheduler;
150150
}());
151151
var FakeAsyncTestZoneSpec = (function () {
152-
function FakeAsyncTestZoneSpec(namePrefix, trackPendingRequestAnimationFrame) {
152+
function FakeAsyncTestZoneSpec(namePrefix, trackPendingRequestAnimationFrame, macroTaskOptions) {
153153
if (trackPendingRequestAnimationFrame === void 0) { trackPendingRequestAnimationFrame = false; }
154154
this.trackPendingRequestAnimationFrame = trackPendingRequestAnimationFrame;
155+
this.macroTaskOptions = macroTaskOptions;
155156
this._scheduler = new Scheduler();
156157
this._microtasks = [];
157158
this._lastError = null;
@@ -160,6 +161,11 @@
160161
this.pendingTimers = [];
161162
this.properties = { 'FakeAsyncTestZoneSpec': this };
162163
this.name = 'fakeAsyncTestZone for ' + namePrefix;
164+
// in case user can't access the construction of FakyAsyncTestSpec
165+
// user can also define macroTaskOptions by define a global variable.
166+
if (!this.macroTaskOptions) {
167+
this.macroTaskOptions = global[Zone.__symbol__('FakeAsyncTestMacroTask')];
168+
}
163169
}
164170
FakeAsyncTestZoneSpec.assertInZone = function () {
165171
if (Zone.current.get('FakeAsyncTestZoneSpec') == null) {
@@ -331,6 +337,24 @@
331337
task.data['handleId'] = this._setTimeout(task.invoke, 16, task.data['args'], this.trackPendingRequestAnimationFrame);
332338
break;
333339
default:
340+
// user can define which macroTask they want to support by passing
341+
// macroTaskOptions
342+
var macroTaskOption = this.findMacroTaskOption(task);
343+
if (macroTaskOption) {
344+
var args_1 = task.data && task.data['args'];
345+
var delay = args_1 && args_1.length > 1 ? args_1[1] : 0;
346+
var callbackArgs = macroTaskOption.callbackArgs ? macroTaskOption.callbackArgs : args_1;
347+
if (!!macroTaskOption.isPeriodic) {
348+
// periodic macroTask, use setInterval to simulate
349+
task.data['handleId'] = this._setInterval(task.invoke, delay, callbackArgs);
350+
task.data.isPeriodic = true;
351+
}
352+
else {
353+
// not periodic, use setTimout to simulate
354+
task.data['handleId'] = this._setTimeout(task.invoke, delay, callbackArgs);
355+
}
356+
break;
357+
}
334358
throw new Error('Unknown macroTask scheduled in fake async test: ' + task.source);
335359
}
336360
break;
@@ -350,9 +374,29 @@
350374
case 'setInterval':
351375
return this._clearInterval(task.data['handleId']);
352376
default:
377+
// user can define which macroTask they want to support by passing
378+
// macroTaskOptions
379+
var macroTaskOption = this.findMacroTaskOption(task);
380+
if (macroTaskOption) {
381+
var handleId = task.data['handleId'];
382+
return macroTaskOption.isPeriodic ? this._clearInterval(handleId) :
383+
this._clearTimeout(handleId);
384+
}
353385
return delegate.cancelTask(target, task);
354386
}
355387
};
388+
FakeAsyncTestZoneSpec.prototype.findMacroTaskOption = function (task) {
389+
if (!this.macroTaskOptions) {
390+
return null;
391+
}
392+
for (var i = 0; i < this.macroTaskOptions.length; i++) {
393+
var macroTaskOption = this.macroTaskOptions[i];
394+
if (macroTaskOption.source === task.source) {
395+
return macroTaskOption;
396+
}
397+
}
398+
return null;
399+
};
356400
FakeAsyncTestZoneSpec.prototype.onHandleError = function (parentZoneDelegate, currentZone, targetZone, error) {
357401
this._lastError = error;
358402
return false; // Don't propagate error to parent zone.

dist/jasmine-patch.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,15 @@
6868
});
6969
['it', 'xit', 'fit'].forEach(function (methodName) {
7070
var originalJasmineFn = jasmineEnv[methodName];
71+
jasmineEnv[Zone.__symbol__(methodName)] = originalJasmineFn;
7172
jasmineEnv[methodName] = function (description, specDefinitions, timeout) {
7273
arguments[1] = wrapTestInZone(specDefinitions);
7374
return originalJasmineFn.apply(this, arguments);
7475
};
7576
});
7677
['beforeEach', 'afterEach'].forEach(function (methodName) {
7778
var originalJasmineFn = jasmineEnv[methodName];
79+
jasmineEnv[Zone.__symbol__(methodName)] = originalJasmineFn;
7880
jasmineEnv[methodName] = function (specDefinitions, timeout) {
7981
arguments[0] = wrapTestInZone(specDefinitions);
8082
return originalJasmineFn.apply(this, arguments);

dist/jasmine-patch.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/long-stack-trace-zone.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,7 @@ Zone['longStackTraceZoneSpec'] = {
9191
if (!error) {
9292
return undefined;
9393
}
94-
var task = error[Zone.__symbol__('currentTask')];
95-
var trace = task && task.data && task.data[creationTrace];
94+
var trace = error[Zone.__symbol__('currentTaskTrace')];
9695
if (!trace) {
9796
return error.stack;
9897
}

dist/long-stack-trace-zone.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/mocha-patch.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,6 @@
150150
return originalRun.call(this, fn);
151151
};
152152
})(Mocha.Runner.prototype.runTest, Mocha.Runner.prototype.run);
153-
})(window);
153+
})(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);
154154

155155
})));

dist/mocha-patch.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/wtf.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@
8888
instance(zonePathName(targetZone), shallowObj(task.data, 2));
8989
return retValue;
9090
};
91-
9291
return WtfZoneSpec;
9392
}());
9493
WtfZoneSpec.forkInstance = wtfEnabled && wtfEvents.createInstance('Zone:fork(ascii zone, ascii newZone)');

0 commit comments

Comments
 (0)