rewiremock
Version:
Advanced dependency mocking device.
40 lines (33 loc) • 1.04 kB
JavaScript
import createPlugin, { YES, PASS, NO } from './_common';
import { inParents } from '../module';
import { getExtensions } from "../constants";
var trimKey = function trimKey(key) {
return key[0] == '.' ? trimKey(key.substr(1)) : key;
};
var endsWith = function endsWith(a, b) {
return a.substring(a.length - b.length) === b;
};
export var relativeWipeCheck = function relativeWipeCheck(stubs, moduleName) {
if (Object.keys(stubs).some(function (key) {
return getExtensions().some(function (ext) {
return endsWith(moduleName, trimKey(key + ext));
});
})) {
return YES;
}
};
var fileNameTransformer = function fileNameTransformer(fileName /*, module*/) {
return fileName;
};
var shouldMock = function shouldMock(mock, request, parent, topModule) {
if (mock.flag_directChildOnly === false) {
return PASS;
}
return inParents(parent, topModule) ? PASS : NO;
};
var plugin = createPlugin({
fileNameTransformer: fileNameTransformer,
shouldMock: shouldMock,
name: 'relative'
});
export default plugin;