2022-09-02 13:15:48 +00:00
|
|
|
import myLocalStorage, { LocalStorage } from "utils/localStorage";
|
2021-03-24 05:09:47 +00:00
|
|
|
|
|
|
|
|
describe("local storage", () => {
|
2021-04-26 09:18:39 +00:00
|
|
|
afterEach(() => {
|
|
|
|
|
jest.clearAllMocks();
|
|
|
|
|
});
|
|
|
|
|
|
2021-03-24 05:09:47 +00:00
|
|
|
it("calls getItem", () => {
|
|
|
|
|
jest.spyOn(window.localStorage.__proto__, "getItem");
|
|
|
|
|
window.localStorage.__proto__.getItem = jest.fn();
|
|
|
|
|
myLocalStorage.getItem("myTestKey");
|
|
|
|
|
expect(localStorage.getItem).toBeCalledWith("myTestKey");
|
|
|
|
|
});
|
|
|
|
|
it("calls setItem", () => {
|
|
|
|
|
jest.spyOn(window.localStorage.__proto__, "setItem");
|
|
|
|
|
window.localStorage.__proto__.setItem = jest.fn();
|
|
|
|
|
myLocalStorage.setItem("myTestKey", "testValue");
|
|
|
|
|
expect(localStorage.setItem).toBeCalledWith("myTestKey", "testValue");
|
|
|
|
|
});
|
|
|
|
|
it("calls removeItem", () => {
|
|
|
|
|
jest.spyOn(window.localStorage.__proto__, "removeItem");
|
|
|
|
|
window.localStorage.__proto__.removeItem = jest.fn();
|
|
|
|
|
myLocalStorage.removeItem("myTestKey");
|
|
|
|
|
expect(localStorage.removeItem).toBeCalledWith("myTestKey");
|
|
|
|
|
});
|
|
|
|
|
it("calls clear", () => {
|
|
|
|
|
jest.spyOn(window.localStorage.__proto__, "clear");
|
|
|
|
|
window.localStorage.__proto__.clear = jest.fn();
|
|
|
|
|
myLocalStorage.clear();
|
|
|
|
|
expect(localStorage.clear).toBeCalled();
|
|
|
|
|
});
|
2021-04-26 09:18:39 +00:00
|
|
|
it("shouldn't call getItem if localStorage is not supported", () => {
|
|
|
|
|
window.localStorage.__proto__.setItem = jest.fn(() => {
|
|
|
|
|
// this makes sure isSupported is set as false within the util
|
|
|
|
|
throw new Error();
|
|
|
|
|
});
|
|
|
|
|
jest.spyOn(window.localStorage.__proto__, "getItem");
|
2022-09-02 13:15:48 +00:00
|
|
|
const localStorageInstance = new LocalStorage();
|
2021-04-26 09:18:39 +00:00
|
|
|
localStorageInstance.getItem("myTestKey");
|
|
|
|
|
expect(localStorage.getItem).toHaveBeenCalledTimes(0);
|
|
|
|
|
});
|
2021-03-24 05:09:47 +00:00
|
|
|
});
|