]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/shrinkwrap-local-dependency.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / shrinkwrap-local-dependency.js
1 var test = require("tap").test
2 var path = require("path")
3 var fs = require("fs")
4 var osenv = require("osenv")
5 var rimraf = require("rimraf")
6 var mkdirp = require("mkdirp")
7 var common = require("../common-tap.js")
8
9 var PKG_DIR = path.resolve(__dirname, "shrinkwrap-local-dependency")
10 var CACHE_DIR = path.resolve(PKG_DIR, "cache")
11 var DEP_DIR = path.resolve(PKG_DIR, "dep")
12
13 var desired = {
14   "name": "npm-test-shrinkwrap-local-dependency",
15   "version": "0.0.0",
16   "dependencies": {
17     "npm-test-shrinkwrap-local-dependency-dep": {
18       "version": "0.0.0",
19       "from": "dep",
20       "resolved": "file:dep"
21     }
22   }
23 }
24
25 var root = {
26   "author": "Thomas Torp",
27   "name": "npm-test-shrinkwrap-local-dependency",
28   "version": "0.0.0",
29   "dependencies": {
30     "npm-test-shrinkwrap-local-dependency-dep": "file:./dep"
31   }
32 }
33
34 var dependency = {
35   "author": "Thomas Torp",
36   "name": "npm-test-shrinkwrap-local-dependency-dep",
37   "version": "0.0.0"
38 }
39
40
41 test("shrinkwrap uses resolved with file: on local deps", function(t) {
42   setup()
43
44   common.npm(
45     ["--cache="+CACHE_DIR, "--loglevel=silent", "install", "."],
46     {},
47     function (err, code) {
48       t.ifError(err, "npm install worked")
49       t.equal(code, 0, "npm exited normally")
50
51       common.npm(
52         ["--cache="+CACHE_DIR, "--loglevel=silent", "shrinkwrap"],
53         {},
54         function (err, code) {
55           t.ifError(err, "npm shrinkwrap worked")
56           t.equal(code, 0, "npm exited normally")
57
58           fs.readFile("npm-shrinkwrap.json", { encoding : "utf8" }, function (err, data) {
59             t.ifError(err, "read file correctly")
60             t.deepEqual(JSON.parse(data), desired, "shrinkwrap looks correct")
61
62             t.end()
63           })
64         }
65       )
66     }
67   )
68 })
69
70 test('"npm install" should install local packages from shrinkwrap', function (t) {
71   cleanNodeModules()
72
73   common.npm(
74     ["--cache="+CACHE_DIR, "--loglevel=silent", "install", "."],
75     {},
76     function (err, code) {
77       t.ifError(err, "install ran correctly")
78       t.notOk(code, "npm install exited with code 0")
79       var dependencyPackageJson = path.resolve(
80         PKG_DIR,
81         "node_modules/npm-test-shrinkwrap-local-dependency-dep/package.json"
82       )
83       t.ok(
84         JSON.parse(fs.readFileSync(dependencyPackageJson, "utf8")),
85         "package with local dependency installed from shrinkwrap"
86       )
87
88       t.end()
89     }
90   )
91 })
92
93 test("cleanup", function(t) {
94   cleanup()
95   t.end()
96 })
97
98 function setup() {
99   cleanup()
100   mkdirp.sync(PKG_DIR)
101   mkdirp.sync(CACHE_DIR)
102   mkdirp.sync(DEP_DIR)
103   fs.writeFileSync(
104     path.resolve(PKG_DIR, "package.json"),
105     JSON.stringify(root, null, 2)
106   )
107   fs.writeFileSync(
108     path.resolve(DEP_DIR, "package.json"),
109     JSON.stringify(dependency, null, 2)
110   )
111   process.chdir(PKG_DIR)
112 }
113
114 function cleanNodeModules() {
115   rimraf.sync(path.resolve(PKG_DIR, "node_modules"))
116 }
117
118 function cleanup() {
119   process.chdir(osenv.tmpdir())
120   cleanNodeModules()
121   rimraf.sync(PKG_DIR)
122 }