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

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()
})