UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

169 lines (124 loc) 4.32 kB
import { ContextKeysManager } from "../.."; describe("Context Keys Manager - getKeys", () => { it("returns value if found by getKey", async () => { // setup const keys = ["namespace.key"]; const value = "value"; const contextManager = new ContextKeysManager({}); const getKey = jest .spyOn(contextManager, "getKey") .mockResolvedValueOnce(value); // run const result = await contextManager.getKeys(keys); // verify const map = new Map(); map.set(keys[0], value); expect(result).toEqual(map); expect(getKey).toHaveBeenCalledTimes(1); expect(getKey.mock.calls).toEqual([keys]); }); it("returns value if found by getKey", async () => { // setup const keys = [{ key: "key", namespace: "namespace" }]; const value = "value"; const contextManager = new ContextKeysManager({}); const getKey = jest .spyOn(contextManager, "getKey") .mockResolvedValueOnce(value); // run const result = await contextManager.getKeys(keys); // verify const map = new Map(); map.set(keys[0], value); expect(result).toEqual(map); expect(getKey).toHaveBeenCalledTimes(1); expect(getKey.mock.calls).toEqual([keys]); }); it("returns value if found by getKey", async () => { // setup const keys = [ { key: "key1", namespace: "namespace1" }, { key: "key2", namespace: "namespace2" }, ]; const value1 = "value1"; const value2 = "value2"; const contextManager = new ContextKeysManager({}); const getKey = jest .spyOn(contextManager, "getKey") .mockResolvedValueOnce(value1) .mockResolvedValueOnce(value2); // run const result = await contextManager.getKeys(keys); // verify const map = new Map(); map.set(keys[0], value1); map.set(keys[1], value2); expect(result).toEqual(map); expect(result.get(keys[0])).toEqual(value1); expect(result.get(keys[1])).toEqual(value2); expect(getKey).toHaveBeenCalledTimes(2); expect(getKey.mock.calls).toEqual([[keys[0]], [keys[1]]]); }); it("returns values if found by getKey", async () => { // setup const keys = ["namespace.key1", "namespace.key2"]; const value1 = "value1"; const value2 = "value2"; const contextManager = new ContextKeysManager({}); const getKey = jest .spyOn(contextManager, "getKey") .mockResolvedValueOnce(value1) .mockResolvedValueOnce(value2); // run const result = await contextManager.getKeys(keys); // verify const map = new Map(); map.set(keys[0], value1); map.set(keys[1], value2); expect(result).toEqual(map); expect(result.get(keys[0])).toEqual(value1); expect(result.get(keys[1])).toEqual(value2); expect(getKey).toHaveBeenCalledTimes(2); expect(getKey.mock.calls).toEqual([[keys[0]], [keys[1]]]); }); it("returns values first is not found and second is found", async () => { // setup const keys = ["namespace.key1", "namespace.key2"]; const value1 = null; const value2 = "value2"; const contextManager = new ContextKeysManager({}); const getKey = jest .spyOn(contextManager, "getKey") .mockResolvedValueOnce(value1) .mockResolvedValueOnce(value2); // run const result = await contextManager.getKeys(keys); // verify const map = new Map(); map.set(keys[0], value1); map.set(keys[1], value2); expect(result).toEqual(map); expect(getKey).toHaveBeenCalledTimes(2); expect(getKey.mock.calls).toEqual([[keys[0]], [keys[1]]]); }); it("returns values first is found and second is not found", async () => { // setup const keys = ["namespace.key1", "namespace.key2"]; const value1 = "value1"; const value2 = null; const contextManager = new ContextKeysManager({}); const getKey = jest .spyOn(contextManager, "getKey") .mockResolvedValueOnce(value1) .mockResolvedValueOnce(value2); // run const result = await contextManager.getKeys(keys); // verify const map = new Map(); map.set(keys[0], value1); map.set(keys[1], value2); expect(result).toEqual(map); expect(getKey).toHaveBeenCalledTimes(2); expect(getKey.mock.calls).toEqual([[keys[0]], [keys[1]]]); }); });