UNPKG

@hirez_io/auto-spies-core

Version:

Create automatic spies from classes in tests, also for promises and observables, used as a common code for jasmine-auto-spies and jest-auto-spies

48 lines 2.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mergeSubjectWithDefaultValues = void 0; var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); function mergeSubjectWithDefaultValues(subject, valuesConfigs) { var onCompleteSubject = new rxjs_1.ReplaySubject(1); var results$ = (0, rxjs_1.from)(valuesConfigs).pipe( // Add delay to "complete" if needed (0, operators_1.concatMap)(function (valueConfig) { if ('complete' in valueConfig && valueConfig.complete && valueConfig.delay) { return (0, rxjs_1.of)(valueConfig).pipe((0, operators_1.delay)(valueConfig.delay)); } return (0, rxjs_1.of)(valueConfig); }), // Complete if needed (0, operators_1.takeWhile)(function (valueConfig) { if (!('complete' in valueConfig)) { return true; } if (valueConfig.complete) { onCompleteSubject.next(); return false; } return true; }), // Handle regular values or errors (0, operators_1.concatMap)(function (valueConfig) { if ('value' in valueConfig && valueConfig.value) { if (valueConfig.delay) { return (0, rxjs_1.of)(valueConfig.value).pipe((0, operators_1.delay)(valueConfig.delay)); } return (0, rxjs_1.of)(valueConfig.value); } /* istanbul ignore else */ if ('errorValue' in valueConfig && valueConfig.errorValue) { if (valueConfig.delay) { return (0, rxjs_1.timer)(valueConfig.delay).pipe((0, operators_1.switchMap)(function () { return (0, rxjs_1.throwError)(valueConfig.errorValue); })); } return (0, rxjs_1.throwError)(valueConfig.errorValue); } /* istanbul ignore next */ return rxjs_1.EMPTY; })); return (0, rxjs_1.merge)(results$, subject.pipe((0, operators_1.takeUntil)(onCompleteSubject))); } exports.mergeSubjectWithDefaultValues = mergeSubjectWithDefaultValues; //# sourceMappingURL=merge-subject-with-default-values.js.map