Dans le talon de Sinon, il est très facile de restaurer les fonctionnalités.
const stub = sinon.stub(fs,"writeFile",()=>{})
...
fs.writeFile.restore()
Je cherche à faire la même chose avec Jest. Le plus proche que je reçois est ce code laid:
const fsWriteFileHolder = fs.writeFile
fs.writeFile = jest.fn()
...
fs.writeFile = fsWriteFileHolder
Si vous voulez effacer tous les appels à la fonction de simulation, vous pouvez utiliser:
const myMock = jest.fn();
// ...
myMock.mockClear();
Pour tout effacer stocké dans la maquette, essayez plutôt:
myMock.mockReset();
Enfin, j'ai trouvé une solution viable grâce à la contribution de @ nbkhope.
Ainsi, le code suivant fonctionne comme prévu, c'est-à-dire qu'il se moque du code puis restaure le comportement d'origine:
const spy = jest.spyOn(
fs,
'writeFile'
).mockImplementation((filePath,data) => {
...
})
...
spy.mockRestore()