UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

234 lines (181 loc) • 6.38 kB
import { ContextKeysManager } from "../../.."; import { StorageLevel } from "../../../consts"; describe("Context Keys Manager - setKey", () => { const key = null; const value = "value"; it("returns false if key is invalid with storage-level=default", async () => { // setup const storageLevel = StorageLevel.default; const mockedLogger = { warn: jest.fn(), }; const mockedSessionStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedLocalStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedSecureStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, sessionStorage: mockedSessionStorage, localStorage: mockedLocalStorage, secureStorage: mockedSecureStorage, }); // run const result = await contextManager.setKey({ key, value, storageLevel }); // verify expect(result).toBe(false); expect(mockedLogger.warn).toHaveBeenCalledTimes(1); expect(mockedLogger.warn).toHaveBeenCalledWith({ message: "Provided key is not valid - expecing an object with namespace and key properties", data: { key }, }); expect(mockedSessionStorage.getItem).not.toHaveBeenCalled(); expect(mockedSessionStorage.setItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.getItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.setItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.getItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.setItem).not.toHaveBeenCalled(); }); it("returns false if key is invalid with storage-level=persisted", async () => { // setup const storageLevel = StorageLevel.persisted; const mockedLogger = { warn: jest.fn(), }; const mockedSessionStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedLocalStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedSecureStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, sessionStorage: mockedSessionStorage, localStorage: mockedLocalStorage, secureStorage: mockedSecureStorage, }); // run const result = await contextManager.setKey({ key, value, storageLevel }); // verify expect(result).toBe(false); expect(mockedLogger.warn).toHaveBeenCalledTimes(1); expect(mockedLogger.warn).toHaveBeenCalledWith({ message: "Provided key is not valid - expecing an object with namespace and key properties", data: { key }, }); expect(mockedSessionStorage.getItem).not.toHaveBeenCalled(); expect(mockedSessionStorage.setItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.getItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.setItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.getItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.setItem).not.toHaveBeenCalled(); }); it("returns false if key is invalid with storage-level=secure", async () => { // setup const storageLevel = StorageLevel.secure; const mockedLogger = { warn: jest.fn(), }; const mockedSessionStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedLocalStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedSecureStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, sessionStorage: mockedSessionStorage, localStorage: mockedLocalStorage, secureStorage: mockedSecureStorage, }); // run const result = await contextManager.setKey({ key, value, storageLevel }); // verify expect(result).toBe(false); expect(mockedLogger.warn).toHaveBeenCalledTimes(1); expect(mockedLogger.warn).toHaveBeenCalledWith({ message: "Provided key is not valid - expecing an object with namespace and key properties", data: { key }, }); expect(mockedSessionStorage.getItem).not.toHaveBeenCalled(); expect(mockedSessionStorage.setItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.getItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.setItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.getItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.setItem).not.toHaveBeenCalled(); }); it("returns false if key is invalid with storage-level=undefined", async () => { // setup const mockedLogger = { warn: jest.fn(), }; const mockedSessionStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedLocalStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const mockedSecureStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn(), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, sessionStorage: mockedSessionStorage, localStorage: mockedLocalStorage, secureStorage: mockedSecureStorage, }); // run const result = await contextManager.setKey({ key, value }); // verify expect(result).toBe(false); expect(mockedLogger.warn).toHaveBeenCalledTimes(1); expect(mockedLogger.warn).toHaveBeenCalledWith({ message: "Provided key is not valid - expecing an object with namespace and key properties", data: { key }, }); expect(mockedSessionStorage.getItem).not.toHaveBeenCalled(); expect(mockedSessionStorage.setItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.getItem).not.toHaveBeenCalled(); expect(mockedLocalStorage.setItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.getItem).not.toHaveBeenCalled(); expect(mockedSecureStorage.setItem).not.toHaveBeenCalled(); }); });