UNPKG

@yqg/multiple-click

Version:

Monitor user's multiple click behavior and report

69 lines (57 loc) 1.8 kB
import {IExposeMultipleClickTrackingConfig, ENV_TYPE} from '../type'; export const baseConfig: IExposeMultipleClickTrackingConfig = { 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: any) => { global.fetch = jest.fn((url: string) => { if (url.includes('/api-web/hostCond')) { return Promise.resolve({ json: () => Promise.resolve({body: data}) }); } return Promise.resolve({}); }) as jest.Mock; }; export const mockUploadTrackingInfo = (cb?: (req: RequestInit) => void) => { global.fetch = jest.fn((url: string, req: RequestInit) => { if (url.includes('/logMetrics')) { // eslint-disable-next-line callback-return cb?.(req); return Promise.resolve({ json: () => Promise.resolve({}) }); } return Promise.resolve({}); }) as jest.Mock; }; /** 获取arr数组所有长度为subLen的子集 */ export const getSubsets = <T>(arr: T[], subLen: number) => { const subsets: T[][] = []; const backtrack = (start: number, currentSubset: T[]) => { 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; };