UNPKG

@applicaster/zapp-react-native-bridge

Version:

Applicaster Zapp React Native modules

66 lines (50 loc) 1.76 kB
import { localStorage as NativeLocalStorage } from "../__mocks__/android"; const { localStorage } = require("../LocalStorage"); const RN = require("react-native"); RN.NativeModules.LocalStorage = NativeLocalStorage; RN.Platform.OS = "android"; const test_key = "test_key"; const test_value = "test_value"; const namespaced_key = "namespaced_key"; const namespaced_value = "namespaced_value"; const test_namespace = "test_namespace"; const obj_key = "obj_key"; const obj_value = { prop: "value" }; function setUpStorage() { NativeLocalStorage.setItem(test_key, test_value); NativeLocalStorage.setItem(namespaced_key, namespaced_value, test_namespace); NativeLocalStorage.setItem(obj_key, JSON.stringify(obj_value)); } describe("localStorage - getAllItems", () => { beforeAll(setUpStorage); it("retrieves all values", async () => { const result = await localStorage.getAllItems(); expect(result).toEqual( expect.objectContaining({ [test_key]: test_value, [obj_key]: obj_value, }) ); }); it("works as a bound method", async () => { const getAllItems = localStorage.getAllItems; const result = await getAllItems(); expect(result).toEqual( expect.objectContaining({ [test_key]: test_value, [obj_key]: obj_value, }) ); }); it("retrieves all values in a namespace", async () => { const result = await localStorage.getAllItems(test_namespace); expect(result).toEqual( expect.objectContaining({ [namespaced_key]: namespaced_value }) ); }); it("throws if an error happen on native side", async () => { expect(() => localStorage.getAllItems("undefined_namespace") ).rejects.toThrowErrorMatchingSnapshot(); }); });