Skip to content
This repository has been archived by the owner on Aug 13, 2021. It is now read-only.

Latest commit

 

History

History
71 lines (48 loc) · 1.23 KB

README.md

File metadata and controls

71 lines (48 loc) · 1.23 KB

fixture-stdout

A test fixture to intercept writes to stdout.

Install:

npm install fixture-stdout

Example Usage:

var StdOutFixture = require('fixture-stdout');
var fixture = new StdOutFixture();

// Keep track of writes so we can check them later..
var _writes = [];

// Capture a write to stdout
fixture.capture( function onWrite (string, encoding, fd) {
  _writes.push({
    string: string,
    encoding: encoding,
    fd: fd
  });


  // If you return `false`, you'll prevent the write to the original stream (useful for preventing log output during tests.)
  return false;

});

// Uses intercepted version of stdout
console.log('a');
console.log('b');

fixture.release();

// Now we're back to the original version of stdout
console.log('c');
console.log('d');

// Voila!
// Only the first two logs ("a" and "b") are in our `_writes` array

Watch streams other than stdout:

var Fixture = require('fixture-stdout');

var fixture = new Fixture({
	stream: process.stderr
});

fixture.capture();
console.error('hello world');
fixture.release();
console.error('world');

Credit

Based on @pguillory's example.

License

MIT