diff options
Diffstat (limited to 'node_modules/rxjs/dist/esm5/internal/testing')
12 files changed, 689 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm5/internal/testing/ColdObservable.js b/node_modules/rxjs/dist/esm5/internal/testing/ColdObservable.js new file mode 100644 index 0000000..2225888 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/ColdObservable.js @@ -0,0 +1,39 @@ +import { __extends } from "tslib"; +import { Observable } from '../Observable'; +import { Subscription } from '../Subscription'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +import { observeNotification } from '../Notification'; +var ColdObservable = (function (_super) { + __extends(ColdObservable, _super); + function ColdObservable(messages, scheduler) { + var _this = _super.call(this, function (subscriber) { + var observable = this; + var index = observable.logSubscribedFrame(); + var subscription = new Subscription(); + subscription.add(new Subscription(function () { + observable.logUnsubscribedFrame(index); + })); + observable.scheduleMessages(subscriber); + return subscription; + }) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + ColdObservable.prototype.scheduleMessages = function (subscriber) { + var messagesLength = this.messages.length; + for (var i = 0; i < messagesLength; i++) { + var message = this.messages[i]; + subscriber.add(this.scheduler.schedule(function (state) { + var _a = state, notification = _a.message.notification, destination = _a.subscriber; + observeNotification(notification, destination); + }, message.frame, { message: message, subscriber: subscriber })); + } + }; + return ColdObservable; +}(Observable)); +export { ColdObservable }; +applyMixins(ColdObservable, [SubscriptionLoggable]); +//# sourceMappingURL=ColdObservable.js.map
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/ColdObservable.js.map b/node_modules/rxjs/dist/esm5/internal/testing/ColdObservable.js.map new file mode 100644 index 0000000..df8c8de --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/ColdObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColdObservable.js","sourceRoot":"","sources":["../../../../src/internal/testing/ColdObservable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;IAAuC,kCAAa;IAQlD,wBAAmB,QAAuB,EAAE,SAAoB;QAAhE,YACE,kBAAM,UAA+B,UAA2B;YAC9D,IAAM,UAAU,GAAsB,IAAW,CAAC;YAClD,IAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC9C,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;YACxC,YAAY,CAAC,GAAG,CACd,IAAI,YAAY,CAAC;gBACf,UAAU,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,CACH,CAAC;YACF,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC,SAEH;QAdkB,cAAQ,GAAR,QAAQ,CAAe;QAPnC,mBAAa,GAAsB,EAAE,CAAC;QAoB3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAED,yCAAgB,GAAhB,UAAiB,UAA2B;QAC1C,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACvC,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,UAAU,CAAC,GAAG,CACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,UAAC,KAAK;gBACE,IAAA,KAAyD,KAAM,EAAlD,YAAY,0BAAA,EAAgB,WAAW,gBAAW,CAAC;gBACtE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACjD,CAAC,EACD,OAAO,CAAC,KAAK,EACb,EAAE,OAAO,SAAA,EAAE,UAAU,YAAA,EAAE,CACxB,CACF,CAAC;SACH;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAxCD,CAAuC,UAAU,GAwChD;;AACD,WAAW,CAAC,cAAc,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/HotObservable.js b/node_modules/rxjs/dist/esm5/internal/testing/HotObservable.js new file mode 100644 index 0000000..e019898 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/HotObservable.js @@ -0,0 +1,45 @@ +import { __extends } from "tslib"; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { SubscriptionLoggable } from './SubscriptionLoggable'; +import { applyMixins } from '../util/applyMixins'; +import { observeNotification } from '../Notification'; +var HotObservable = (function (_super) { + __extends(HotObservable, _super); + function HotObservable(messages, scheduler) { + var _this = _super.call(this) || this; + _this.messages = messages; + _this.subscriptions = []; + _this.scheduler = scheduler; + return _this; + } + HotObservable.prototype._subscribe = function (subscriber) { + var subject = this; + var index = subject.logSubscribedFrame(); + var subscription = new Subscription(); + subscription.add(new Subscription(function () { + subject.logUnsubscribedFrame(index); + })); + subscription.add(_super.prototype._subscribe.call(this, subscriber)); + return subscription; + }; + HotObservable.prototype.setup = function () { + var subject = this; + var messagesLength = subject.messages.length; + var _loop_1 = function (i) { + (function () { + var _a = subject.messages[i], notification = _a.notification, frame = _a.frame; + subject.scheduler.schedule(function () { + observeNotification(notification, subject); + }, frame); + })(); + }; + for (var i = 0; i < messagesLength; i++) { + _loop_1(i); + } + }; + return HotObservable; +}(Subject)); +export { HotObservable }; +applyMixins(HotObservable, [SubscriptionLoggable]); +//# sourceMappingURL=HotObservable.js.map
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/HotObservable.js.map b/node_modules/rxjs/dist/esm5/internal/testing/HotObservable.js.map new file mode 100644 index 0000000..f5364c3 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/HotObservable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HotObservable.js","sourceRoot":"","sources":["../../../../src/internal/testing/HotObservable.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;IAAsC,iCAAU;IAQ9C,uBAAmB,QAAuB,EAAE,SAAoB;QAAhE,YACE,iBAAO,SAER;QAHkB,cAAQ,GAAR,QAAQ,CAAe;QAPnC,mBAAa,GAAsB,EAAE,CAAC;QAS3C,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;;IAC7B,CAAC;IAGS,kCAAU,GAApB,UAAqB,UAA2B;QAC9C,IAAM,OAAO,GAAqB,IAAI,CAAC;QACvC,IAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC3C,IAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,YAAY,CAAC,GAAG,CACd,IAAI,YAAY,CAAC;YACf,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC,CAAC,CACH,CAAC;QACF,YAAY,CAAC,GAAG,CAAC,iBAAM,UAAU,YAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6BAAK,GAAL;QACE,IAAM,OAAO,GAAG,IAAI,CAAC;QACrB,IAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gCAEtC,CAAC;YACR,CAAC;gBACO,IAAA,KAA0B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAA3C,YAAY,kBAAA,EAAE,KAAK,WAAwB,CAAC;gBAEpD,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;oBACzB,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC,EAAE,KAAK,CAAC,CAAC;YACZ,CAAC,CAAC,EAAE,CAAC;;QAPP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE;oBAA9B,CAAC;SAQT;IACH,CAAC;IACH,oBAAC;AAAD,CAAC,AAzCD,CAAsC,OAAO,GAyC5C;;AACD,WAAW,CAAC,aAAa,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLog.js b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLog.js new file mode 100644 index 0000000..f8fa0d5 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLog.js @@ -0,0 +1,10 @@ +var SubscriptionLog = (function () { + function SubscriptionLog(subscribedFrame, unsubscribedFrame) { + if (unsubscribedFrame === void 0) { unsubscribedFrame = Infinity; } + this.subscribedFrame = subscribedFrame; + this.unsubscribedFrame = unsubscribedFrame; + } + return SubscriptionLog; +}()); +export { SubscriptionLog }; +//# sourceMappingURL=SubscriptionLog.js.map
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLog.js.map b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLog.js.map new file mode 100644 index 0000000..547ec44 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLog.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLog.js","sourceRoot":"","sources":["../../../../src/internal/testing/SubscriptionLog.ts"],"names":[],"mappings":"AAAA;IACE,yBAAmB,eAAuB,EACvB,iBAAoC;QAApC,kCAAA,EAAA,4BAAoC;QADpC,oBAAe,GAAf,eAAe,CAAQ;QACvB,sBAAiB,GAAjB,iBAAiB,CAAmB;IACvD,CAAC;IACH,sBAAC;AAAD,CAAC,AAJD,IAIC"}
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLoggable.js b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLoggable.js new file mode 100644 index 0000000..80d1f3f --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLoggable.js @@ -0,0 +1,18 @@ +import { SubscriptionLog } from './SubscriptionLog'; +var SubscriptionLoggable = (function () { + function SubscriptionLoggable() { + this.subscriptions = []; + } + SubscriptionLoggable.prototype.logSubscribedFrame = function () { + this.subscriptions.push(new SubscriptionLog(this.scheduler.now())); + return this.subscriptions.length - 1; + }; + SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) { + var subscriptionLogs = this.subscriptions; + var oldSubscriptionLog = subscriptionLogs[index]; + subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now()); + }; + return SubscriptionLoggable; +}()); +export { SubscriptionLoggable }; +//# sourceMappingURL=SubscriptionLoggable.js.map
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLoggable.js.map b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLoggable.js.map new file mode 100644 index 0000000..6fbcce3 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/SubscriptionLoggable.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SubscriptionLoggable.js","sourceRoot":"","sources":["../../../../src/internal/testing/SubscriptionLoggable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;IAAA;QACS,kBAAa,GAAsB,EAAE,CAAC;IAiB/C,CAAC;IAbC,iDAAkB,GAAlB;QACE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,mDAAoB,GAApB,UAAqB,KAAa;QAChC,IAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC5C,IAAM,kBAAkB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,eAAe,CAC3C,kBAAkB,CAAC,eAAe,EAClC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACH,2BAAC;AAAD,CAAC,AAlBD,IAkBC"}
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/TestMessage.js b/node_modules/rxjs/dist/esm5/internal/testing/TestMessage.js new file mode 100644 index 0000000..47c15db --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/TestMessage.js @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=TestMessage.js.map
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/TestMessage.js.map b/node_modules/rxjs/dist/esm5/internal/testing/TestMessage.js.map new file mode 100644 index 0000000..f91e8da --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/TestMessage.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestMessage.js","sourceRoot":"","sources":["../../../../src/internal/testing/TestMessage.ts"],"names":[],"mappings":""}
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/TestScheduler.js b/node_modules/rxjs/dist/esm5/internal/testing/TestScheduler.js new file mode 100644 index 0000000..22855ff --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/TestScheduler.js @@ -0,0 +1,569 @@ +import { __extends, __read, __spreadArray, __values } from "tslib"; +import { Observable } from '../Observable'; +import { ColdObservable } from './ColdObservable'; +import { HotObservable } from './HotObservable'; +import { SubscriptionLog } from './SubscriptionLog'; +import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler'; +import { COMPLETE_NOTIFICATION, errorNotification, nextNotification } from '../NotificationFactories'; +import { dateTimestampProvider } from '../scheduler/dateTimestampProvider'; +import { performanceTimestampProvider } from '../scheduler/performanceTimestampProvider'; +import { animationFrameProvider } from '../scheduler/animationFrameProvider'; +import { immediateProvider } from '../scheduler/immediateProvider'; +import { intervalProvider } from '../scheduler/intervalProvider'; +import { timeoutProvider } from '../scheduler/timeoutProvider'; +var defaultMaxFrame = 750; +var TestScheduler = (function (_super) { + __extends(TestScheduler, _super); + function TestScheduler(assertDeepEqual) { + var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this; + _this.assertDeepEqual = assertDeepEqual; + _this.hotObservables = []; + _this.coldObservables = []; + _this.flushTests = []; + _this.runMode = false; + return _this; + } + TestScheduler.prototype.createTime = function (marbles) { + var indexOf = this.runMode ? marbles.trim().indexOf('|') : marbles.indexOf('|'); + if (indexOf === -1) { + throw new Error('marble diagram for time should have a completion marker "|"'); + } + return indexOf * TestScheduler.frameTimeFactor; + }; + TestScheduler.prototype.createColdObservable = function (marbles, values, error) { + if (marbles.indexOf('^') !== -1) { + throw new Error('cold observable cannot have subscription offset "^"'); + } + if (marbles.indexOf('!') !== -1) { + throw new Error('cold observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var cold = new ColdObservable(messages, this); + this.coldObservables.push(cold); + return cold; + }; + TestScheduler.prototype.createHotObservable = function (marbles, values, error) { + if (marbles.indexOf('!') !== -1) { + throw new Error('hot observable cannot have unsubscription marker "!"'); + } + var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); + var subject = new HotObservable(messages, this); + this.hotObservables.push(subject); + return subject; + }; + TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) { + var _this = this; + var messages = []; + observable.subscribe({ + next: function (value) { + messages.push({ frame: _this.frame - outerFrame, notification: nextNotification(value) }); + }, + error: function (error) { + messages.push({ frame: _this.frame - outerFrame, notification: errorNotification(error) }); + }, + complete: function () { + messages.push({ frame: _this.frame - outerFrame, notification: COMPLETE_NOTIFICATION }); + }, + }); + return messages; + }; + TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) { + var _this = this; + if (subscriptionMarbles === void 0) { subscriptionMarbles = null; } + var actual = []; + var flushTest = { actual: actual, ready: false }; + var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode); + var subscriptionFrame = subscriptionParsed.subscribedFrame === Infinity ? 0 : subscriptionParsed.subscribedFrame; + var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame; + var subscription; + this.schedule(function () { + subscription = observable.subscribe({ + next: function (x) { + var value = x instanceof Observable ? _this.materializeInnerObservable(x, _this.frame) : x; + actual.push({ frame: _this.frame, notification: nextNotification(value) }); + }, + error: function (error) { + actual.push({ frame: _this.frame, notification: errorNotification(error) }); + }, + complete: function () { + actual.push({ frame: _this.frame, notification: COMPLETE_NOTIFICATION }); + }, + }); + }, subscriptionFrame); + if (unsubscriptionFrame !== Infinity) { + this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame); + } + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marbles, values, errorValue) { + flushTest.ready = true; + flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode); + }, + toEqual: function (other) { + flushTest.ready = true; + flushTest.expected = []; + _this.schedule(function () { + subscription = other.subscribe({ + next: function (x) { + var value = x instanceof Observable ? _this.materializeInnerObservable(x, _this.frame) : x; + flushTest.expected.push({ frame: _this.frame, notification: nextNotification(value) }); + }, + error: function (error) { + flushTest.expected.push({ frame: _this.frame, notification: errorNotification(error) }); + }, + complete: function () { + flushTest.expected.push({ frame: _this.frame, notification: COMPLETE_NOTIFICATION }); + }, + }); + }, subscriptionFrame); + }, + }; + }; + TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) { + var flushTest = { actual: actualSubscriptionLogs, ready: false }; + this.flushTests.push(flushTest); + var runMode = this.runMode; + return { + toBe: function (marblesOrMarblesArray) { + var marblesArray = typeof marblesOrMarblesArray === 'string' ? [marblesOrMarblesArray] : marblesOrMarblesArray; + flushTest.ready = true; + flushTest.expected = marblesArray + .map(function (marbles) { return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode); }) + .filter(function (marbles) { return marbles.subscribedFrame !== Infinity; }); + }, + }; + }; + TestScheduler.prototype.flush = function () { + var _this = this; + var hotObservables = this.hotObservables; + while (hotObservables.length > 0) { + hotObservables.shift().setup(); + } + _super.prototype.flush.call(this); + this.flushTests = this.flushTests.filter(function (test) { + if (test.ready) { + _this.assertDeepEqual(test.actual, test.expected); + return false; + } + return true; + }); + }; + TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) { + var _this = this; + if (runMode === void 0) { runMode = false; } + if (typeof marbles !== 'string') { + return new SubscriptionLog(Infinity); + } + var characters = __spreadArray([], __read(marbles)); + var len = characters.length; + var groupStart = -1; + var subscriptionFrame = Infinity; + var unsubscriptionFrame = Infinity; + var frame = 0; + var _loop_1 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var c = characters[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '^': + if (subscriptionFrame !== Infinity) { + throw new Error("found a second subscription point '^' in a " + 'subscription marble diagram. There can only be one.'); + } + subscriptionFrame = groupStart > -1 ? groupStart : frame; + advanceFrameBy(1); + break; + case '!': + if (unsubscriptionFrame !== Infinity) { + throw new Error("found a second unsubscription point '!' in a " + 'subscription marble diagram. There can only be one.'); + } + unsubscriptionFrame = groupStart > -1 ? groupStart : frame; + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || characters[i - 1] === ' ') { + var buffer = characters.slice(i).join(''); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_1.frameTimeFactor); + break; + } + } + } + throw new Error("there can only be '^' and '!' markers in a " + "subscription marble diagram. Found instead '" + c + "'."); + } + frame = nextFrame; + out_i_1 = i; + }; + var this_1 = this, out_i_1; + for (var i = 0; i < len; i++) { + _loop_1(i); + i = out_i_1; + } + if (unsubscriptionFrame < 0) { + return new SubscriptionLog(subscriptionFrame); + } + else { + return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame); + } + }; + TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) { + var _this = this; + if (materializeInnerObservables === void 0) { materializeInnerObservables = false; } + if (runMode === void 0) { runMode = false; } + if (marbles.indexOf('!') !== -1) { + throw new Error('conventional marble diagrams cannot have the ' + 'unsubscription marker "!"'); + } + var characters = __spreadArray([], __read(marbles)); + var len = characters.length; + var testMessages = []; + var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^'); + var frame = subIndex === -1 ? 0 : subIndex * -this.frameTimeFactor; + var getValue = typeof values !== 'object' + ? function (x) { return x; } + : function (x) { + if (materializeInnerObservables && values[x] instanceof ColdObservable) { + return values[x].messages; + } + return values[x]; + }; + var groupStart = -1; + var _loop_2 = function (i) { + var nextFrame = frame; + var advanceFrameBy = function (count) { + nextFrame += count * _this.frameTimeFactor; + }; + var notification = void 0; + var c = characters[i]; + switch (c) { + case ' ': + if (!runMode) { + advanceFrameBy(1); + } + break; + case '-': + advanceFrameBy(1); + break; + case '(': + groupStart = frame; + advanceFrameBy(1); + break; + case ')': + groupStart = -1; + advanceFrameBy(1); + break; + case '|': + notification = COMPLETE_NOTIFICATION; + advanceFrameBy(1); + break; + case '^': + advanceFrameBy(1); + break; + case '#': + notification = errorNotification(errorValue || 'error'); + advanceFrameBy(1); + break; + default: + if (runMode && c.match(/^[0-9]$/)) { + if (i === 0 || characters[i - 1] === ' ') { + var buffer = characters.slice(i).join(''); + var match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); + if (match) { + i += match[0].length - 1; + var duration = parseFloat(match[1]); + var unit = match[2]; + var durationInMs = void 0; + switch (unit) { + case 'ms': + durationInMs = duration; + break; + case 's': + durationInMs = duration * 1000; + break; + case 'm': + durationInMs = duration * 1000 * 60; + break; + default: + break; + } + advanceFrameBy(durationInMs / this_2.frameTimeFactor); + break; + } + } + } + notification = nextNotification(getValue(c)); + advanceFrameBy(1); + break; + } + if (notification) { + testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification }); + } + frame = nextFrame; + out_i_2 = i; + }; + var this_2 = this, out_i_2; + for (var i = 0; i < len; i++) { + _loop_2(i); + i = out_i_2; + } + return testMessages; + }; + TestScheduler.prototype.createAnimator = function () { + var _this = this; + if (!this.runMode) { + throw new Error('animate() must only be used in run mode'); + } + var lastHandle = 0; + var map; + var delegate = { + requestAnimationFrame: function (callback) { + if (!map) { + throw new Error('animate() was not called within run()'); + } + var handle = ++lastHandle; + map.set(handle, callback); + return handle; + }, + cancelAnimationFrame: function (handle) { + if (!map) { + throw new Error('animate() was not called within run()'); + } + map.delete(handle); + }, + }; + var animate = function (marbles) { + var e_1, _a; + if (map) { + throw new Error('animate() must not be called more than once within run()'); + } + if (/[|#]/.test(marbles)) { + throw new Error('animate() must not complete or error'); + } + map = new Map(); + var messages = TestScheduler.parseMarbles(marbles, undefined, undefined, undefined, true); + try { + for (var messages_1 = __values(messages), messages_1_1 = messages_1.next(); !messages_1_1.done; messages_1_1 = messages_1.next()) { + var message = messages_1_1.value; + _this.schedule(function () { + var e_2, _a; + var now = _this.now(); + var callbacks = Array.from(map.values()); + map.clear(); + try { + for (var callbacks_1 = (e_2 = void 0, __values(callbacks)), callbacks_1_1 = callbacks_1.next(); !callbacks_1_1.done; callbacks_1_1 = callbacks_1.next()) { + var callback = callbacks_1_1.value; + callback(now); + } + } + catch (e_2_1) { e_2 = { error: e_2_1 }; } + finally { + try { + if (callbacks_1_1 && !callbacks_1_1.done && (_a = callbacks_1.return)) _a.call(callbacks_1); + } + finally { if (e_2) throw e_2.error; } + } + }, message.frame); + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (messages_1_1 && !messages_1_1.done && (_a = messages_1.return)) _a.call(messages_1); + } + finally { if (e_1) throw e_1.error; } + } + }; + return { animate: animate, delegate: delegate }; + }; + TestScheduler.prototype.createDelegates = function () { + var _this = this; + var lastHandle = 0; + var scheduleLookup = new Map(); + var run = function () { + var now = _this.now(); + var scheduledRecords = Array.from(scheduleLookup.values()); + var scheduledRecordsDue = scheduledRecords.filter(function (_a) { + var due = _a.due; + return due <= now; + }); + var dueImmediates = scheduledRecordsDue.filter(function (_a) { + var type = _a.type; + return type === 'immediate'; + }); + if (dueImmediates.length > 0) { + var _a = dueImmediates[0], handle = _a.handle, handler = _a.handler; + scheduleLookup.delete(handle); + handler(); + return; + } + var dueIntervals = scheduledRecordsDue.filter(function (_a) { + var type = _a.type; + return type === 'interval'; + }); + if (dueIntervals.length > 0) { + var firstDueInterval = dueIntervals[0]; + var duration = firstDueInterval.duration, handler = firstDueInterval.handler; + firstDueInterval.due = now + duration; + firstDueInterval.subscription = _this.schedule(run, duration); + handler(); + return; + } + var dueTimeouts = scheduledRecordsDue.filter(function (_a) { + var type = _a.type; + return type === 'timeout'; + }); + if (dueTimeouts.length > 0) { + var _b = dueTimeouts[0], handle = _b.handle, handler = _b.handler; + scheduleLookup.delete(handle); + handler(); + return; + } + throw new Error('Expected a due immediate or interval'); + }; + var immediate = { + setImmediate: function (handler) { + var handle = ++lastHandle; + scheduleLookup.set(handle, { + due: _this.now(), + duration: 0, + handle: handle, + handler: handler, + subscription: _this.schedule(run, 0), + type: 'immediate', + }); + return handle; + }, + clearImmediate: function (handle) { + var value = scheduleLookup.get(handle); + if (value) { + value.subscription.unsubscribe(); + scheduleLookup.delete(handle); + } + }, + }; + var interval = { + setInterval: function (handler, duration) { + if (duration === void 0) { duration = 0; } + var handle = ++lastHandle; + scheduleLookup.set(handle, { + due: _this.now() + duration, + duration: duration, + handle: handle, + handler: handler, + subscription: _this.schedule(run, duration), + type: 'interval', + }); + return handle; + }, + clearInterval: function (handle) { + var value = scheduleLookup.get(handle); + if (value) { + value.subscription.unsubscribe(); + scheduleLookup.delete(handle); + } + }, + }; + var timeout = { + setTimeout: function (handler, duration) { + if (duration === void 0) { duration = 0; } + var handle = ++lastHandle; + scheduleLookup.set(handle, { + due: _this.now() + duration, + duration: duration, + handle: handle, + handler: handler, + subscription: _this.schedule(run, duration), + type: 'timeout', + }); + return handle; + }, + clearTimeout: function (handle) { + var value = scheduleLookup.get(handle); + if (value) { + value.subscription.unsubscribe(); + scheduleLookup.delete(handle); + } + }, + }; + return { immediate: immediate, interval: interval, timeout: timeout }; + }; + TestScheduler.prototype.run = function (callback) { + var prevFrameTimeFactor = TestScheduler.frameTimeFactor; + var prevMaxFrames = this.maxFrames; + TestScheduler.frameTimeFactor = 1; + this.maxFrames = Infinity; + this.runMode = true; + var animator = this.createAnimator(); + var delegates = this.createDelegates(); + animationFrameProvider.delegate = animator.delegate; + dateTimestampProvider.delegate = this; + immediateProvider.delegate = delegates.immediate; + intervalProvider.delegate = delegates.interval; + timeoutProvider.delegate = delegates.timeout; + performanceTimestampProvider.delegate = this; + var helpers = { + cold: this.createColdObservable.bind(this), + hot: this.createHotObservable.bind(this), + flush: this.flush.bind(this), + time: this.createTime.bind(this), + expectObservable: this.expectObservable.bind(this), + expectSubscriptions: this.expectSubscriptions.bind(this), + animate: animator.animate, + }; + try { + var ret = callback(helpers); + this.flush(); + return ret; + } + finally { + TestScheduler.frameTimeFactor = prevFrameTimeFactor; + this.maxFrames = prevMaxFrames; + this.runMode = false; + animationFrameProvider.delegate = undefined; + dateTimestampProvider.delegate = undefined; + immediateProvider.delegate = undefined; + intervalProvider.delegate = undefined; + timeoutProvider.delegate = undefined; + performanceTimestampProvider.delegate = undefined; + } + }; + TestScheduler.frameTimeFactor = 10; + return TestScheduler; +}(VirtualTimeScheduler)); +export { TestScheduler }; +//# sourceMappingURL=TestScheduler.js.map
\ No newline at end of file diff --git a/node_modules/rxjs/dist/esm5/internal/testing/TestScheduler.js.map b/node_modules/rxjs/dist/esm5/internal/testing/TestScheduler.js.map new file mode 100644 index 0000000..9033cd0 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/testing/TestScheduler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TestScheduler.js","sourceRoot":"","sources":["../../../../src/internal/testing/TestScheduler.ts"],"names":[],"mappings":"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"}
\ No newline at end of file |
