Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
.then((json) => {
// we need this tool, so save its path right now
// const cmi = resolve(join('node_modules', '.bin', 'commit-message-install'))
// need to clone entire repo so we get all branches
// because we might be testing in a separate branch
execa.sync(`git clone ${url} ${localFolder}`, execOptions)
console.log('cloned into folder %s', localFolder)
shell.cd(localFolder)
const branch = json && json.branch
if (branch) {
console.log('commit message specifies branch to test', branch)
console.log('trying to switch to remote branch', branch)
const cmd = `git checkout ${branch}`
try {
execa.sync(cmd, execOptions)
} catch (e) {
console.error('Caught error trying to do', cmd)
console.error(e.message)
console.error('assuming we can work in the default branch')
it('should accept options', () => {
execa.commandSync('ls pipe', { stderr: 'pipe' }).then(printStdout);
execa.commandSync('ls pipe', { stderr: 10 }).then(printStdout);
execa.commandSync('ls pipe', { input: 'foobar' });
execa.commandSync('ls pipe', { input: new Buffer('foobar') });
execa.commandSync('ls pipe', { input: process.stdin });
// $ExpectError
execa.commandSync('ls pipe', { foo: 666 });
// $ExpectError
execa.commandSync('ls pipe', { input: 42 });
});
it('should not accept args', () => {
const runSpectron = async (spectronOptions, launchOptions = {}) => {
let sendData
execa.mockReturnValueOnce({
on: jest.fn(),
stdout: {
on: (event, callback) => {
if (event === 'data') {
// Save callback to be called later
sendData = callback
}
}
}
})
const testPromise = testWithSpectron(spectronOptions)
// Mock console.log from electron:serve
if (launchOptions.customLog) await sendData(launchOptions.customLog)
await sendData(`$outputDir=${launchOptions.outputDir || 'dist_electron'}`)
await sendData(
`$WEBPACK_DEV_SERVER_URL=${launchOptions.url || 'http://localhost:8080/'}`
execa(['ls', '-l']).then(printStdout);
// $ExpectError
execa('ls').then(printErrno);
(execa.stdout('ls'): Promise);
execa.stdout('ls').then(stdout => stdout.toLowerCase());
execa.stdout('ls', ['-l']).then(stdout => stdout.toLowerCase());
execa.stdout('ls', { uid: 1000, gid: 100 }).then(stdout => stdout.toLowerCase());
execa.stdout('ls', ['-l'], { timeout: 5 }).then(stdout => stdout.toLowerCase());
// $ExpectError
execa.stdout(['ls', '-l']);
// $ExpectError
execa.stdout('ls', { foo: 666 });
(execa.stderr('ls'): Promise);
execa.stderr('ls').then(stdout => stdout.toLowerCase());
execa.stderr('ls', ['-l']).then(stdout => stdout.toLowerCase());
execa.stderr('ls', { uid: 1000, gid: 100 }).then(stdout => stdout.toLowerCase());
execa.stderr('ls', ['-l'], { timeout: 5 }).then(stdout => stdout.toLowerCase());
// $ExpectError
execa.stderr(['ls', '-l']);
// $ExpectError
execa.stderr('ls', { foo: 666 });
(execa.shell('ls | wc -l'): ThenableChildProcess);
execa.shell('ls | wc -l').then(printStdout, printErrno);
execa.shell('ls | wc -l', { cwd: '/' }).then(printStdout);
execa.shell('foo').catch(printErrno);
// $ExpectError
execa.shell(['ls', 'wc -l']);
// $ExpectError
execa.stderr('ls', 'wc -l', { foo: 666 });
execa.shell('ls | wc -l').then(printStdout, printErrno);
execa.shell('ls | wc -l', { cwd: '/' }).then(printStdout);
execa.shell('foo').catch(printErrno);
// $ExpectError
execa.shell(['ls', 'wc -l']);
// $ExpectError
execa.stderr('ls', 'wc -l', { foo: 666 });
(execa.sync('ls'): SyncResult);
(execa.sync('ls', ['-l']).stdout: string);
(execa.sync('ls', { stderr: 'pipe' }).signal: ?string);
(execa.sync('ls', ['-l'], { localDir: '~/' }).failed: boolean);
// $ExpectError
execa.sync(['ls']);
// $ExpectError
execa.stderr('ls', { foo: 666 });
// $ExpectError
execa.sync('ls').killed;
// $ExpectError
execa.sync('ls', { input: process.stdin });
(execa.shellSync('ls | wc -l'): SyncResult);
(execa.shellSync('ls | wc -l', { stderr: 'ignore' }).stdout: string);
// $ExpectError
execa.shellSync(['ls', 'wc -l']);
// $ExpectError
execa.shellSync('ls', { foo: 666 });
async () => {
const { stdout } = await execa('noop', ['foo'], { stripEof: false });
};
execa.stdout('ls').then(stdout => stdout.toLowerCase());
execa.stdout('ls', ['-l']).then(stdout => stdout.toLowerCase());
execa.stdout('ls', { uid: 1000, gid: 100 }).then(stdout => stdout.toLowerCase());
execa.stdout('ls', ['-l'], { timeout: 5 }).then(stdout => stdout.toLowerCase());
// $ExpectError
execa.stdout(['ls', '-l']);
// $ExpectError
execa.stdout('ls', { foo: 666 });
(execa.stderr('ls'): Promise);
execa.stderr('ls').then(stdout => stdout.toLowerCase());
execa.stderr('ls', ['-l']).then(stdout => stdout.toLowerCase());
execa.stderr('ls', { uid: 1000, gid: 100 }).then(stdout => stdout.toLowerCase());
execa.stderr('ls', ['-l'], { timeout: 5 }).then(stdout => stdout.toLowerCase());
// $ExpectError
execa.stderr(['ls', '-l']);
// $ExpectError
execa.stderr('ls', { foo: 666 });
(execa.shell('ls | wc -l'): ThenableChildProcess);
execa.shell('ls | wc -l').then(printStdout, printErrno);
execa.shell('ls | wc -l', { cwd: '/' }).then(printStdout);
execa.shell('foo').catch(printErrno);
// $ExpectError
execa.shell(['ls', 'wc -l']);
// $ExpectError
execa.stderr('ls', 'wc -l', { foo: 666 });
(execa.sync('ls'): SyncResult);
(execa.sync('ls', ['-l']).stdout: string);
(execa.sync('ls', { stderr: 'pipe' }).signal: ?string);
(execa.sync('ls', ['-l'], { localDir: '~/' }).failed: boolean);
execa.stderr('ls', ['-l']).then(stdout => stdout.toLowerCase());
execa.stderr('ls', { uid: 1000, gid: 100 }).then(stdout => stdout.toLowerCase());
execa.stderr('ls', ['-l'], { timeout: 5 }).then(stdout => stdout.toLowerCase());
// $ExpectError
execa.stderr(['ls', '-l']);
// $ExpectError
execa.stderr('ls', { foo: 666 });
(execa.shell('ls | wc -l'): ThenableChildProcess);
execa.shell('ls | wc -l').then(printStdout, printErrno);
execa.shell('ls | wc -l', { cwd: '/' }).then(printStdout);
execa.shell('foo').catch(printErrno);
// $ExpectError
execa.shell(['ls', 'wc -l']);
// $ExpectError
execa.stderr('ls', 'wc -l', { foo: 666 });
(execa.sync('ls'): SyncResult);
(execa.sync('ls', ['-l']).stdout: string);
(execa.sync('ls', { stderr: 'pipe' }).signal: ?string);
(execa.sync('ls', ['-l'], { localDir: '~/' }).failed: boolean);
// $ExpectError
execa.sync(['ls']);
// $ExpectError
execa.stderr('ls', { foo: 666 });
// $ExpectError
execa.sync('ls').killed;
// $ExpectError
execa.sync('ls', { input: process.stdin });
(execa.shellSync('ls | wc -l'): SyncResult);
(execa.shellSync('ls | wc -l', { stderr: 'ignore' }).stdout: string);
await runCommand('electron:serve', {}, {}, [...args, '--keep2'])
// Custom args should have been removed, and other args kept
calledArgs = execa.mock.calls[0][1]
// Remove dist_electron
calledArgs.shift()
expect(calledArgs).toEqual(['--keep2'])
execa.mockClear()
await runCommand('electron:serve', {}, {}, ['--keep1', ...args])
// Custom args should have been removed, and other args kept
calledArgs = execa.mock.calls[0][1]
// Remove dist_electron
calledArgs.shift()
expect(calledArgs).toEqual(['--keep1'])
execa.mockClear()
await runCommand('electron:serve', {}, {}, args)
// Custom args should have been removed
calledArgs = execa.mock.calls[0][1]
// Remove dist_electron
calledArgs.shift()
expect(calledArgs).toEqual([])
execa.mockClear()
await runCommand('electron:serve', {}, {}, ['--keep1', '--keep2'])
// Nothing should be removed
calledArgs = execa.mock.calls[0][1]
// Remove dist_electron
calledArgs.shift()
expect(calledArgs).toEqual(['--keep1', '--keep2'])
execa.mockClear()
// Set callback to be called later
watchCb = cb
}
}
})
await runCommand('electron:serve', {
pluginOptions: {
electronBuilder: {
mainProcessFile: 'customBackground',
mainProcessArgs: ['--a-flag', 'a-value']
}
}
})
expect(execa).toHaveBeenCalledTimes(1)
expect(execa.mock.calls[0][1]).toEqual([
'dist_electron',
'--a-flag',
'a-value'
])
// Mock change of background file
watchCb()
expect(mockExeca.removeListener.mock.calls[0][0]).toBe('exit')
expect(execa).toHaveBeenCalledTimes(2)
expect(execa.mock.calls[0][1]).toEqual([
'dist_electron',
'--a-flag',
'a-value'
])
})
});
if (process.platform === 'darwin') {
try {
return execa.sync(
'open',
['-a', terminal, launchPackagerScript],
procConfig,
);
} catch (error) {
return execa.sync('open', [launchPackagerScript], procConfig);
}
}
if (process.platform === 'linux') {
try {
return execa.sync(terminal, ['-e', `sh ${launchPackagerScript}`], {
...procConfig,
detached: true,
});
} catch (error) {
// By default, the child shell process will be attached to the parent
return execa.sync('sh', [launchPackagerScript], procConfig);
}
}
if (/^win/.test(process.platform)) {
//Temporary fix for #484. See comment on line 254
fs.writeFileSync(launchPackagerScript, launchPackagerScriptContent, {
encoding: 'utf8',
flag: 'w',
});
// Awaiting this causes the CLI to hang indefinitely, so this must execute without await.