Sometimes, we want to mock local storage in Jest tests.
In this article, we’ll look at how to mock local storage in Jest tests.
How to mock local storage in Jest tests?
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
.
Conclusion
To mock local storage in Jest tests, we can create our own mock local storage methods.