shallow-render
Version:
Shallow rendering test utility for Angular
36 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mockStatics = exports.InvalidStaticPropertyMockError = void 0;
const custom_error_1 = require("../models/custom-error");
const test_framework_1 = require("../test-frameworks/test-framework");
class InvalidStaticPropertyMockError extends custom_error_1.CustomError {
static checkMockForStaticProperties(stubs) {
Object.keys(stubs).forEach(key => {
if (typeof stubs[key] !== 'function') {
throw new InvalidStaticPropertyMockError(key);
}
});
}
constructor(key) {
super(`Tried to mock the '${String(key)}' property but only functions are supported for static mocks.`);
}
}
exports.InvalidStaticPropertyMockError = InvalidStaticPropertyMockError;
const mockStatics = (setup) => {
setup.staticMocks.forEach((stubs, obj) => {
InvalidStaticPropertyMockError.checkMockForStaticProperties(stubs);
Object.keys(stubs).forEach(key => {
const stub = stubs[key];
if (!test_framework_1.testFramework.isSpy(obj[key])) {
test_framework_1.testFramework.spyOn(obj, key, stub);
}
else {
const spy = obj[key];
test_framework_1.testFramework.resetSpy(spy);
test_framework_1.testFramework.mockImplementation(spy, stub);
}
});
});
};
exports.mockStatics = mockStatics;
//# sourceMappingURL=mock-statics.js.map