react-cosmos
Version:
Sandbox for developing and testing UI components in isolation
24 lines (23 loc) • 636 B
JavaScript
import { vi } from 'vitest';
export async function mockConsole(cb) {
const expectedLogs = [];
const origConsoleLog = console.log;
console.log = vi.fn((...args) => {
if (typeof args[0] !== 'string' || !expectedLogs.includes(args[0])) {
origConsoleLog(...args);
}
});
try {
const cbReturn = await cb({
expectLog: (msg) => expectedLogs.push(msg),
});
expectedLogs.forEach(msg => expect(console.log).toBeCalledWith(msg));
return cbReturn;
}
catch (err) {
throw err;
}
finally {
console.log = origConsoleLog;
}
}