testdouble
Version:
A minimal test double library for TDD with JavaScript
35 lines (34 loc) • 993 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("../wrap/lodash");
const resetListeners = [];
let globalStore = [];
const store = {
onReset(func) {
resetListeners.push(func);
},
reset() {
globalStore = [];
resetListeners.forEach(func => func());
},
for(testDouble, createIfNew = true) {
const entry = lodash_1.default.find(globalStore, e => testDouble === e.testDouble || testDouble === e.alias);
if (entry) {
return entry;
}
else if (createIfNew) {
return lodash_1.default.tap({
testDouble,
stubbings: [],
calls: [],
verifications: []
}, function (newEntry) {
return globalStore.push(newEntry);
});
}
},
registerAlias(testDouble, alias) {
store.for(testDouble).alias = alias;
}
};
exports.default = store;