]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/sorted-package-json.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / sorted-package-json.js
1 var test = require("tap").test
2   , path = require("path")
3   , rimraf = require("rimraf")
4   , mkdirp = require("mkdirp")
5   , spawn = require("child_process").spawn
6   , npm = require.resolve("../../bin/npm-cli.js")
7   , node = process.execPath
8   , pkg = path.resolve(__dirname, "sorted-package-json")
9   , tmp = path.join(pkg, "tmp")
10   , cache = path.join(pkg, "cache")
11   , fs = require("fs")
12   , common = require("../common-tap.js")
13   , mr = require("npm-registry-mock")
14   , osenv = require("osenv")
15
16
17 test("sorting dependencies", function (t) {
18   var packageJson = path.resolve(pkg, "package.json")
19
20   cleanup()
21   mkdirp.sync(cache)
22   mkdirp.sync(tmp)
23   setup()
24
25   var before = JSON.parse(fs.readFileSync(packageJson).toString())
26
27   mr({port : common.port}, function (er, s) {
28     // underscore is already in the package.json,
29     // but --save will trigger a rewrite with sort
30     var child = spawn(node, [npm, "install", "--save", "underscore@1.3.3", "--no-progress", "--loglevel=error"], {
31       cwd: pkg,
32       env: {
33         "npm_config_registry": common.registry,
34         "npm_config_cache": cache,
35         "npm_config_tmp": tmp,
36         "npm_config_prefix": pkg,
37         "npm_config_global": "false",
38         HOME: process.env.HOME,
39         Path: process.env.PATH,
40         PATH: process.env.PATH
41       },
42       stdio: ['ignore', 'ignore', process.stderr]
43     })
44
45     child.on("close", function (code) {
46       t.equal(code, 0, "npm install exited with code")
47       var result = fs.readFileSync(packageJson).toString()
48         , resultAsJson = JSON.parse(result)
49
50       s.close()
51
52       t.same(Object.keys(resultAsJson.dependencies),
53         Object.keys(before.dependencies).sort())
54
55       t.notSame(Object.keys(resultAsJson.dependencies),
56         Object.keys(before.dependencies))
57
58       t.ok(resultAsJson.dependencies.underscore)
59       t.ok(resultAsJson.dependencies.request)
60       t.end()
61     })
62   })
63 })
64
65 test("cleanup", function (t) {
66   cleanup()
67   t.pass("cleaned up")
68   t.end()
69 })
70
71 function setup() {
72   mkdirp.sync(pkg)
73
74   fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({
75     "name": "sorted-package-json",
76     "version": "0.0.0",
77     "description": "",
78     "main": "index.js",
79     "scripts": {
80       "test": "echo \"Error: no test specified\" && exit 1"
81     },
82     "author": "Rocko Artischocko",
83     "license": "ISC",
84     "dependencies": {
85       "underscore": "^1.3.3",
86       "request": "^0.9.0"
87     }
88   }, null, 2), "utf8")
89 }
90
91 function cleanup() {
92   process.chdir(osenv.tmpdir())
93   rimraf.sync(cache)
94   rimraf.sync(pkg)
95 }