« All posts

08.27.2022 - TypeScript / Testing localStorage in Jest

One approach to testing the localStorage function in Jest is to mock the setItem/getItem methods.

To mock something with localStorage, we can do it via the Storage.prototype, for example:

jest.spyOn(Storage.prototype, 'setItem');
jest.spyOn(Storage.prototype, 'getItem');

Now, you’ll be able to test their behavior:

// test write to localStorage
expect(localStorage.setItem).toHaveBeenCalledWith('key', 'value')
 
// test read from localStorage
expect(localStorage.getItem).toHaveBeenCalledWith('key')

Or, use mockReturnValue method if you want to mock the return value of localStorage.getItem:

jest.spyOn(Storage.prototype, 'getItem')
    .mockReturnValue(10);

Read more