1 var resolve = require("path").resolve
2 var fs = require("graceful-fs")
3 var test = require("tap").test
4 var mkdirp = require("mkdirp")
5 var rimraf = require("rimraf")
7 var common = require("../common-tap.js")
9 var pkg = resolve(__dirname, "gently-rm-linked")
10 var dep = resolve(__dirname, "test-linked")
11 var glb = resolve(__dirname, "test-global")
12 var lnk = resolve(__dirname, "test-global-link")
19 var index = "module.exports = function () { console.log('whoop whoop') }"
29 test("setup", function (t) {
36 test("install and link", function (t) {
41 "--loglevel", "silent",
42 "install", "../test-linked"
45 function (er, code, stdout, stderr) {
46 t.ifError(er, "test-linked install didn't explode")
47 t.notOk(code, "test-linked install also failed")
48 t.notOk(stderr, "no log output")
52 // again, to make sure unlinking works properlyt
57 "--loglevel", "silent",
58 "install", "../test-linked"
61 function (er, code, stdout, stderr) {
62 t.ifError(er, "test-linked install didn't explode")
63 t.notOk(code, "test-linked install also failed")
64 t.notOk(stderr, "no log output")
68 fs.readdir(pkg, function (er, files) {
69 t.ifError(er, "package directory is still there")
70 t.deepEqual(files, ["node_modules"], "only stub modules dir remains")
80 test("cleanup", function (t) {
86 function verify (t, stdout) {
87 var binPath = resolve(lnk, "bin", "linked")
88 var pkgPath = resolve(lnk, "lib", "node_modules", "@test", "linked")
89 var trgPath = resolve(pkgPath, "index.js")
92 binPath+" -> "+trgPath+"\n@test/linked@1.0.0 "+pkgPath+"\n",
93 "got expected install output"
107 fs.symlinkSync(glb, lnk)
108 // so it doesn't try to install into npm's own node_modules
109 mkdirp.sync(resolve(pkg, "node_modules"))
111 fs.writeFileSync(resolve(dep, "package.json"), JSON.stringify(fixture))
112 fs.writeFileSync(resolve(dep, "index.js"), index)