const PASS = ['32']; // green const FAIL = ['31', '1']; // red, bold function logStyle(ansiEscapeCodes, text) { console.log(`\x1b[${ansiEscapeCodes.join(';')}m${text}\x1b[0m`); } class Tester { constructor() {} test(name, fn) { try { fn.bind(this)(); logStyle(PASS, `${name} PASSED`); } catch (e) { logStyle(FAIL, `${name} FAILED: ${e}`); } } assertEquals(arg1, arg2) { if (arg1 != arg2) throw new Error(`Expected ${arg1} to equal ${arg2}`); } assert(condition) { if (!condition) throw new Error(`Expected ${condition} to be truthy`); } } /* Usage: const t = new Tester(); t.test('testName', () => { t.assertEquals('dog'.length, 3); // will pass }); t.test('anotherTestName', () => { t.assert(false); // will fail }); */