1 | ;
|
2 | var rxjs_1 = require('rxjs');
|
3 | var requestQueue = [];
|
4 | var timeElapsed = 0;
|
5 | var testing_1 = require('@angular/core/testing');
|
6 | exports.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 | */
|
18 | function 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 | }
|
37 | exports.rlFakeAsync = rlFakeAsync;
|
38 | function rlQueueRequest(request) {
|
39 | requestQueue.push(request);
|
40 | }
|
41 | exports.rlQueueRequest = rlQueueRequest;
|
42 | function rlTick(milliseconds) {
|
43 | if (milliseconds === void 0) { milliseconds = 0; }
|
44 | timeElapsed += milliseconds;
|
45 | testing_1.tick(milliseconds);
|
46 | }
|
47 | exports.rlTick = rlTick;
|
48 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZUFzeW5jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZmFrZUFzeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxQkFBMEIsTUFBTSxDQUFDLENBQUE7QUFFakMsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLElBQUksV0FBVyxHQUFXLENBQUMsQ0FBQztBQUU1Qix3QkFBMEUsdUJBQXVCLENBQUMsQ0FBQTtBQUN6Rix1QkFBZTtBQUV4Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gscUJBQTRCLEVBQVk7SUFDdkMsTUFBTSxDQUFDLG1CQUFXLENBQUM7UUFBVSxjQUFPO2FBQVAsV0FBTyxDQUFQLHNCQUFPLENBQVAsSUFBTztZQUFQLDZCQUFPOztRQUNuQyxJQUFNLFdBQVcsR0FBRyxnQkFBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDeEMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixnQkFBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsY0FBTSxPQUFBLFdBQVcsRUFBWCxDQUFXLENBQUM7UUFDeEMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLEdBQUcsR0FBRyxFQUFFLGVBQUksSUFBSSxDQUFDLENBQUM7UUFDdEIseUJBQWUsRUFBRSxDQUFDO1FBQ2xCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBQSxPQUFPLElBQUksT0FBQSxPQUFPLENBQUMsT0FBTyxFQUFmLENBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUNELGdCQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQWRlLG1CQUFXLGNBYzFCLENBQUE7QUFFRCx3QkFBK0IsT0FBTztJQUNyQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFGZSxzQkFBYyxpQkFFN0IsQ0FBQTtBQUVELGdCQUF1QixZQUF3QjtJQUF4Qiw0QkFBd0IsR0FBeEIsZ0JBQXdCO0lBQzlDLFdBQVcsSUFBSSxZQUFZLENBQUM7SUFDNUIsY0FBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3RCLENBQUM7QUFIZSxjQUFNLFNBR3JCLENBQUEifQ== |
\ | No newline at end of file |