diff options
Diffstat (limited to 'tests/runner.mjs')
-rw-r--r-- | tests/runner.mjs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/runner.mjs b/tests/runner.mjs new file mode 100644 index 0000000..79bda8c --- /dev/null +++ b/tests/runner.mjs @@ -0,0 +1,32 @@ +import { eq } from "../src/utils.mjs"; + +class AssertionError extends Error {} + +const red = s => `\x1b[31m${s}\x1b[0m`; +const green = s => `\x1b[32m${s}\x1b[0m`; +const yellow = s => `\x1b[33m${s}\x1b[0m`; + +const t = { + tap: x => { + console.error("tap:", x); + return x; + }, + start: msg => { + console.error(`${msg}:`); + }, + test: (msg, fn) => { + try { + fn(); + console.error(`${yellow("testing")}: ${msg}... ${green("OK")}`); + } catch (e) { + console.error(`${yellow("testing")}: ${msg}... ${red("FAIL")}`); + throw e; + } + }, +}; + +export const runTests = async tests => { + for (const testFn of tests) { + await testFn(t); + } +}; |