UNPKG

3.22 kBJavaScriptView Raw
1"use strict";
2var rxjs_1 = require('rxjs');
3var requestQueue = [];
4var timeElapsed = 0;
5var testing_1 = require('@angular/core/testing');
6exports.flushMicrotasks = testing_1.flushMicrotasks;
7/**
8 * Wraps angular fakeAsync with the ability to track pending requests
9 *
10 * When a request is initiated using mockAsync, the request is pushed to the requestQueue
11 * If there are any pending requests at the end of the function, an exception will be thrown.
12 *
13 * Also overrides 'now' on the default rxjs scheduler to return a value based on how much time has elapsed via 'tick'
14 *
15 * @param fn
16 * @returns {Function} The function wrapped to be executed in the fakeAsync zone
17 */
18function rlFakeAsync(fn) {
19 return testing_1.fakeAsync(function () {
20 var args = [];
21 for (var _i = 0; _i < arguments.length; _i++) {
22 args[_i - 0] = arguments[_i];
23 }
24 var originalNow = rxjs_1.Scheduler.async.now;
25 timeElapsed = 0;
26 rxjs_1.Scheduler.async.now = function () { return timeElapsed; };
27 requestQueue = [];
28 var res = fn.apply(void 0, args);
29 testing_1.flushMicrotasks();
30 if (requestQueue.some(function (request) { return request.pending; })) {
31 throw new Error('There are still pending requests. Please be sure to flush all of your requests');
32 }
33 rxjs_1.Scheduler.async.now = originalNow;
34 return res;
35 });
36}
37exports.rlFakeAsync = rlFakeAsync;
38function rlQueueRequest(request) {
39 requestQueue.push(request);
40}
41exports.rlQueueRequest = rlQueueRequest;
42function rlTick(milliseconds) {
43 timeElapsed += milliseconds;
44 testing_1.tick(milliseconds);
45}
46exports.rlTick = rlTick;
47//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZUFzeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmFrZUFzeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxQkFBMEIsTUFBTSxDQUFDLENBQUE7QUFFakMsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLElBQUksV0FBVyxHQUFXLENBQUMsQ0FBQztBQUU1Qix3QkFBMEUsdUJBQXVCLENBQUMsQ0FBQTtBQUN6Rix1QkFBZTtBQUV4Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gscUJBQTRCLEVBQVk7SUFDdkMsTUFBTSxDQUFDLG1CQUFXLENBQUM7UUFBVSxjQUFPO2FBQVAsV0FBTyxDQUFQLHNCQUFPLENBQVAsSUFBTztZQUFQLDZCQUFPOztRQUNuQyxJQUFNLFdBQVcsR0FBRyxnQkFBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDeEMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixnQkFBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsY0FBTSxPQUFBLFdBQVcsRUFBWCxDQUFXLENBQUM7UUFDeEMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsR0FBRyxFQUFFLGVBQUksSUFBSSxDQUFDLENBQUM7UUFDdEIseUJBQWUsRUFBRSxDQUFDO1FBQ2xCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFmLENBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUNELGdCQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQWRlLG1CQUFXLGNBYzFCLENBQUE7QUFFRCx3QkFBK0IsT0FBTztJQUNyQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFGZSxzQkFBYyxpQkFFN0IsQ0FBQTtBQUVELGdCQUF1QixZQUFvQjtJQUMxQyxXQUFXLElBQUksWUFBWSxDQUFDO0lBQzVCLGNBQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN0QixDQUFDO0FBSGUsY0FBTSxTQUdyQixDQUFBIn0=
\No newline at end of file