var common = require("../common-tap.js") , test = require("tap").test , rimraf = require("rimraf") , npm = require("../../") , mr = require("npm-registry-mock") , path = require("path") , spawn = require('child_process').spawn , node = process.execPath , npmc = require.resolve('../../') , pkg = __dirname + '/outdated-new-versions' , args = [ npmc , 'outdated' , '--json' , '--silent' , '--registry=' + common.registry , '--cache=' + pkg + '/cache' ] var expected = { underscore: { current: '1.3.3' , wanted: '1.3.3' , latest: '1.5.1' , location: 'node_modules' + path.sep + 'underscore' } , request: { current: '0.9.5' , wanted: '0.9.5' , latest: '2.27.0' , location: 'node_modules' + path.sep + 'request' } } test("it should log json data", function (t) { cleanup() process.chdir(pkg) mr(common.port, function (s) { npm.load({ cache: pkg + "/cache", loglevel: 'silent', registry: common.registry } , function () { npm.install(".", function (err) { var child = spawn(node, args) , out = '' child.stdout .on('data', function (buf) { out += buf.toString() }) .pipe(process.stdout) child.on('exit', function () { out = JSON.parse(out) t.deepEqual(out, expected) s.close() t.end() }) }) }) }) }) test("cleanup", function (t) { cleanup() t.end() }) function cleanup () { rimraf.sync(pkg + "/node_modules") rimraf.sync(pkg + "/cache") }