From 90a1da77a0128b3da1de466669b5509dde862525 Mon Sep 17 00:00:00 2001 From: Ivan Ivashov Date: Sat, 4 Jul 2026 13:04:59 +0300 Subject: [PATCH] YH-2160: add manageLocalStorage tests --- .../manageLocalStorage.test.ts | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/shared/libs/browser/manageLocalStorage/manageLocalStorage.test.ts diff --git a/src/shared/libs/browser/manageLocalStorage/manageLocalStorage.test.ts b/src/shared/libs/browser/manageLocalStorage/manageLocalStorage.test.ts new file mode 100644 index 000000000..367bfb2c5 --- /dev/null +++ b/src/shared/libs/browser/manageLocalStorage/manageLocalStorage.test.ts @@ -0,0 +1,88 @@ +import { setToLS, getFromLS, getJSONFromLS, removeFromLS } from './manageLocalStorage'; + +describe('setToLS', () => { + beforeEach(() => { + localStorage.clear(); + }); + + test('should save string as is (without JSON.stringify)', () => { + const key = 'name'; + const value = 'Ivan'; + + setToLS(key, value); + expect(localStorage.getItem(key)).toBe('Ivan'); + }); + + test('should save number as string', () => { + const key = 'age'; + const value = 25; + + setToLS(key, value); + + expect(localStorage.getItem(key)).toBe('25'); + }); + + test('should save object as JSON string', () => { + const key = 'user'; + const value = { name: 'Ivan', age: 30 }; + + setToLS(key, value); + + expect(localStorage.getItem(key)).toBe('{"name":"Ivan","age":30}'); + }); +}); + +describe('getFromLS', () => { + beforeEach(() => { + localStorage.clear(); + }); + test('must receive the key as a string', () => { + const key = 'user'; + const value = 'Ivan'; + localStorage.setItem(key, value); + + getFromLS(key); + + expect(localStorage.getItem(key)).toBe('Ivan'); + }); +}); + +describe('getJSONFromLS', () => { + beforeEach(() => { + localStorage.clear(); + }); + + test('returns an object if there is a JSON object in localStorage', () => { + const user = { name: 'Ivan', age: 32 }; + localStorage.setItem('user', JSON.stringify(user)); + + expect(getJSONFromLS('user')).toEqual({ name: 'Ivan', age: 32 }); + }); + + test('returns an arr if there is a JSON object in localStorage', () => { + const arr = [1, 2, 3]; + localStorage.setItem('arr', JSON.stringify(arr)); + + expect(getJSONFromLS('arr')).toEqual([1, 2, 3]); + }); + + test('returns null if the key is not in localStorage', () => { + expect(getJSONFromLS('non-existent_key')).toBeNull(); + }); +}); + +describe('removeFromLS', () => { + beforeEach(() => { + localStorage.clear(); + }); + + test('remove key', () => { + const key = 'user'; + const age = 32; + localStorage.setItem(key, age); + + removeFromLS(key); + + expect(localStorage.getItem(key)).toBeNull(); + }); +});