Cuando se usa cualquier método de sandbox en el sandbox predeterminado, restore()
no restaura simulacros o espías correctamente. Un caso de reproducción mínima en 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 en la llamada a extend
en lib/sinon.js
, la ONU-sandboxed stub/spy/etc.
exportaciones de apiMethods
terminan sombreando los métodos de recinto de seguridad, y así restore()
no hace nada. Los documentos y la fuente de la lib/sinon.js
parecen sugerir que este es el uso previsto.
Solo probé stub
y spy
, pero esperaría que cualquier otro método sombreado tampoco funcione como se esperaba.
Ejecuté estas pruebas en Node v8.9.4 y Chrome 66.0.3359.117 a través de Karma / Chromedriver, aunque este problema parece no estar relacionado con el entorno.
Gracias por su informe de errores detallado 👍
Esto se ha solucionado en [email protected]
¡Gracias por abordar esto tan rápidamente! Muy apreciado :)
Con buenos informes de errores, la mayoría de los errores son fáciles de eliminar.
Comentario más útil
Con buenos informes de errores, la mayoría de los errores son fáciles de eliminar.