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