UNPKG

mocha-suppress-logs

Version:

Suppress console output of successful mocha tests.

82 lines (58 loc) 1.83 kB
'use strict'; const chai = require('chai'); const sinon = require('sinon'); const logCapture = require('../lib/log-capture'); chai.should(); describe('Log Capture', () => { const levels = ['log', 'debug', 'info', 'warn', 'error']; const messages = { log: ['log', 'this is a log message'], debug: ['debug', 'this is a debug message'], info: ['info', 'this is an info message'], warn: ['warn', 'this is a warning message'], error: ['error', 'this is an error message'] }; it('should capture logs', () => { sinon.stub(process.stdout, 'write'); sinon.stub(process.stderr, 'write'); logCapture.start(); logCapture.isCapturing().should.be.true; for (const level of levels) { console[level](...messages[level]); } process.stdout.write.called.should.be.false; process.stderr.write.called.should.be.false; logCapture.stop(); logCapture.isCapturing().should.be.false; sinon.restore(); const logs = logCapture.get(); logs.length.should.be.equal(levels.length); for (const level of levels) { logs.should.deep.include({ level, args: messages[level] }); } }); context('after capturing logs', () => { beforeEach(() => { logCapture.start(); for (const level of levels) { console[level](...messages[level]); } logCapture.stop(); }); it('should print logs', () => { for (const level of levels) { sinon.stub(console, level); } logCapture.print(); for (const level in messages) { console[level].calledWith(...messages[level]).should.be.true; } sinon.restore(); }); it('should reset captured logs', () => { logCapture.reset(); const logs = logCapture.get(); logs.should.have.length(0); }); }); });