diff options
Diffstat (limited to 'tests/driver.js')
-rw-r--r-- | tests/driver.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/driver.js b/tests/driver.js new file mode 100644 index 0000000..d273c5d --- /dev/null +++ b/tests/driver.js @@ -0,0 +1,34 @@ +const isAsync = f => + typeof f.then === 'function' && + f[Symbol.toStringTag] === 'Promise'; + +const t = ({ colors, err, assert }) => ({ + assert, + tap: x => { + err(`tap: ${x}\n`); + return x; + }, + start: msg => { + err(`${msg}:\n`); + }, + test: async (msg, fn) => { + err(`${colors.yellow("testing")}: ${msg}... `); + try { + if (isAsync(fn)) { + await fn(); + } else { + fn(); + } + } catch (e) { + err(`${colors.red("ERR")}.\n`); + throw e; + } + err(`${colors.green("OK")}.\n`); + }, +}); + +export const runTests = async (conf, tests) => { + for (const testFn of tests) { + await testFn(t(conf)); + } +}; |