@hazae41/phobos
Version:
Modern and minimalist testing library for the web
33 lines (30 loc) • 874 B
JavaScript
import { Context } from '../context/context.mjs';
import { TestError } from '../error.mjs';
function unwrap(error) {
let message = error.message;
while (error.cause instanceof TestError) {
error = error.cause;
message = `${message} > ${error.message}`;
}
return new TestError(message, { cause: error.cause });
}
/**
* Run a test block
* @param message message to show
* @param closure closure to run
* @returns result of closure
*/
async function test(message, closure) {
try {
const context = new Context(message);
await closure(context);
await context.wait();
}
catch (cause) {
if (cause instanceof TestError)
throw unwrap(new TestError(message, { cause }));
throw new TestError(message, { cause });
}
}
export { test, unwrap };
//# sourceMappingURL=global.mjs.map