Skip to content

Commit

Permalink
fixes colors in stdout
Browse files Browse the repository at this point in the history
  • Loading branch information
TrejGun committed Jan 10, 2016
1 parent 25ce443 commit 1e4a49c
Show file tree
Hide file tree
Showing 5 changed files with 137 additions and 12 deletions.
2 changes: 1 addition & 1 deletion examples/population/population-across-three-collections.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ mongoose.connection.on('open', function() {
BlogPost.populate(docs, opts, function(err, docs) {
assert.ifError(err);
console.log('populated');
var s = require('util').inspect(docs, { depth: null });
var s = require('util').inspect(docs, { depth: null, colors: true });
console.log(s);
done();
});
Expand Down
3 changes: 1 addition & 2 deletions lib/document.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ var EventEmitter = require('events').EventEmitter,
utils = require('./utils'),
clone = utils.clone,
isMongooseObject = utils.isMongooseObject,
inspect = require('util').inspect,
ValidationError = MongooseError.ValidationError,
InternalCache = require('./internal'),
deepEqual = utils.deepEqual,
Expand Down Expand Up @@ -2109,7 +2108,7 @@ Document.prototype.inspect = function(options) {
var opts = options && 'Object' == utils.getFunctionName(options.constructor) ? options : {};
opts.minimize = false;
opts.retainKeyOrder = true;
return inspect(this.toObject(opts));
return this.toObject(opts);
};

/**
Expand Down
9 changes: 1 addition & 8 deletions lib/types/documentarray.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,14 +161,7 @@ MongooseDocumentArray.mixin.toObject = function(options) {
*/

MongooseDocumentArray.mixin.inspect = function() {
return '[' + Array.prototype.map.call(this, function(doc) {
if (doc) {
return doc.inspect
? doc.inspect()
: util.inspect(doc);
}
return 'null';
}).join('\n') + ']';
return Array.prototype.slice.call(this);
};

/**
Expand Down
2 changes: 1 addition & 1 deletion lib/types/embedded.js
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ EmbeddedDocument.prototype.update = function() {
*/

EmbeddedDocument.prototype.inspect = function() {
return inspect(this.toObject());
return this.toObject();
};

/**
Expand Down
133 changes: 133 additions & 0 deletions test/colors.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
/**
* Module dependencies.
*/

var start = require('./common'),
mongoose = start.mongoose,
assert = require('assert'),
Schema = mongoose.Schema,
MongooseDocumentArray = mongoose.Types.DocumentArray,
EmbeddedDocument = require('../lib/types/embedded'),
DocumentArray = require('../lib/types/documentarray');

/**
* setup
*/

var test = Schema({
string: String,
number: Number,
date: {
type: Date,
default: Date.now
}
});

function TestDoc(schema) {
var Subdocument = function() {
EmbeddedDocument.call(this, {}, new DocumentArray);
};

/**
* Inherits from EmbeddedDocument.
*/

Subdocument.prototype.__proto__ = EmbeddedDocument.prototype;

/**
* Set schema.
*/

Subdocument.prototype.$__setSchema(schema || test);

return Subdocument;
}

/**
* Test.
*/

describe('debug: colors', function () {
var db;
var Test;

before(function () {
db = start();
Test = db.model('Test', test, 'TEST');
});

after(function (done) {
db.close(done);
});

it('Document', function (done) {

var date = new Date();

Test.create([{
string: 'qwerty',
number: 123,
date: date
}, {
string: 'asdfgh',
number: 456,
date: date
}, {
string: 'zxcvbn',
number: 789,
date: date
}], function (err) {
assert.ifError(err);
Test
.find()
.lean(false)
.exec(function (err, docs) {
assert.ifError(err);

var colorfull = require('util').inspect(docs, {
depth: null,
colors: true
});

var colorless = require('util').inspect(docs, {
depth: null,
colors: false
});

// console.log(colorfull, colorless);

assert.notEqual(colorfull, colorless);

done();
});
});
});

it('MongooseDocumentArray', function () {

var Subdocument = TestDoc();

var sub1 = new Subdocument();
sub1.string = 'string';
sub1.number = 12345;
sub1.date = new Date();

var docs = new MongooseDocumentArray([sub1]);

var colorfull = require('util').inspect(docs, {
depth: null,
colors: true
});

var colorless = require('util').inspect(docs, {
depth: null,
colors: false
});

// console.log(colorfull, colorless);

assert.notEqual(colorfull, colorless);

})

});

0 comments on commit 1e4a49c

Please sign in to comment.