]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/gently-rm-symlink.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / gently-rm-symlink.js
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")
6
7 var common = require("../common-tap.js")
8
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")
13
14 var EXEC_OPTS = {
15   cwd : pkg
16 }
17
18
19 var index = "module.exports = function () { console.log('whoop whoop') }"
20
21 var fixture = {
22   name: "@test/linked",
23   version: "1.0.0",
24   bin: {
25     linked: "./index.js"
26   }
27 }
28
29 test("setup", function (t) {
30   cleanup()
31   setup()
32
33   t.end()
34 })
35
36 test("install and link", function (t) {
37   common.npm(
38     [
39       "--global",
40       "--prefix",   lnk,
41       "--loglevel", "silent",
42       "install",    "../test-linked"
43     ],
44     EXEC_OPTS,
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")
49
50       verify(t, stdout)
51
52       // again, to make sure unlinking works properlyt
53       common.npm(
54         [
55           "--global",
56           "--prefix", lnk,
57           "--loglevel", "silent",
58           "install", "../test-linked"
59         ],
60         EXEC_OPTS,
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")
65
66           verify(t, stdout)
67
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")
71
72             t.end()
73           })
74         }
75       )
76     }
77   )
78 })
79
80 test("cleanup", function (t) {
81   cleanup()
82
83   t.end()
84 })
85
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")
90   t.equal(
91     stdout,
92     binPath+" -> "+trgPath+"\n@test/linked@1.0.0 "+pkgPath+"\n",
93     "got expected install output"
94   )
95 }
96
97 function cleanup () {
98   rimraf.sync(pkg)
99   rimraf.sync(dep)
100   rimraf.sync(lnk)
101   rimraf.sync(glb)
102 }
103
104 function setup () {
105   mkdirp.sync(pkg)
106   mkdirp.sync(glb)
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"))
110   mkdirp.sync(dep)
111   fs.writeFileSync(resolve(dep, "package.json"), JSON.stringify(fixture))
112   fs.writeFileSync(resolve(dep, "index.js"), index)
113 }