1var path = require('path') 2var test = require('tap').test 3var rimraf = require('rimraf') 4var common = require('../common-tap.js') 5var opts = { cwd: common.pkg } 6var binDir = '../../node_modules/.bin' 7var fixture = path.resolve(__dirname, binDir) 8var onload = path.resolve(__dirname, '../fixtures/onload.js') 9 10test('setup', function (t) { 11 rimraf.sync(path.join(common.pkg, 'node_modules')) 12 t.end() 13}) 14 15test('npm bin with valid onload script', function (t) { 16 var args = ['--onload', onload, 'bin'] 17 common.npm(args, opts, function (err, code, stdout, stderr) { 18 t.ifError(err, 'bin ran without issue') 19 t.equal(stderr.trim(), 'called onload') 20 t.equal(code, 0, 'exit ok') 21 t.equal(stdout, fixture + '\n') 22 t.end() 23 }) 24}) 25 26test('npm bin with invalid onload script', function (t) { 27 var onloadScript = onload + 'jsfd' 28 var args = ['--onload', onloadScript, '--loglevel=warn', 'bin'] 29 common.npm(args, opts, function (err, code, stdout, stderr) { 30 t.ifError(err, 'bin ran without issue') 31 t.match(stderr, /npm WARN onload-script failed to require onload script/) 32 t.match(stderr, /MODULE_NOT_FOUND/) 33 t.notEqual(stderr.indexOf(onloadScript), -1) 34 t.equal(code, 0, 'exit ok') 35 var res = path.resolve(stdout) 36 t.equal(res, fixture + '\n') 37 t.end() 38 }) 39}) 40