// verify that prepublish runs on pack and publish var test = require('tap').test var common = require('../common-tap') var fs = require('graceful-fs') var join = require('path').join var mkdirp = require('mkdirp') var rimraf = require('rimraf') var pkg = join(__dirname, 'scoped_package') var manifest = join(pkg, 'package.json') var tmp = join(pkg, 'tmp') var cache = join(pkg, 'cache') var data = { name: '@scope/generic-package', version: '90000.100001.5' } test('setup', function (t) { var n = 0 rimraf.sync(pkg) mkdirp(pkg, then()) mkdirp(cache, then()) mkdirp(tmp, then()) function then () { n++ return function (er) { t.ifError(er) if (--n === 0) next() } } function next () { fs.writeFile(manifest, JSON.stringify(data), 'ascii', done) } function done (er) { t.ifError(er) t.pass('setup done') t.end() } }) test('test', function (t) { var env = { 'npm_config_cache': cache, 'npm_config_tmp': tmp, 'npm_config_prefix': pkg, 'npm_config_global': 'false' } for (var i in process.env) { if (!/^npm_config_/.test(i)) env[i] = process.env[i] } common.npm([ 'pack', '--loglevel', 'warn' ], { cwd: pkg, env: env }, function (err, code, stdout, stderr) { t.ifErr(err, 'npm pack finished without error') t.equal(code, 0, 'npm pack exited ok') t.notOk(stderr, 'got stderr data: ' + JSON.stringify('' + stderr)) stdout = stdout.trim() var regex = new RegExp('scope-generic-package-90000.100001.5.tgz', 'ig') t.ok(stdout.match(regex), 'found package') t.end() }) }) test('cleanup', function (t) { rimraf.sync(pkg) t.pass('cleaned up') t.end() })