mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
55 lines
1.3 KiB
var fs = require('fs')
|
|
var path = require('path')
|
|
|
|
var mkdirp = require('mkdirp')
|
|
var rimraf = require('rimraf')
|
|
var test = require('tap').test
|
|
var sprintf = require('sprintf-js').sprintf
|
|
|
|
var common = require('../common-tap.js')
|
|
var pkg = path.resolve(__dirname, 'umask-lifecycle')
|
|
|
|
var pj = JSON.stringify({
|
|
name: 'x',
|
|
version: '1.2.3',
|
|
scripts: { umask: '$npm_execpath config get umask && echo "$npm_config_umask" && node -pe "process.umask()"' }
|
|
}, null, 2) + '\n'
|
|
|
|
var umask = process.umask()
|
|
var expected = [
|
|
'',
|
|
'> x@1.2.3 umask ' + path.join(__dirname, 'umask-lifecycle'),
|
|
'> $npm_execpath config get umask && echo "$npm_config_umask" && node -pe "process.umask()"',
|
|
'',
|
|
sprintf('%04o', umask),
|
|
sprintf('%04o', umask),
|
|
sprintf('%d', umask),
|
|
''
|
|
].join('\n')
|
|
|
|
test('setup', function (t) {
|
|
rimraf.sync(pkg)
|
|
mkdirp.sync(pkg)
|
|
fs.writeFileSync(pkg + '/package.json', pj)
|
|
t.end()
|
|
})
|
|
|
|
test('umask script', function (t) {
|
|
common.npm(['run', 'umask'], {
|
|
cwd: pkg,
|
|
env: {
|
|
PATH: process.env.PATH,
|
|
Path: process.env.Path,
|
|
'npm_config_loglevel': 'warn'
|
|
}
|
|
}, function (er, code, sout, serr) {
|
|
t.equal(sout, expected)
|
|
t.equal(serr, '')
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
test('clean', function (t) {
|
|
rimraf.sync(pkg)
|
|
t.end()
|
|
})
|
|
|