Jest mock localStorage methods

前端 未结 4 979
猫巷女王i
猫巷女王i 2021-01-06 11:15

I would like to mock localStorage methods in jest for error simulation. I have localstorage getter and setter methods defined in utility.js. I would like to mock local

4条回答
  •  误落风尘
    2021-01-06 11:57

    If you want to test localStorage functions then I would like to suggest the jest-localstorage-mock npm package.

    After configuring this package in your setup test file as per documentation, then you could do this after.

    test('should save to localStorage', () => {
      const KEY = 'foo',
        VALUE = 'bar';
      dispatch(action.update(KEY, VALUE));
      expect(localStorage.setItem).toHaveBeenLastCalledWith(KEY, VALUE);
      expect(localStorage.__STORE__[KEY]).toBe(VALUE);
      expect(Object.keys(localStorage.__STORE__).length).toBe(1);
    });
    
    
    test('should have cleared the sessionStorage', () => {
      dispatch(action.reset());
      expect(sessionStorage.clear).toHaveBeenCalledTimes(1);
      expect(sessionStorage.__STORE__).toEqual({}); // check store values
      expect(sessionStorage.length).toBe(0); // or check length
    });
    

提交回复
热议问题