any-db-fake
Version:
Fake adapter factory for testing any-db related libraries
47 lines (41 loc) • 1.07 kB
JavaScript
var EventEmitter = require('events').EventEmitter
var extend = require('extend')
module.exports = extend(createMockAdapter, {
connection: {
query: function(text, params, callback) {
var q = this.adapter.createQuery(text, params, callback)
process.nextTick(function() {
if (q.callback) q.callback()
q.emit('end')
})
return q
},
end: function() {},
},
createQuery: function(text, params, callback) {
if (typeof text == 'object') {
return text
}
if (typeof params == 'function') {
callback = params
params = []
}
return extend(new EventEmitter(), this.query, {
text: text,
params: params,
callback: callback,
})
},
createConnection: function(_, cb) {
var connection = extend(new EventEmitter(), this.connection, {
adapter: this,
})
if (cb) {
process.nextTick(cb.bind(null, null, connection))
}
return connection
},
})
function createMockAdapter(overrides) {
return extend(true, {}, createMockAdapter, overrides)
}