Solo quiero una base de datos simulada simple que devuelva un valor cuando se llama a un método, pero no puedo encontrar la manera de hacerlo. Soy muy nuevo en javascript, por lo que puede haber algo obvio que me estoy perdiendo.
Lo que quiero es algo parecido a esto:
it("stub database", async () => { var test = {code: 'test'} var fake = sinon.stub(db, 'method') fake.returns(test) var result = fake.method("anything") // <- function does not exist sinon.assert.match(result.code,"test") });Pero esto no funciona.
esto casi funciona
it("stub database", async () => { var test = {code: 'test'} sinon.stub(db, 'method').returns(test) var result = db.method("anything") sinon.assert.match(result.code,"test") });Pero si luego envío la base de datos a otra instancia, el código auxiliar deja de funcionar.
La instancia de base de datos que quiero reemplazar es
module.exports = exports = (app, data = null) => { data = data(app) || require('db')(app) exports.app = app return exports } exports.method = (input) => { return data.method(input) }Siento que esto es lo más fácil en cualquier otro idioma, pero no tengo idea de por qué esto es tan difícil en el nodo, por lo que cualquier ayuda sería muy útil.