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.
 
 
 
 
 
 

112 lines
2.9 KiB

var common = require("../common-tap.js")
var test = require("tap").test
var npm = require("../../")
var rimraf = require("rimraf")
var path = require("path")
var mr = require("npm-registry-mock")
var osenv = require("osenv")
var mkdirp = require("mkdirp")
var fs = require("graceful-fs")
var pkg = path.resolve(__dirname, "outdated-private")
var pkgLocalPrivate = path.resolve(pkg, "local-private")
var pkgScopedLocalPrivate = path.resolve(pkg, "another-local-private")
var pkgLocalUnderscore = path.resolve(pkg, "underscore")
var pjParent = JSON.stringify({
name : "outdated-private",
version : "1.0.0",
dependencies : {
"local-private" : "file:local-private",
"@scoped/another-local-private" : "file:another-local-private",
"underscore" : "file:underscore"
}
}, null, 2) + "\n"
var pjLocalPrivate = JSON.stringify({
name : "local-private",
version : "1.0.0",
private : true
}, null, 2) + "\n"
var pjLocalPrivateBumped = JSON.stringify({
name : "local-private",
version : "1.1.0",
private : true
}, null, 2) + "\n"
var pjScopedLocalPrivate = JSON.stringify({
name : "@scoped/another-local-private",
version : "1.0.0",
private : true
}, null, 2) + "\n"
var pjLocalUnderscore = JSON.stringify({
name : "underscore",
version : "1.3.1"
}, null, 2) + "\n"
test("setup", function (t) {
bootstrap()
t.end()
})
test("outdated ignores private modules", function (t) {
t.plan(3)
process.chdir(pkg)
mr({ port : common.port }, function (err, s) {
npm.load(
{
loglevel : "silent",
parseable : true,
registry : common.registry
},
function () {
npm.install(".", function (err) {
t.ifError(err, "install success")
bumpLocalPrivate()
npm.outdated(function (er, d) {
t.ifError(er, "outdated success")
t.deepEqual(d, [[
path.resolve(__dirname, "outdated-private"),
"underscore",
"1.3.1",
"1.5.1",
"1.5.1",
"underscore@1.5.1"
]])
s.close()
})
})
}
)
})
})
test("cleanup", function (t) {
cleanup()
t.end()
})
function bootstrap () {
mkdirp.sync(pkg)
fs.writeFileSync(path.resolve(pkg, "package.json"), pjParent)
mkdirp.sync(pkgLocalPrivate)
fs.writeFileSync(path.resolve(pkgLocalPrivate, "package.json"), pjLocalPrivate)
mkdirp.sync(pkgScopedLocalPrivate)
fs.writeFileSync(path.resolve(pkgScopedLocalPrivate, "package.json"), pjScopedLocalPrivate)
mkdirp.sync(pkgLocalUnderscore)
fs.writeFileSync(path.resolve(pkgLocalUnderscore, "package.json"), pjLocalUnderscore)
}
function bumpLocalPrivate () {
fs.writeFileSync(path.resolve(pkgLocalPrivate, "package.json"), pjLocalPrivateBumped)
}
function cleanup () {
process.chdir(osenv.tmpdir())
rimraf.sync(pkg)
}