UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

94 lines (77 loc) 2.35 kB
import { ContextKeysManager, REFERENCE_NAMESPACE } from "../.."; import { buildNamespaceKey } from "../../utils"; import { StorageLevel } from "../../consts"; describe("Context Keys Manager - setReferenceForKey", () => { it("returns false if save failed", async () => { // setup const key = "key"; const namespace = "namespace"; const storageLevel = StorageLevel.default; const error = Error("oops"); const mockedLogger = { warn: jest.fn(), }; const mockedReferenceStorage = { getItem: jest.fn(), setItem: jest.fn().mockRejectedValueOnce(error), removeItem: jest.fn(), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, referenceStorage: mockedReferenceStorage, }); // run const result = await contextManager.setReferenceForKey( key, namespace, storageLevel ); // verify expect(result).toBe(false); expect(mockedLogger.warn).toHaveBeenCalledWith({ message: error.message, data: { key, namespace, storageLevel }, }); expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith( buildNamespaceKey(key, namespace), storageLevel, REFERENCE_NAMESPACE ); }); it("returns false if save success but result is not true", async () => { // setup const key = "key"; const namespace = "namespace"; const storageLevel = StorageLevel.default; const mockedLogger = { warn: jest.fn(), }; const mockedReferenceStorage = { getItem: jest.fn(), setItem: jest.fn().mockResolvedValueOnce(undefined), removeItem: jest.fn(), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, referenceStorage: mockedReferenceStorage, }); // run const result = await contextManager.setReferenceForKey( key, namespace, storageLevel ); // verify expect(result).toBe(false); expect(mockedLogger.warn).toHaveBeenCalledWith({ message: "While saving reference - reference storage return non expected value: true", data: { key, namespace, storageLevel }, }); expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith( buildNamespaceKey(key, namespace), storageLevel, REFERENCE_NAMESPACE ); }); });