title: Difference between resetAllMocks, resetModules, resetModuleRegistry, restoreAllMocks in Jest
body: <p>I'm trying to wrap my head around the following in Jest: </p>
  
  <p><code>resetAllMocks</code>, <code>resetModules</code>, <code>resetModuleRegistry</code> and <code>restoreAllMocks</code> </p>
  
  <p>and I'm finding it difficult. </p>
  
  <p>I read the jest documentation but it's not too clear. I would appreciate it if someone can please provide me with an example of how the above work and they are different from each other.</p>