]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/builtin-config.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / builtin-config.js
1 var fs = require("fs")
2
3 if (process.argv[2] === "write-builtin") {
4   var pid = process.argv[3]
5   fs.writeFileSync("npmrc", "foo=bar\npid=" + pid + "\n")
6   return
7 }
8
9 var rcdata = "foo=bar\npid=" + process.pid + "\n"
10 var common = require("../common-tap.js")
11 var path = require("path")
12 var rimraf = require("rimraf")
13 var mkdirp = require("mkdirp")
14 var folder = path.resolve(__dirname, "builtin-config")
15 var test = require("tap").test
16 var npm = path.resolve(__dirname, "../..")
17 var spawn = require("child_process").spawn
18 var node = process.execPath
19
20 test("setup", function (t) {
21   rimraf.sync(folder)
22   mkdirp.sync(folder + "/first")
23   mkdirp.sync(folder + "/second")
24   mkdirp.sync(folder + "/cache")
25   mkdirp.sync(folder + "/tmp")
26
27   t.pass("finished setup")
28   t.end()
29 })
30
31
32 test("install npm into first folder", function (t) {
33   var args = ["install", npm, "-g",
34               "--prefix=" + folder + "/first",
35               "--ignore-scripts",
36               "--cache=" + folder + "/cache",
37               "--no-spin",
38               "--loglevel=silent",
39               "--tmp=" + folder + "/tmp"]
40   common.npm(args, {stdio: "inherit"}, function (er, code) {
41     if (er) throw er
42     t.equal(code, 0)
43     t.end()
44   })
45 })
46
47 test("write npmrc file", function (t) {
48   common.npm(["explore", "npm", "-g",
49               "--prefix=" + folder + "/first",
50               "--cache=" + folder + "/cache",
51               "--tmp=" + folder + "/tmp",
52               "--no-spin",
53               "--",
54               node, __filename, "write-builtin", process.pid
55              ],
56              {"stdio": "inherit"},
57              function (er, code) {
58     if (er) throw er
59     t.equal(code, 0)
60     t.end()
61   })
62 })
63
64 test("use first npm to install second npm", function (t) {
65   // get the root location
66   common.npm([ "root", "-g",
67                "--prefix=" + folder + "/first",
68                "--cache=" + folder + "/cache",
69                "--tmp=" + folder + "/tmp",
70                "--no-spin"
71              ], {}, function (er, code, so) {
72     if (er) throw er
73     t.equal(code, 0)
74     var root = so.trim()
75     t.ok(fs.statSync(root).isDirectory())
76
77     var bin = path.resolve(root, "npm/bin/npm-cli.js")
78     spawn( node
79          , [ bin
80            , "install", npm
81            , "-g"
82            , "--prefix=" + folder + "/second"
83            , "--cache=" + folder + "/cache"
84            , "--tmp=" + folder + "/tmp"
85            , "--no-spin"
86            ])
87     .on("error", function (er) { throw er })
88     .on("close", function (code) {
89       t.equal(code, 0, "code is zero")
90       t.end()
91     })
92   })
93 })
94
95 test("verify that the builtin config matches", function (t) {
96   common.npm([ "root", "-g",
97                "--prefix=" + folder + "/first",
98                "--cache=" + folder + "/cache",
99                "--tmp=" + folder + "/tmp"
100              ], {}, function (er, code, so) {
101     if (er) throw er
102     t.equal(code, 0)
103     var firstRoot = so.trim()
104     common.npm([ "root", "-g",
105                  "--prefix=" + folder + "/second",
106                  "--cache=" + folder + "/cache",
107                  "--tmp=" + folder + "/tmp"
108                ], {}, function (er, code, so) {
109       if (er) throw er
110       t.equal(code, 0)
111       var secondRoot = so.trim()
112       var firstRc = path.resolve(firstRoot, "npm", "npmrc")
113       var secondRc = path.resolve(secondRoot, "npm", "npmrc")
114       var firstData = fs.readFileSync(firstRc, "utf8")
115       var secondData = fs.readFileSync(secondRc, "utf8")
116       t.equal(firstData, secondData)
117       t.end()
118     })
119   })
120 })
121
122
123 test("clean", function (t) {
124   rimraf.sync(folder)
125   t.end()
126 })