Files
2026-07-13 13:34:48 +08:00

22 lines
725 B
TypeScript

import { VitestSnapshotEnvironment } from 'vitest/snapshot'
/**
* This custom snapshot environment prevents vitest from saving twice the same inline snapshot in the same test
* This happens if you have a for loop or a map that generates the same inline snapshot multiple times
* This is a Vitest bug
*/
class PreventDoubleInlineSaves extends VitestSnapshotEnvironment {
private _trackedStacks = new Set<string>()
public processStackTrace(stack: any) {
const serialized = JSON.stringify(stack)
if (this._trackedStacks.has(serialized)) {
return { ...stack, column: stack.column + 1000 }
}
this._trackedStacks.add(serialized)
return stack
}
}
export default new PreventDoubleInlineSaves()