UNPKG

@yoroi/common

Version:
96 lines (95 loc) 3.05 kB
"use strict"; import { storageKeyMaker } from './storage-key-maker'; describe('storageKeyMaker', () => { const mockStorage = { setItem: jest.fn(), getItem: jest.fn(), removeItem: jest.fn(), clear: jest.fn(), multiSet: jest.fn(), multiGet: jest.fn(), multiRemove: jest.fn(), getAllKeys: jest.fn(), join: jest.fn(), removeFolder: jest.fn(), onChange: jest.fn(), observable: { source: undefined, operator: undefined, subscribe: jest.fn(), lift: jest.fn(), forEach: jest.fn(), pipe: jest.fn(), toPromise: jest.fn() } }; beforeEach(() => { jest.clearAllMocks(); }); it('should create a storage key maker with identity parser', () => { const key = 'test-key'; const value = { data: 'test' }; const identityParser = data => data; const storage = storageKeyMaker(mockStorage)({ key, parser: identityParser }); storage.save(value); expect(mockStorage.setItem).toHaveBeenCalledWith(key, value); mockStorage.getItem.mockImplementation((_k, parse) => parse?.(value) ?? value); const result = storage.read(); expect(mockStorage.getItem).toHaveBeenCalledWith(key, expect.any(Function)); expect(result).toBe(value); storage.remove(); expect(mockStorage.removeItem).toHaveBeenCalledWith(key); expect(storage.key).toBe(key); }); it('should create a storage key maker with custom parser', () => { const key = 'test-key'; const value = { data: 'test' }; const parsedValue = { data: 'parsed' }; const customParser = jest.fn().mockReturnValue(parsedValue); const storage = storageKeyMaker(mockStorage)({ key, parser: customParser }); storage.save(value); expect(mockStorage.setItem).toHaveBeenCalledWith(key, value); mockStorage.getItem.mockImplementation((_k, parse) => parse?.(value) ?? value); const result = storage.read(); expect(mockStorage.getItem).toHaveBeenCalledWith(key, expect.any(Function)); expect(customParser).toHaveBeenCalledWith(value); expect(result).toBe(parsedValue); storage.remove(); expect(mockStorage.removeItem).toHaveBeenCalledWith(key); expect(storage.key).toBe(key); }); it('should handle null values from storage', () => { const key = 'test-key'; const identityParser = data => data; const storage = storageKeyMaker(mockStorage)({ key, parser: identityParser }); mockStorage.getItem.mockImplementation((_k, parse) => parse?.(null) ?? null); const result = storage.read(); expect(mockStorage.getItem).toHaveBeenCalledWith(key, expect.any(Function)); expect(result).toBe(null); }); it('should return frozen object', () => { const key = 'test-key'; const identityParser = data => data; const storage = storageKeyMaker(mockStorage)({ key, parser: identityParser }); expect(Object.isFrozen(storage)).toBe(true); }); }); //# sourceMappingURL=storage-key-maker.test.js.map