Which is Jest way for restoring mocked function

If you want to clear all the calls to the mock function, you can use:

const myMock = jest.fn();
// ...
myMock.mockClear();

To clear everything stored in the mock, try instead:

myMock.mockReset();

Finally I found a workable solution thanks to @nbkhope's contribution.

So the following code work as expected, i.e. it mocks the code and then it restore the original behavior:

const spy = jest.spyOn(
    fs,
    'writeFile' 
  ).mockImplementation((filePath,data) => {
  ...
})
...
spy.mockRestore()