UNPKG

rxjs-marbles

Version:

An RxJS marble testing library for any test framework

74 lines (73 loc) 3.07 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.marbles = exports.configure = void 0; var testing_1 = require("rxjs/testing"); var configuration_1 = require("./configuration"); var context_deprecated_1 = require("./context-deprecated"); var context_run_1 = require("./context-run"); var matcher_1 = require("./matcher"); function configure(configurationOrFactory) { function deriveConfiguration() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var explicit = typeof configurationOrFactory === "function" ? configurationOrFactory.apply(void 0, args) : configurationOrFactory; return __assign(__assign({}, configuration_1.defaults()), explicit); } function _marbles(func) { var wrapper = function () { var _this = this; var rest = []; for (var _i = 0; _i < arguments.length; _i++) { rest[_i] = arguments[_i]; } var configuration = deriveConfiguration.apply(void 0, rest); if (configuration.run) { var scheduler_1 = new testing_1.TestScheduler(function (actual, expected) { return matcher_1.observableMatcher(actual, expected, configuration.assert, configuration.assertDeepEqual, configuration.frameworkMatcher); }); return scheduler_1.run(function (helpers) { return func.call.apply(func, __spreadArray([_this, new context_run_1.RunContext(scheduler_1, helpers)], rest)); }); } var context = new context_deprecated_1.DeprecatedContext(configuration); try { return func.call.apply(func, __spreadArray([this, context], rest)); } finally { context.teardown(); } }; if (func.length > 1) { return function (first) { var rest = []; for (var _i = 1; _i < arguments.length; _i++) { rest[_i - 1] = arguments[_i]; } return wrapper.apply(void 0, __spreadArray([first], rest)); }; } return wrapper; } return { marbles: _marbles }; } exports.configure = configure; exports.marbles = configure(configuration_1.defaults()).marbles;