@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
94 lines (77 loc) • 2.35 kB
text/typescript
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
);
});
});