From 03261f8bec083b96530ae029f20400a997e16f46 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sat, 7 Dec 2019 21:11:05 +0100 Subject: [PATCH] Investigate CI failure --- test/cli/index.js | 151 ++++++++++++++++++++++------------------------ 1 file changed, 72 insertions(+), 79 deletions(-) diff --git a/test/cli/index.js b/test/cli/index.js index 12a975406bb..13f496c171d 100644 --- a/test/cli/index.js +++ b/test/cli/index.js @@ -26,99 +26,92 @@ runTestSuiteWithSamples( const command = 'node ' + path.resolve(__dirname, '../../dist/bin') + path.sep + config.command; - const childProcess = exec( - command, - { timeout: 40000, env: Object.assign({ FORCE_COLOR: '0' }, config.env) }, - (err, code, stderr) => { - if (err && !err.killed) { - if (config.error) { - const shouldContinue = config.error(err); - if (!shouldContinue) return done(); - } else { - throw err; - } - } - - if ('stderr' in config) { - const shouldContinue = config.stderr(stderr.trim()); + const childProcess = exec(command, { timeout: 40000 }, (err, code, stderr) => { + if (err && !err.killed) { + if (config.error) { + const shouldContinue = config.error(err); if (!shouldContinue) return done(); - } else if (stderr) { - console.error(stderr); + } else { + throw err; } + } - let unintendedError; + if ('stderr' in config) { + const shouldContinue = config.stderr(stderr.trim()); + if (!shouldContinue) return done(); + } else if (stderr) { + console.error(stderr); + } - if (config.execute) { - try { - if (config.buble) { - code = buble.transform(code, { - transforms: { modules: false } - }).code; - } + let unintendedError; - const fn = new Function('require', 'module', 'exports', 'assert', code); - const module = { - exports: {} - }; - fn(require, module, module.exports, assert); + if (config.execute) { + try { + if (config.buble) { + code = buble.transform(code, { + transforms: { modules: false } + }).code; + } - if (config.error) { - unintendedError = new Error('Expected an error while executing output'); - } + const fn = new Function('require', 'module', 'exports', 'assert', code); + const module = { + exports: {} + }; + fn(require, module, module.exports, assert); - if (config.exports) { - config.exports(module.exports); - } - } catch (err) { - if (config.error) { - config.error(err); - } else { - unintendedError = err; - } + if (config.error) { + unintendedError = new Error('Expected an error while executing output'); } - if (config.show || unintendedError) { - console.log(code + '\n\n\n'); + if (config.exports) { + config.exports(module.exports); + } + } catch (err) { + if (config.error) { + config.error(err); + } else { + unintendedError = err; } + } - if (config.solo) console.groupEnd(); + if (config.show || unintendedError) { + console.log(code + '\n\n\n'); + } - unintendedError ? done(unintendedError) : done(); - } else if (config.result) { - try { - config.result(code); - done(); - } catch (err) { - done(err); - } - } else if (config.test) { - try { - config.test(); - done(); - } catch (err) { - done(err); - } - } else if ( - sander.existsSync('_expected') && - sander.statSync('_expected').isDirectory() - ) { - try { - assertDirectoriesAreEqual('_actual', '_expected'); - done(); - } catch (err) { - done(err); - } - } else { - const expected = sander.readFileSync('_expected.js').toString(); - try { - assert.equal(normaliseOutput(code), normaliseOutput(expected)); - done(); - } catch (err) { - done(err); - } + if (config.solo) console.groupEnd(); + + unintendedError ? done(unintendedError) : done(); + } else if (config.result) { + try { + config.result(code); + done(); + } catch (err) { + done(err); + } + } else if (config.test) { + try { + config.test(); + done(); + } catch (err) { + done(err); + } + } else if (sander.existsSync('_expected') && sander.statSync('_expected').isDirectory()) { + try { + assertDirectoriesAreEqual('_actual', '_expected'); + done(); + } catch (err) { + done(err); + } + } else { + const expected = sander.readFileSync('_expected.js').toString(); + try { + assert.equal(normaliseOutput(code), normaliseOutput(expected)); + done(); + } catch (err) { + done(err); } } - ); + }); childProcess.stderr.on('data', data => { if (config.abortOnStderr && config.abortOnStderr(data)) {