Skip to content
This repository was archived by the owner on Aug 11, 2022. It is now read-only.

Commit b6c17dd

Browse files
committed
install-test: add test for new command
PR-URL: #9443
1 parent bcb04f6 commit b6c17dd

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

test/tap/it.js

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
var join = require('path').join
2+
var statSync = require('graceful-fs').statSync
3+
var writeFileSync = require('graceful-fs').writeFileSync
4+
5+
var mkdirp = require('mkdirp')
6+
var mr = require('npm-registry-mock')
7+
var osenv = require('osenv')
8+
var rimraf = require('rimraf')
9+
var test = require('tap').test
10+
11+
var common = require('../common-tap')
12+
13+
var pkg = join(__dirname, 'run-script')
14+
var installed = join(pkg, 'node_modules', 'underscore', 'package.json')
15+
16+
var json = {
17+
name: 'npm-it-test',
18+
dependencies: {
19+
underscore: '1.5.1'
20+
},
21+
scripts: {
22+
test: 'echo hax'
23+
}
24+
}
25+
26+
var server
27+
28+
test('run up the mock registry', function (t) {
29+
mr({ port: common.port }, function (err, s) {
30+
if (err) throw err
31+
server = s
32+
t.end()
33+
})
34+
})
35+
36+
test('npm install-test', function (t) {
37+
setup()
38+
common.npm('install-test', { cwd: pkg }, function (err, code, stdout, stderr) {
39+
if (err) throw err
40+
t.equal(code, 0, 'command ran without error')
41+
t.ok(statSync(installed), 'package was installed')
42+
t.equal(require(installed).version, '1.5.1', 'underscore got installed as expected')
43+
t.match(stdout, /hax/, 'found expected test output')
44+
t.notOk(stderr, 'stderr should be empty')
45+
t.end()
46+
})
47+
})
48+
49+
test('npm it (the form most people will use)', function (t) {
50+
setup()
51+
common.npm('it', { cwd: pkg }, function (err, code, stdout, stderr) {
52+
if (err) throw err
53+
t.equal(code, 0, 'command ran without error')
54+
t.ok(statSync(installed), 'package was installed')
55+
t.equal(require(installed).version, '1.5.1', 'underscore got installed as expected')
56+
t.match(stdout, /hax/, 'found expected test output')
57+
t.notOk(stderr, 'stderr should be empty')
58+
t.end()
59+
})
60+
})
61+
62+
test('cleanup', function (t) {
63+
process.chdir(osenv.tmpdir())
64+
server.close()
65+
cleanup()
66+
t.end()
67+
})
68+
69+
function cleanup () {
70+
rimraf.sync(pkg)
71+
}
72+
73+
function setup () {
74+
cleanup()
75+
mkdirp.sync(pkg)
76+
writeFileSync(join(pkg, 'package.json'), JSON.stringify(json, null, 2))
77+
}

0 commit comments

Comments
 (0)