@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
38 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAccessorsSpies = void 0;
function createAccessorsSpies(
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
autoSpy, gettersToSpyOn, settersToSpyOn, accessorSpyFactory) {
autoSpy.accessorSpies = {
setters: {},
getters: {},
};
/* istanbul ignore else */
if (gettersToSpyOn) {
gettersToSpyOn.forEach(function (getterName) {
defineWithEmptyAccessors(autoSpy, getterName);
autoSpy.accessorSpies.getters[getterName] = accessorSpyFactory(autoSpy, getterName, 'getter');
});
}
/* istanbul ignore else */
if (settersToSpyOn) {
settersToSpyOn.forEach(function (setterName) {
if (!Object.prototype.hasOwnProperty.call(autoSpy, setterName)) {
defineWithEmptyAccessors(autoSpy, setterName);
}
autoSpy.accessorSpies.setters[setterName] = accessorSpyFactory(autoSpy, setterName, 'setter');
});
}
}
exports.createAccessorsSpies = createAccessorsSpies;
function defineWithEmptyAccessors(obj, prop) {
/* istanbul ignore next */
Object.defineProperty(obj, prop, {
get: function () { },
// eslint-disable-next-line @typescript-eslint/no-unused-vars
set: function (_) { },
configurable: true,
});
}
//# sourceMappingURL=create-accessors-spies.js.map