@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
69 lines (54 loc) • 1.77 kB
text/typescript
import { ContextKeysManager, NOTHING } from "../../..";
import { DEFAULT_NAMESPACE } from "../../../consts";
describe("Context Keys Manager - getKey", () => {
it("returns value if not found in session/local storages, but found in secure-storage", async () => {
// setup
const key = "key";
const value = "value";
const mockedLogger = {
warn: jest.fn(),
};
const mockedSessionStorage = {
getItem: jest.fn().mockResolvedValueOnce(undefined),
setItem: jest.fn(),
removeItem: jest.fn(),
};
const mockedLocalStorage = {
getItem: jest.fn().mockResolvedValueOnce(undefined),
setItem: jest.fn(),
removeItem: jest.fn(),
};
const mockedSecureStorage = {
getItem: jest.fn().mockResolvedValueOnce(value),
setItem: jest.fn(),
removeItem: jest.fn(),
};
const contextManager = new ContextKeysManager({
logger: mockedLogger,
sessionStorage: mockedSessionStorage,
localStorage: mockedLocalStorage,
secureStorage: mockedSecureStorage,
});
const getKeyByReference = jest
.spyOn(contextManager, "getKeyByReference")
.mockResolvedValueOnce(NOTHING);
// run
const result = await contextManager.getKey(key);
// verify
expect(result).toEqual(value);
expect(mockedLogger.warn).not.toHaveBeenCalled();
expect(getKeyByReference).toHaveBeenCalledWith("key", DEFAULT_NAMESPACE);
expect(mockedSessionStorage.getItem).toHaveBeenCalledWith(
"key",
DEFAULT_NAMESPACE
);
expect(mockedLocalStorage.getItem).toHaveBeenCalledWith(
"key",
DEFAULT_NAMESPACE
);
expect(mockedSecureStorage.getItem).toHaveBeenCalledWith(
"key",
DEFAULT_NAMESPACE
);
});
});