Ao usar qualquer método de sandbox na sandbox padrão, restore()
não restaura simulações ou espiões corretamente. Um caso mínimo de reprodução no Sinon v5.0.2:
const sinon = require('sinon');
const myApi = {
someMethod() {
console.log('test method!');
}
};
sinon.stub(myApi, 'someMethod');
sinon.restore();
sinon.stub(myApi, 'someMethod');
// TypeError: Attempted to wrap someMethod which is already wrapped
Parece que na chamada para extend
em lib/sinon.js
, os sandboxed-un stub/spy/etc.
exportações de apiMethods
acabar sombreamento os métodos caixa de areia, e assim por restore()
não faz nada. Os documentos e a fonte da lib/sinon.js
parecem sugerir que esse é o uso pretendido.
Eu testei apenas stub
e spy
, mas espero que quaisquer outros métodos ocultos também não funcionem como pretendido.
Eu executei esses testes no Node v8.9.4 e Chrome 66.0.3359.117 via Karma / Chromedriver, embora esse problema não pareça relacionado ao ambiente.
Obrigado pelo seu relatório de erro detalhado 👍
Isso foi corrigido em [email protected]
Obrigado por resolver isso tão rapidamente! Muito apreciado :)
Com bons relatórios de erros, a maioria dos bugs é fácil de eliminar
Comentários muito úteis
Com bons relatórios de erros, a maioria dos bugs é fácil de eliminar