@rxjs-stuff/marbles
Version:
A set of plugins that provide a natural feeling integration with Mocha and Chai for RxJS "marbles" testing.
50 lines • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.frameConsole = exports.marblesTesting = void 0;
const marbles_helpers_1 = require("./marbles-helpers");
const marbles_helpers_internal_1 = require("./marbles-helpers-internal");
function marblesTesting() {
frameConsole(marbles_helpers_internal_1.MarblesHelpersInternal);
beforeEach(() => {
const scheduler = marbles_helpers_1.MarblesHelpers.createTestScheduler();
const cold = scheduler.createColdObservable.bind(scheduler);
const hot = scheduler.createHotObservable.bind(scheduler);
const expectObservable = scheduler.expectObservable.bind(scheduler);
const expectSubscriptions = scheduler.expectSubscriptions.bind(scheduler);
Object.assign(marbles_helpers_internal_1.MarblesHelpersInternal, {
cold,
expectObservable,
expectSubscriptions,
hot,
scheduler,
helpers: marbles_helpers_internal_1.MarblesHelpersInternal,
});
});
afterEach(() => {
delete marbles_helpers_internal_1.MarblesHelpersInternal.cold;
delete marbles_helpers_internal_1.MarblesHelpersInternal.expectObservable;
delete marbles_helpers_internal_1.MarblesHelpersInternal.expectSubscriptions;
delete marbles_helpers_internal_1.MarblesHelpersInternal.hot;
delete marbles_helpers_internal_1.MarblesHelpersInternal.scheduler;
delete marbles_helpers_internal_1.MarblesHelpersInternal.helpers;
});
}
exports.marblesTesting = marblesTesting;
function frameConsole(helpers) {
const ogConsole = (() => {
const { debug, log, warn, info, error, trace } = console;
return { debug, log, warn, info, error, trace };
})();
function initConsole() {
Object.entries(ogConsole).forEach(([name, fn]) => {
console[name] = (...args) => fn.call(console, `#${helpers.scheduler.frame}`, ...args);
});
}
function resetConsole() {
Object.entries(ogConsole).forEach(([name, fn]) => console[name] = fn);
}
beforeEach(initConsole);
afterEach(resetConsole);
}
exports.frameConsole = frameConsole;
//# sourceMappingURL=marbles-testing.js.map