UNPKG

@hazae41/phobos

Version:

Modern and minimalist testing library for the web

33 lines (30 loc) 874 B
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