mirror of
https://github.com/hanzoai/vitest.git
synced 2026-09-24 17:04:25 +00:00
22 lines
721 B
TypeScript
22 lines
721 B
TypeScript
import { expect } from 'vitest';
|
|
|
|
// Valid string terminator sequences are BEL, ESC\, and 0x9c
|
|
const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
|
|
const pattern = [
|
|
`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
|
|
'(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
|
|
].join('|');
|
|
|
|
const ansiRegexp = new RegExp(pattern, 'g');
|
|
|
|
function stripAnsi(string: string) {
|
|
return string.replace(ansiRegexp, '');
|
|
}
|
|
|
|
expect.addSnapshotSerializer({
|
|
test: (val) => typeof val === 'string' || val instanceof Error,
|
|
print: (val: string | Error) => typeof val === 'string'
|
|
? stripAnsi(val)
|
|
: `[${val.name}: ${stripAnsi(val.message)}]`,
|
|
})
|