@yqg/multiple-click
Version:
Monitor user's multiple click behavior and report
62 lines (61 loc) • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSubsets = exports.mockUploadTrackingInfo = exports.mockFetchConfig = exports.baseConfig = void 0;
const type_1 = require("../type");
exports.baseConfig = {
appId: 'test',
appVersion: '1.0.0',
env: type_1.ENV_TYPE.TEST,
interval: 1000,
continuousCount: 3,
range: 500,
customTrackingInfo: (_, extra) => extra,
filter: () => false,
excludeRules: [
{
selector: '#app',
shallow: true,
page: ['/test/abc']
}
]
};
const mockFetchConfig = (data) => {
global.fetch = jest.fn((url) => {
if (url.includes('/api-web/hostCond')) {
return Promise.resolve({
json: () => Promise.resolve({ body: data })
});
}
return Promise.resolve({});
});
};
exports.mockFetchConfig = mockFetchConfig;
const mockUploadTrackingInfo = (cb) => {
global.fetch = jest.fn((url, req) => {
if (url.includes('/logMetrics')) {
cb === null || cb === void 0 ? void 0 : cb(req);
return Promise.resolve({
json: () => Promise.resolve({})
});
}
return Promise.resolve({});
});
};
exports.mockUploadTrackingInfo = mockUploadTrackingInfo;
const getSubsets = (arr, subLen) => {
const subsets = [];
const backtrack = (start, currentSubset) => {
if (currentSubset.length === subLen) {
subsets.push([...currentSubset]);
return;
}
for (let i = start; i < arr.length; i++) {
currentSubset.push(arr[i]);
backtrack(i + 1, currentSubset);
currentSubset.pop();
}
};
backtrack(0, []);
return subsets;
};
exports.getSubsets = getSubsets;