diff options
Diffstat (limited to 'deps/npm/test/tap/lifecycle-INIT_CWD.js')
-rw-r--r-- | deps/npm/test/tap/lifecycle-INIT_CWD.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/deps/npm/test/tap/lifecycle-INIT_CWD.js b/deps/npm/test/tap/lifecycle-INIT_CWD.js new file mode 100644 index 0000000000..eec5c266ee --- /dev/null +++ b/deps/npm/test/tap/lifecycle-INIT_CWD.js @@ -0,0 +1,58 @@ +var fs = require('fs') +var path = require('path') + +var mkdirp = require('mkdirp') +var osenv = require('osenv') +var rimraf = require('rimraf') +var test = require('tap').test + +var common = require('../common-tap.js') + +var pkg = path.resolve(__dirname, 'lifecycle-initcwd') +var subdir = path.resolve(pkg, 'subdir') + +var json = { + name: 'init-cwd', + version: '1.0.0', + scripts: { + initcwd: 'echo "$INIT_CWD"' + } +} + +test('setup', function (t) { + cleanup() + mkdirp.sync(pkg) + mkdirp.sync(subdir) + fs.writeFileSync( + path.join(pkg, 'package.json'), + JSON.stringify(json, null, 2) + ) + + process.chdir(subdir) + t.end() +}) + +test('make sure the env.INIT_CWD is correct', function (t) { + common.npm(['run-script', 'initcwd'], { + cwd: subdir + }, function (er, code, stdout) { + if (er) throw er + t.equal(code, 0, 'exit code') + stdout = stdout.trim().split(/\r|\n/).pop() + var actual = stdout + + t.equal(actual, subdir) + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(subdir) + rimraf.sync(pkg) +} |