@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
71 lines • 3.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addPromiseHelpersToCalledWithObject = exports.addPromiseHelpersToFunctionSpy = void 0;
function addPromiseHelpersToFunctionSpy(
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
spyFunction, valueContainer) {
spyFunction.resolveWith = function (value) {
valueContainer.value = Promise.resolve(value);
};
spyFunction.rejectWith = function (value) {
valueContainer.value = value;
valueContainer._isRejectedPromise = true;
};
spyFunction.resolveWithPerCall = function resolveWithPerCall(valueConfigsPerCall) {
/* istanbul ignore else */
if (valueConfigsPerCall && valueConfigsPerCall.length > 0) {
valueContainer.valuesPerCalls = [];
var returnedPromise_1;
valueConfigsPerCall.forEach(function (valueConfiguration) {
returnedPromise_1 = Promise.resolve(valueConfiguration.value);
/* istanbul ignore else */
if (valueContainer.valuesPerCalls) {
valueContainer.valuesPerCalls.push({
wrappedValue: returnedPromise_1,
delay: valueConfiguration.delay,
});
}
});
}
};
}
exports.addPromiseHelpersToFunctionSpy = addPromiseHelpersToFunctionSpy;
function addPromiseHelpersToCalledWithObject(calledWithObject, calledWithArgs) {
var valueContainer;
calledWithObject.resolveWith = function (value) {
calledWithObject.argsToValuesMap.set(calledWithArgs, Promise.resolve(value));
valueContainer = {
value: Promise.resolve(value),
};
calledWithObject.argsToValuesMap.set(calledWithArgs, valueContainer);
};
calledWithObject.rejectWith = function (value) {
valueContainer = {
value: value,
_isRejectedPromise: true,
};
calledWithObject.argsToValuesMap.set(calledWithArgs, valueContainer);
};
calledWithObject.resolveWithPerCall = function resolveWithPerCall(valueConfigsPerCall) {
valueContainer = { value: undefined };
/* istanbul ignore else */
if (valueConfigsPerCall && valueConfigsPerCall.length > 0) {
valueContainer.valuesPerCalls = [];
var returnedPromise_2;
valueConfigsPerCall.forEach(function (valueConfiguration) {
returnedPromise_2 = Promise.resolve(valueConfiguration.value);
/* istanbul ignore else */
if (valueContainer.valuesPerCalls) {
valueContainer.valuesPerCalls.push({
wrappedValue: returnedPromise_2,
delay: valueConfiguration.delay,
});
}
});
calledWithObject.argsToValuesMap.set(calledWithArgs, valueContainer);
}
};
return calledWithObject;
}
exports.addPromiseHelpersToCalledWithObject = addPromiseHelpersToCalledWithObject;
//# sourceMappingURL=promises-spy-utils.js.map