import assert from "assert"; export async function assertThrowsAsync( fn: () => Promise, error_handler?: (e: unknown) => Promise | void ): Promise { let error: unknown = null; try { await fn(); } catch (e: unknown) { error = e; } finally { assert.notStrictEqual(error, null, "It didn't throw"); if (error_handler) { await error_handler(error); } } }