rxjs-marbles-with-amd
Version:
Forked version of (https://github.com/cartant/rxjs-marbles) An RxJS marble testing library for any test framework
33 lines (32 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var rxjs_1 = require("rxjs");
function fakeSchedulers(fakeTest, now) {
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var hasOwnSchedule = rxjs_1.asapScheduler.hasOwnProperty("schedule");
if (hasOwnSchedule) {
console.warn("asapScheduler.schedule appears to have been patched outside of fakeSchedulers.");
}
var origSchedule = rxjs_1.asapScheduler.schedule;
var origNow = rxjs_1.asyncScheduler.now;
try {
rxjs_1.asapScheduler.schedule = rxjs_1.asyncScheduler.schedule.bind(rxjs_1.asyncScheduler);
rxjs_1.asyncScheduler.now = now || (function () { return Date.now(); });
return fakeTest.apply(void 0, args);
}
finally {
if (hasOwnSchedule) {
rxjs_1.asapScheduler.schedule = origSchedule;
}
else {
delete rxjs_1.asapScheduler.schedule;
}
rxjs_1.asyncScheduler.now = origNow;
}
};
}
exports.fakeSchedulers = fakeSchedulers;