UNPKG

mixpanel-react-native

Version:

Official React Native Tracking Library for Mixpanel Analytics

66 lines (53 loc) 2.15 kB
import { MixpanelType } from "mixpanel-react-native/javascript/mixpanel-constants"; jest.mock("mixpanel-react-native/javascript/mixpanel-persistent", () => ({ MixpanelPersistent: { getInstance: jest.fn().mockReturnValue({ loadQueue: jest.fn().mockResolvedValue([]), saveQueue: jest.fn(), }), }, })); describe("MixpanelQueueManager", () => { let MixpanelQueueManager; let mixpanelPersistent; let token = "testToken"; let type = MixpanelType.EVENTS; beforeEach(() => { jest.isolateModules(async () => { MixpanelQueueManager = require("mixpanel-react-native/javascript/mixpanel-queue") .MixpanelQueueManager; const MixpanelPersistent = require("mixpanel-react-native/javascript/mixpanel-persistent") .MixpanelPersistent; mixpanelPersistent = MixpanelPersistent.getInstance(); await MixpanelQueueManager.clearQueue(token, type); }); }); it("initializes the queue correctly", async () => { await MixpanelQueueManager.initialize(token, type); expect(MixpanelQueueManager.getQueue(token, type)).toEqual([]); }); it("enqueue adds data to the queue and updates storage", async () => { const data = { test: "data" }; await MixpanelQueueManager.initialize(token, type); await MixpanelQueueManager.enqueue(token, type, data); expect(mixpanelPersistent.saveQueue).toHaveBeenCalledWith( token, type, expect.any(Array) ); }); it("splices the queue correctly", async () => { await MixpanelQueueManager.enqueue(token, type, { data: "sample1" }); await MixpanelQueueManager.enqueue(token, type, { data: "sample2" }); await MixpanelQueueManager.spliceQueue(token, type, 0, 1); const queue = MixpanelQueueManager.getQueue(token, type); expect(queue.length).toBe(1); expect(queue).toEqual([{ data: "sample2" }]); }); it("clears the queue correctly", async () => { await MixpanelQueueManager.enqueue(token, type, { data: "sample" }); await MixpanelQueueManager.clearQueue(token, type); const queue = MixpanelQueueManager.getQueue(token, type); expect(queue).toEqual([]); }); });