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.

58 lines
1.3 KiB

const path = require('path');
const crossSpawn = require('cross-spawn');
const test = require('ava');
const logo = require('../lib/utils/output/logo');
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 = `${logo} now [options] <command | path>`;
test.serial('packed "now help" prints deploy help message', async t => {
if (!process.env.CI) {
t.true(true);
return;
}
const result = await spawn(binaryPath, ['help']);
t.is(result.code, 0);
const stdout = result.stdout.split('\n');
t.true(stdout.length > 1);
t.true(stdout[1].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
});
});
});
}