Files
botpress--botpress/packages/llmz/vitest.stack-trace-serializer.ts
2026-07-13 13:34:48 +08:00

36 lines
854 B
TypeScript

import { SnapshotSerializer } from 'vitest'
const seen = new Set<string>()
const serializer = {
serialize(val: string, config, indentation, depth, refs, printer) {
const pretty = val
.split('\n')
.map((line) => {
if (/\^{2,}/.test(line)) {
return '...' + line.trim()
}
return line
})
.join('\n')
return printer(pretty, config, indentation, depth, refs)
},
test(val) {
if (typeof val === 'string') {
const lines = val.split('\n').filter((line) => !!line.trim().length)
const isStack = lines.length > 1 && lines.every((line) => /(\d\d\d \|)|(^\s+\^{2,}$)/i.test(line))
if (seen.has(val)) {
return false
}
seen.add(val)
return isStack
}
return false
},
} satisfies SnapshotSerializer
export default serializer as unknown