]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/git-npmignore.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / git-npmignore.js
1 var cat = require("graceful-fs").writeFileSync
2 var exec = require("child_process").exec
3 var readdir = require("graceful-fs").readdirSync
4 var resolve = require("path").resolve
5
6 var mkdirp = require("mkdirp")
7 var rimraf = require("rimraf")
8 var test = require("tap").test
9 var tmpdir = require("osenv").tmpdir
10 var which = require("which")
11
12 var common = require("../common-tap.js")
13
14 var pkg = resolve(__dirname, "git-npmignore")
15 var dep = resolve(pkg, "deps", "gitch")
16 var packname = "gitch-1.0.0.tgz"
17 var packed = resolve(pkg, packname)
18 var modules = resolve(pkg, "node_modules")
19 var installed = resolve(modules, "gitch")
20 var expected = [
21   "a.js",
22   "package.json",
23   ".npmignore"
24 ].sort()
25
26 var EXEC_OPTS = {
27   cwd : pkg
28 }
29
30 var gitignore = "node_modules/\n"
31 var npmignore = "t.js\n"
32
33 var a = "console.log('hi');"
34 var t = "require('tap').test(function (t) { t.pass('I am a test!'); t.end(); });"
35 var fixture = {
36   "name" : "gitch",
37   "version" : "1.0.0",
38   "private" : true,
39   "main" : "a.js"
40 }
41
42
43 test("setup", function (t) {
44   setup(function (er) {
45     t.ifError(er, "setup ran OK")
46
47     t.end()
48   })
49 })
50
51 test("npm pack directly from directory", function (t) {
52   packInstallTest(dep, t)
53 })
54
55 test("npm pack via git", function (t) {
56   packInstallTest("git+file://"+dep, t)
57 })
58
59 test("cleanup", function (t) {
60   cleanup()
61
62   t.end()
63 })
64
65 function packInstallTest (spec, t) {
66   common.npm(
67     [
68       "--loglevel", "silent",
69       "pack", spec
70     ],
71     EXEC_OPTS,
72     function (err, code, stdout, stderr) {
73       t.ifError(err,  "npm pack ran without error")
74       t.notOk(code,   "npm pack exited cleanly")
75       t.notOk(stderr, "npm pack ran silently")
76       t.equal(stdout.trim(), packname, "got expected package name")
77
78       common.npm(
79         [
80           "--loglevel", "silent",
81           "install", packed
82         ],
83         EXEC_OPTS,
84         function (err, code, stdout, stderr) {
85           t.ifError(err,  "npm install ran without error")
86           t.notOk(code,   "npm install exited cleanly")
87           t.notOk(stderr, "npm install ran silently")
88
89           var actual = readdir(installed).sort()
90           t.same(actual, expected, "no unexpected files in packed directory")
91
92           rimraf(packed, function () {
93             t.end()
94           })
95         }
96       )
97     }
98   )
99 }
100
101 function cleanup () {
102   process.chdir(tmpdir())
103   rimraf.sync(pkg)
104 }
105
106 function setup (cb) {
107   cleanup()
108
109   mkdirp.sync(modules)
110   mkdirp.sync(dep)
111
112   process.chdir(dep)
113
114   cat(resolve(dep, ".npmignore"), npmignore)
115   cat(resolve(dep, ".gitignore"), gitignore)
116   cat(resolve(dep, "a.js"), a)
117   cat(resolve(dep, "t.js"), t)
118   cat(resolve(dep, "package.json"), JSON.stringify(fixture))
119
120   common.npm(
121     [
122       "--loglevel", "silent",
123       "cache", "clean"
124     ],
125     EXEC_OPTS,
126     function (er, code, _, stderr) {
127       if (er) return cb(er)
128       if (code) return cb(new Error("npm cache nonzero exit: "+code))
129       if (stderr) return cb(new Error("npm cache clean error: "+stderr))
130
131       which("git", function found (er, git) {
132         if (er) return cb(er)
133
134         exec(git+" init", init)
135
136         function init (er, _, stderr) {
137           if (er) return cb(er)
138           if (stderr) return cb(new Error("git init error: "+stderr))
139
140           exec(git+" config user.name 'Phantom Faker'", user)
141         }
142
143         function user (er, _, stderr) {
144           if (er) return cb(er)
145           if (stderr) return cb(new Error("git config error: "+stderr))
146
147           exec(git+" config user.email nope@not.real", email)
148         }
149
150         function email (er, _, stderr) {
151           if (er) return cb(er)
152           if (stderr) return cb(new Error("git config error: "+stderr))
153
154           exec(git+" add .", addAll)
155         }
156
157         function addAll (er, _, stderr) {
158           if (er) return cb(er)
159           if (stderr) return cb(new Error("git add . error: "+stderr))
160
161           exec(git+" commit -m boot", commit)
162         }
163
164         function commit (er, _, stderr) {
165           if (er) return cb(er)
166           if (stderr) return cb(new Error("git commit error: "+stderr))
167
168           cb()
169         }
170       })
171     }
172   )
173 }