@applicaster/zapp-react-native-utils
Version:
Applicaster Zapp React Native utilities package
78 lines (57 loc) • 2.21 kB
text/typescript
import { Mapper } from "../analyticsMapper";
import { fixtures } from "./fixtures";
jest.mock("@applicaster/zapp-react-native-utils/appUtils/contextKeysManager");
const AnalyticsMapper = new Mapper();
/**
* Fixture Pair composed of expected input and expected output
* first = input
* second = output
*/
type Pair = {
first: any;
second: any;
};
// Test Runner
const setConfigRunMapTest = async (rules, events) => {
AnalyticsMapper.setConfiguration(rules);
return await Promise.all(
events.map(async (pair: Pair) => {
const result = await AnalyticsMapper.map(pair.first);
expect(result).toEqual(pair.second || null);
})
);
};
describe("Analytics Mapper", () => {
it("Returns event modified by regex rename rule", async () => {
const rules = fixtures.eventRegexRules;
await setConfigRunMapTest(rules, fixtures.eventRegexEvents);
});
it("Returns event modified by rename rule", async () => {
const rules = fixtures.renameRules;
await setConfigRunMapTest(rules, fixtures.renameEvents);
});
it("Returns event modified by ignore param rule", async () => {
const rules = fixtures.ignoredParamsRules;
await setConfigRunMapTest(rules, fixtures.ignoredParamsEvents);
});
it("Returns event modified by ignore event rule", async () => {
const rules = fixtures.ignoredEventRules;
await setConfigRunMapTest(rules, fixtures.ignoredEventEvents);
});
it("Returns event modified by context event rule", async () => {
const rules = fixtures.contextRules;
await setConfigRunMapTest(rules, fixtures.contextEvents);
});
it("Returns event modified by block unlisted event rule", async () => {
const rules = fixtures.blockUnlistedEventRules;
await setConfigRunMapTest(rules, fixtures.blockUnlistedEventEvents);
});
it("Returns event modified by block unlisted param rule", async () => {
const rules = fixtures.blockUnlistedParamRules;
await setConfigRunMapTest(rules, fixtures.blockUnlistedParamEvents);
});
it("Returns event modified by Analytics Custom Property", async () => {
const rules = fixtures.ACPEventRules;
await setConfigRunMapTest(rules, fixtures.ACPEventEvents);
});
});