UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

83 lines (64 loc) 2.25 kB
import { ContextKeysManager, REFERENCE_NAMESPACE } from "../.."; import { buildNamespaceKey } from "../../utils"; describe("Context Keys Manager - removeReferenceForKey", () => { it("returns false if reference-storage throw error while removing", async () => { // setup const key = "key"; const namespace = "namespace"; const error = Error("oops"); const mockedLogger = { warn: jest.fn(), }; const mockedReferenceStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn().mockRejectedValueOnce(error), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, referenceStorage: mockedReferenceStorage, }); // run const result = await contextManager.removeReferenceForKey(key, namespace); // verify expect(result).toBe(false); expect(mockedLogger.warn).toHaveBeenCalledWith({ message: error.message, data: { key, namespace }, }); expect(mockedReferenceStorage.getItem).not.toHaveBeenCalled(); expect(mockedReferenceStorage.setItem).not.toHaveBeenCalled(); expect(mockedReferenceStorage.removeItem).toHaveBeenCalledWith( buildNamespaceKey(key, namespace), REFERENCE_NAMESPACE ); }); it("returns true if reference-storage return non true as result", async () => { // setup const key = "key"; const namespace = "namespace"; const mockedLogger = { warn: jest.fn(), }; const mockedReferenceStorage = { getItem: jest.fn(), setItem: jest.fn(), removeItem: jest.fn().mockResolvedValueOnce(undefined), }; const contextManager = new ContextKeysManager({ logger: mockedLogger, referenceStorage: mockedReferenceStorage, }); // run const result = await contextManager.removeReferenceForKey(key, namespace); // verify expect(result).toBe(true); expect(mockedLogger.warn).not.toHaveBeenCalled(); expect(mockedReferenceStorage.getItem).not.toHaveBeenCalled(); expect(mockedReferenceStorage.setItem).not.toHaveBeenCalled(); expect(mockedReferenceStorage.removeItem).toHaveBeenCalledWith( buildNamespaceKey(key, namespace), REFERENCE_NAMESPACE ); }); });