@applicaster/zapp-react-dom-app
Version:
Zapp App Component for Applicaster's Quick Brick React Native App
51 lines (40 loc) • 1.27 kB
JavaScript
import * as ProvidePlugins from "@applicaster/zapp-react-native-utils/analyticsUtils/manager";
import { loadAnalyticsPlugins } from "../loadAnalyticsPlugins";
const plugin1 = {
module: jest.fn(),
name: "Plugin 1",
identifier: "plugin_1",
type: "analytics",
};
const plugin2 = {
module: jest.fn(),
name: "Plugin 2",
identifier: "plugin_2",
type: "video_advertisement",
};
const plugins = [plugin1, plugin2];
const pluginConfigurations = [{}];
const providePlugins = jest
.spyOn(ProvidePlugins, "providePlugins")
.mockImplementation((plugins, pluginConfigurations, callback) => {
callback();
});
describe("loadAnalyticsPlugins", () => {
it("resolves", async () => {
const resolver = jest.fn();
const rejecter = jest.fn();
await loadAnalyticsPlugins(plugins, pluginConfigurations)
.then(resolver)
.catch(rejecter);
expect(resolver).toHaveBeenCalled();
expect(rejecter).not.toHaveBeenCalled();
});
it("it calls the analytics plugin initializer", async () => {
await loadAnalyticsPlugins(plugins, pluginConfigurations);
expect(providePlugins).toHaveBeenCalledWith(
plugins.filter((p) => p.type === "analytics"),
pluginConfigurations,
expect.any(Function)
);
});
});