You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
1.9 KiB

var common = require("../common-tap.js")
, test = require("tap").test
, rimraf = require("rimraf")
, npm = require("../../")
, mr = require("npm-registry-mock")
, path = require("path")
, osenv = require("osenv")
, spawn = require("child_process").spawn
, node = process.execPath
, npmc = require.resolve("../../")
, pkg = path.resolve(__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({port : common.port}, function (er, s) {
npm.load({
cache: pkg + "/cache",
loglevel: "silent",
registry: common.registry }
, function () {
npm.install(".", function (err) {
t.ifError(err, "error should not exist")
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 () {
// windows fix for locked files
process.chdir(osenv.tmpdir())
rimraf.sync(pkg + "/node_modules")
rimraf.sync(pkg + "/cache")
}