@applicaster/zapp-react-native-bridge
Version:
Applicaster Zapp React Native modules
51 lines (43 loc) • 1.56 kB
text/typescript
import {
bootstrapZappPipes,
resetZappPipesAdapterCache,
setZappPipesAdapterCache,
} from "../index";
import * as zappPipesModule from "@applicaster/zapp-pipes-dev-kit/lib/app-pipes";
const zappPipesSpy = jest
.spyOn(zappPipesModule, "createZappPipesLibrary")
.mockImplementation(() => jest.fn);
const providers = [
{ name: "provider", handler: () => jest.fn(), manifest: { handlers: [] } },
{ name: "provider2", handler: () => jest.fn(), manifest: { handlers: [] } },
];
describe("bootstrapZappPipes - not cached", () => {
afterEach(() => {
zappPipesSpy.mockClear();
resetZappPipesAdapterCache();
});
it("returns an object with a get method", () => {
const zappPipes = bootstrapZappPipes(providers);
expect(zappPipes).toHaveProperty("get", expect.any(Function));
});
it("calls the createZappPipesLibrary function", () => {
bootstrapZappPipes(providers);
expect(zappPipesSpy).toHaveBeenCalledWith({
providers,
release: "dev",
nativeBridge: {
appData: expect.any(Function),
getSessionStoreItem: expect.any(Function),
setSessionStoreItem: expect.any(Function),
getAllSessionItems: expect.any(Function),
getLocalStoreItem: expect.any(Function),
setLocalStoreItem: expect.any(Function),
},
});
});
it("doesn't invoke createZappPipes Library if a cachedAdapter exists", () => {
setZappPipesAdapterCache(providers, { get: jest.fn() });
bootstrapZappPipes(providers);
expect(zappPipesSpy).not.toHaveBeenCalled();
});
});