pokerogue/test/testUtils/mocks/mockConsoleLog.ts
Sirz Benjie 408b66f913
[Misc][Refactor][GitHub] Ditch eslint for biome, and add a formatter (#5495)
Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
2025-03-09 14:13:25 -07:00

83 lines
2.3 KiB
TypeScript

const MockConsoleLog = (_logDisabled = false, _phaseText = false) => {
let logs: any[] = [];
const logDisabled: boolean = _logDisabled;
const phaseText: boolean = _phaseText;
const originalLog = console.log;
const originalError = console.error;
const originalDebug = console.debug;
const originalWarn = console.warn;
const notified: any[] = [];
const blacklist = ["Phaser", "variant icon does not exist", 'Texture "%s" not found'];
const whitelist = ["Phase"];
return {
log(...args) {
const argsStr = this.getStr(args);
logs.push(argsStr);
if (logDisabled && !phaseText) {
return;
}
if ((phaseText && !whitelist.some(b => argsStr.includes(b))) || blacklist.some(b => argsStr.includes(b))) {
return;
}
originalLog(args);
},
error(...args) {
const argsStr = this.getStr(args);
logs.push(argsStr);
originalError(args); // Appelle le console.error originel
},
debug(...args) {
const argsStr = this.getStr(args);
logs.push(argsStr);
if (logDisabled && !phaseText) {
return;
}
if (!whitelist.some(b => argsStr.includes(b)) || blacklist.some(b => argsStr.includes(b))) {
return;
}
originalDebug(args);
},
warn(...args) {
const argsStr = this.getStr(args);
logs.push(args);
if (logDisabled && !phaseText) {
return;
}
if (!whitelist.some(b => argsStr.includes(b)) || blacklist.some(b => argsStr.includes(b))) {
return;
}
originalWarn(args);
},
notify(msg) {
originalLog(msg);
notified.push(msg);
},
getLogs() {
return logs;
},
clearLogs() {
logs = [];
},
getStr(...args) {
return args
.map(arg => {
if (typeof arg === "object" && arg !== null) {
// Handle objects including arrays
return JSON.stringify(arg, (_key, value) => (typeof value === "bigint" ? value.toString() : value));
}
if (typeof arg === "bigint") {
// Handle BigInt values
return arg.toString();
}
// Handle all other types
return arg.toString();
})
.join(";");
},
};
};
export default MockConsoleLog;