UNPKG

chai-fireproof

Version:

Firebase and Fireproof support for the Chai assertion library.

68 lines (46 loc) 1.38 kB
// we have to hijack console.log to capture Firebase messages chai.use(function() { /** * Retrieve log messages generated by Firebase. * @method getFirebaseMessage * @memberof chai * @param {String} name The kind of message to get: log, warning, or error. * @returns {String} message */ chai.getFirebaseMessage = function(name) { return chai._firebaseMsg[name]; }; chai.flushFirebaseMessages = function() { chai._firebaseMsg = { log: '', warn: '', error: '' }; }; chai.flushFirebaseMessages(); function hijackedLog(logFn, name) { return function() { var message = ''; for (var i = 0; i < arguments.length; i++) { if (arguments[i] !== null && arguments[i] !== undefined) { message += arguments[i].toString(); } } if (message.match(/^FIREBASE.*?: /)) { chai._firebaseMsg[name] += message.replace(/^FIREBASE.*?: /, '') + '\n'; } else { logFn.apply(console, arguments); } }; } if (console && console.log) { chai._firebaseLog = ''; chai._firebaseWarn = ''; var oldLog = console.log, oldWarn = console.warn, oldError = console.error; console.log = hijackedLog(oldLog, 'log'); console.warn = hijackedLog(oldWarn, 'warn'); console.error = hijackedLog(oldError, 'error'); } });