To mock local storage in Jest tests, we can create our own mock local storage methods.
For instance, we write
const localStorageMock = (() => {
  let store = {};
  return {
    getItem(key) {
      return store[key];
    },
    setItem(key, value) {
      store[key] = value.toString();
    },
    clear() {
      store = {};
    },
    removeItem(key) {
      delete store[key];
    }
  };
})();
Object.defineProperty(window, 'localStorage', {
  value: localStorageMock
});
to create the localStorageMock object by creating an IIFE that returns an object that manipulates the store object.
It has getItem to return store[key].
setItem sets store[key] to value converted to a string.
clear sets store to an empty object.
And removeItem removes the store property with the given key with delete.
And then we attach our mocked local storage object to window with Object.defineProperty.
