MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 98 lines 4.2 kB view raw
1import consoleModule, { Console } from 'node:console'; 2import { test, testDeep, summary } from './helpers.js'; 3 4console.log('Console Tests\n'); 5 6test('console.log exists', typeof console.log, 'function'); 7test('console.error exists', typeof console.error, 'function'); 8test('console.warn exists', typeof console.warn, 'function'); 9test('console.info exists', typeof console.info, 'function'); 10test('console.debug exists', typeof console.debug, 'function'); 11test('console.trace exists', typeof console.trace, 'function'); 12test('console.time exists', typeof console.time, 'function'); 13test('console.timeEnd exists', typeof console.timeEnd, 'function'); 14test('console.timeLog exists', typeof console.timeLog, 'function'); 15test('console.assert exists', typeof console.assert, 'function'); 16test('console.clear exists', typeof console.clear, 'function'); 17test('console.count exists', typeof console.count, 'function'); 18test('console.countReset exists', typeof console.countReset, 'function'); 19test('console.group exists', typeof console.group, 'function'); 20test('console.groupCollapsed exists', typeof console.groupCollapsed, 'function'); 21test('console.groupEnd exists', typeof console.groupEnd, 'function'); 22test('console.dir exists', typeof console.dir, 'function'); 23test('console.dirxml exists', typeof console.dirxml, 'function'); 24test('console.table exists', typeof console.table, 'function'); 25test('console.Console exists', typeof console.Console, 'function'); 26 27test('node:console default export is object', typeof consoleModule, 'object'); 28test('node:console Console export exists', typeof Console, 'function'); 29test('node:console default Console matches named export', consoleModule.Console, Console); 30 31function makeSink() { 32 return { 33 chunks: [], 34 write(chunk) { 35 this.chunks.push(String(chunk)); 36 return true; 37 } 38 }; 39} 40 41const stdoutSink = makeSink(); 42const stderrSink = makeSink(); 43const instance = new Console({ stdout: stdoutSink, stderr: stderrSink, groupIndentation: 2 }); 44 45test('Console instance log exists', typeof instance.log, 'function'); 46test('Console instance error exists', typeof instance.error, 'function'); 47test('Console instance warn exists', typeof instance.warn, 'function'); 48test('Console instance info exists', typeof instance.info, 'function'); 49test('Console instance debug exists', typeof instance.debug, 'function'); 50test('Console instance assert exists', typeof instance.assert, 'function'); 51test('Console instance trace exists', typeof instance.trace, 'function'); 52test('Console instance count exists', typeof instance.count, 'function'); 53test('Console instance countReset exists', typeof instance.countReset, 'function'); 54test('Console instance time exists', typeof instance.time, 'function'); 55test('Console instance timeLog exists', typeof instance.timeLog, 'function'); 56test('Console instance timeEnd exists', typeof instance.timeEnd, 'function'); 57test('Console instance group exists', typeof instance.group, 'function'); 58test('Console instance groupCollapsed exists', typeof instance.groupCollapsed, 'function'); 59test('Console instance groupEnd exists', typeof instance.groupEnd, 'function'); 60test('Console instance clear exists', typeof instance.clear, 'function'); 61test('Console instance dir exists', typeof instance.dir, 'function'); 62test('Console instance dirxml exists', typeof instance.dirxml, 'function'); 63test('Console instance table exists', typeof instance.table, 'function'); 64 65instance.log('hello', 'world'); 66instance.info('info'); 67instance.group('parent'); 68instance.log('child'); 69instance.groupEnd(); 70instance.count('hits'); 71instance.count('hits'); 72instance.countReset('hits'); 73instance.count('hits'); 74instance.error('problem'); 75instance.warn('warning'); 76instance.assert(false, 'boom'); 77instance.trace('trace'); 78 79testDeep('Console instance stdout routing', stdoutSink.chunks, [ 80 'hello world\n', 81 'info\n', 82 'parent\n', 83 ' child\n', 84 'hits: 1\n', 85 'hits: 2\n', 86 'hits: 1\n' 87]); 88 89testDeep('Console instance stderr routing', stderrSink.chunks.slice(0, 4), [ 90 'problem\n', 91 'warning\n', 92 'Assertion failed: boom\n', 93 'Trace: trace\n' 94]); 95 96test('Console instance trace writes stack to stderr sink', stderrSink.chunks.some(chunk => chunk.includes('at ')), true); 97 98summary();