|
|
|
// Native
|
|
|
|
const path = require('path')
|
|
|
|
|
|
|
|
// Packages
|
|
|
|
const crossSpawn = require('cross-spawn')
|
|
|
|
const test = require('ava')
|
|
|
|
|
|
|
|
test.serial('make binary', async t => {
|
|
|
|
if (!process.env.CI) {
|
|
|
|
t.true(true)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
const result = await spawn('npm', ['run', 'pack'])
|
|
|
|
t.is(result.code, 0)
|
|
|
|
})
|
|
|
|
|
|
|
|
const binary = {
|
|
|
|
darwin: 'now-macos',
|
|
|
|
linux: 'now-linux',
|
|
|
|
win32: 'now-win.exe'
|
|
|
|
}[process.platform]
|
|
|
|
|
|
|
|
const binaryPath = path.resolve(__dirname, '../packed/' + binary)
|
|
|
|
const deployHelpMessage = `To deploy, run in any directory of your choosing`
|
|
|
|
|
|
|
|
test.serial('packed "now help" prints deploy help message', async t => {
|
|
|
|
if (!process.env.CI) {
|
|
|
|
t.true(true)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
const {stdout, code} = await spawn(binaryPath, ['help'])
|
|
|
|
|
|
|
|
t.is(code, 0)
|
|
|
|
t.true(stdout.length > 1)
|
|
|
|
t.true(stdout.includes(deployHelpMessage))
|
|
|
|
})
|
|
|
|
|
|
|
|
function spawn(command, args) {
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
const child = crossSpawn.spawn(command, args)
|
|
|
|
|
|
|
|
let stdout = ''
|
|
|
|
child.stdout.on('data', data => {
|
|
|
|
stdout += data
|
|
|
|
})
|
|
|
|
|
|
|
|
child.on('error', err => {
|
|
|
|
reject(err)
|
|
|
|
})
|
|
|
|
|
|
|
|
child.on('close', code => {
|
|
|
|
resolve({
|
|
|
|
code,
|
|
|
|
stdout
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|