UNPKG

1.13 kBJavaScriptView Raw
1// Copyright IBM Corp. 2016. All Rights Reserved.
2// Node module: apiconnect-cli-test-supprt
3// US Government Users Restricted Rights - Use, duplication or disclosure
4// restricted by GSA ADP Schedule Contract with IBM Corp.
5
6'use strict';
7
8var fmt = require('util').format;
9
10/**
11 * A test logger that captures console output.
12 */
13
14module.exports = function(logger) {
15 var buffer = [];
16 if (logger.__capture_monkeypatch) {
17 return;
18 }
19
20 logger.writeln = capture.bind(logger, logger.writeln);
21 logger.write = capture.bind(logger, logger.write);
22 logger.error = capture.bind(logger, logger.error);
23 logger.info = capture.bind(logger, logger.info);
24 logger.warn = capture.bind(logger, logger.warn);
25 logger.debug = function() {};
26
27 function capture(passthruFn) {
28 var msg = fmt.apply(null, Array.prototype.slice.call(arguments, 1));
29 buffer.push(msg);
30 passthruFn.call(logger, msg);
31 }
32
33 logger.values = function(clear) {
34 var res = buffer;
35 if (clear || typeof clear === 'undefined') {
36 buffer = [];
37 }
38 return res;
39 };
40
41 logger.clear = function() {
42 buffer = [];
43 };
44
45 return logger;
46};