UNPKG

testdouble

Version:

A minimal test double library for TDD with JavaScript

38 lines (32 loc) 792 B
import _ from '../wrap/lodash' import { EventEmitter } from 'events' const storeEmitter = new EventEmitter() let globalStore = [] const store = { onReset (func) { storeEmitter.on('reset', func) }, reset () { globalStore = [] storeEmitter.emit('reset') }, for (testDouble, createIfNew = true) { const entry = _.find(globalStore, e => testDouble === e.testDouble || testDouble === e.alias) if (entry) { return entry } else if (createIfNew) { return _.tap({ testDouble, stubbings: [], calls: [], verifications: [] }, function (newEntry) { return globalStore.push(newEntry) }) } }, registerAlias (testDouble, alias) { store.for(testDouble).alias = alias } } export default store