UNPKG

@zendesk/retrace

Version:

define and capture Product Operation Traces along with computed metrics with an optional friendly React beacon API

32 lines (27 loc) 1.02 kB
/* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { expect } from 'vitest' import { generateAsciiTimeline } from './generateAsciiTimeline' // eslint-disable-next-line @typescript-eslint/no-explicit-any const isValid = (item: any): boolean => Boolean( typeof item === 'object' && item !== null && ((typeof item.duration === 'number' && (typeof item.startTime === 'number' || (typeof item.startTime === 'object' && typeof item.startTime?.now === 'number'))) || ('span' in item && typeof item.span === 'object' && isValid(item.span))), ) const asciiTimelineSerializer = { test: (val: unknown) => Array.isArray(val) && val.every((item) => isValid(item)), print: (val: unknown) => generateAsciiTimeline(val as PerformanceEntry[], { width: 80, }), } as const expect.addSnapshotSerializer(asciiTimelineSerializer) // eslint-disable-next-line import/no-default-export export default asciiTimelineSerializer