@yqg/multiple-click
Version:
Monitor user's multiple click behavior and report
56 lines (55 loc) • 1.53 kB
JavaScript
import { ENV_TYPE } from '../type';
export const baseConfig = {
appId: 'test',
appVersion: '1.0.0',
env: ENV_TYPE.TEST,
interval: 1000,
continuousCount: 3,
range: 500,
customTrackingInfo: (_, extra) => extra,
filter: () => false,
excludeRules: [
{
selector: '#app',
shallow: true,
page: ['/test/abc']
}
]
};
export 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({});
});
};
export 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({});
});
};
export 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;
};