1 var fs = require('graceful-fs')
2 var path = require('path')
4 var mkdirp = require('mkdirp')
5 var osenv = require('osenv')
6 var rimraf = require('rimraf')
7 var test = require('tap').test
9 var common = require('../common-tap.js')
11 var pkg = path.join(__dirname, 'install-link-scripts')
12 var tmp = path.join(pkg, 'tmp')
13 var dep = path.join(pkg, 'dep')
16 name: 'install-link-scripts',
18 description: 'a test',
19 repository: 'git://github.com/npm/npm.git',
31 var foo = function () {/*
34 console.log('hey sup')
35 */}.toString().split('\n').slice(1, -1).join('\n')
37 process.env.npm_config_prefix = tmp
39 test('plain install', function (t) {
48 function (err, code, stdout, stderr) {
49 t.ifErr(err, 'npm install ' + dep + ' finished without error')
50 t.equal(code, 0, 'exited ok')
51 t.notOk(stderr, 'no output stderr')
52 t.match(stdout, /hey sup/, 'postinstall script for dep ran')
58 test('link', function (t) {
67 function (err, code, stdout, stderr) {
68 t.ifErr(err, 'npm link finished without error')
69 t.equal(code, 0, 'exited ok')
70 t.notOk(stderr, 'no output stderr')
71 t.match(stdout, /hey sup/, 'script ran')
77 test('install --link', function (t) {
86 function (err, code, stdout, stderr) {
87 t.ifErr(err, 'npm link finished without error')
91 'install', '--link', dependency.name,
95 function (err, code, stdout, stderr) {
96 t.ifErr(err, 'npm install --link finished without error')
97 t.equal(code, 0, 'exited ok')
98 t.notOk(stderr, 'no output stderr')
99 t.notMatch(stdout, /hey sup/, "script didn't run")
107 test('cleanup', function (t) {
116 path.join(pkg, 'package.json'),
117 JSON.stringify(json, null, 2)
120 mkdirp.sync(path.join(dep, 'bin'))
122 path.join(dep, 'package.json'),
123 JSON.stringify(dependency, null, 2)
125 fs.writeFileSync(path.join(dep, 'bin', 'foo'), foo)
126 fs.chmod(path.join(dep, 'bin', 'foo'), '0755')
129 function cleanup () {
130 process.chdir(osenv.tmpdir())