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.
 
 
 
 
 
 

71 lines
1.5 KiB

var test = require('tap').test
var path = require('path')
var npm = path.resolve(__dirname, '../../cli.js')
var pkg = __dirname + '/scripts-whitespace-windows'
var tmp = pkg + '/tmp'
var cache = pkg + '/cache'
var modules = pkg + '/node_modules'
var dep = pkg + '/dep'
var mkdirp = require('mkdirp')
var rimraf = require('rimraf')
var node = process.execPath
var spawn = require('child_process').spawn
test('setup', function (t) {
mkdirp.sync(cache)
mkdirp.sync(tmp)
rimraf.sync(modules)
var env = {
npm_config_cache: cache,
npm_config_tmp: tmp,
npm_config_prefix: pkg,
npm_config_global: 'false'
}
var child = spawn(node, [npm, 'i', dep], {
cwd: pkg,
env: env
})
child.stdout.setEncoding('utf8')
child.stderr.on('data', function(chunk) {
throw new Error('got stderr data: ' + JSON.stringify('' + chunk))
})
child.on('close', function () {
t.end()
})
})
test('test', function (t) {
var child = spawn(node, [npm, 'run', 'foo'], {
cwd: pkg,
env: process.env
})
child.stdout.setEncoding('utf8')
child.stderr.on('data', function(chunk) {
throw new Error('got stderr data: ' + JSON.stringify('' + chunk))
})
child.stdout.on('data', ondata)
child.on('close', onend)
var c = ''
function ondata (chunk) {
c += chunk
}
function onend () {
c = c.trim()
t.ok(/npm-test-fine/.test(c))
t.end()
}
})
test('cleanup', function (t) {
rimraf.sync(cache)
rimraf.sync(tmp)
rimraf.sync(modules)
t.end()
})