Files
bun.sh/test/js/node/process/process-onUncaughtExceptionSetTimeout.js

42 lines
828 B
JavaScript

import { expect } from "bun:test";
let monitorCalled = false;
setTimeout(() => {
// uncaughtExceptionMonitor should be called
if (!monitorCalled) {
process.exit(1);
}
// timeouts should be processed
process.exit(42);
}, 100);
const hello = Math.random().toFixed(1);
process.on("uncaughtExceptionMonitor", err => {
// Ensure this is not zero or another invalid argument
Object.getOwnPropertyNames(err);
String(err);
monitorCalled = true;
if (!err) {
process.exit(1);
}
});
process.on("uncaughtException", err => {
// Ensure this is not zero or another invalid argument
Object.getOwnPropertyNames(err);
String(err);
// there should be an error
if (!err) {
process.exit(1);
}
expect(Bun.inspect(err)).toContain(hello);
});
setTimeout(() => {
throw new Error(hello);
}, 1);