Skip to content

Commit

Permalink
test: improve coverage (#2604)
Browse files Browse the repository at this point in the history
  • Loading branch information
cap-Bernardito committed Apr 7, 2021
1 parent 3a5cf10 commit f92a846
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 4 deletions.
3 changes: 2 additions & 1 deletion jest.config.js
Expand Up @@ -8,7 +8,8 @@ module.exports = {
testPathIgnorePatterns: ignorePattern,
testEnvironment: 'node',
collectCoverage: true,
coverageReporters: ['none'],
coverageDirectory: '.nyc_output',
coverageReporters: ['json'],
transform: {
'^.+\\.(ts)?$': 'ts-jest',
},
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -36,7 +36,7 @@
"pretest": "yarn build && yarn lint && yarn prepsuite",
"test": "jest --reporters=default",
"test:smoketests": "nyc node smoketests",
"test:coverage": "nyc --require ts-node/register jest --forceExit",
"test:coverage": "nyc --no-clean --require ts-node/register jest --forceExit",
"test:cli": "jest test --reporters=default --forceExit",
"test:packages": "jest packages/ --reporters=default --forceExit",
"test:ci": "yarn test:cli && yarn test:packages",
Expand Down
46 changes: 46 additions & 0 deletions smoketests/helpers.js
Expand Up @@ -76,6 +76,51 @@ const runTest = (package, cliArgs = [], logMessage, isSubPackage = false) => {
});
};

const runTestStdout = ({ packageName, cliArgs, logMessage, isSubPackage } = {}) => {
// Simulate package missing
swapPkgName(packageName, isSubPackage);

const proc = execa(CLI_ENTRY_PATH, cliArgs, {
cwd: __dirname,
});

proc.stdin.setDefaultEncoding('utf-8');

return new Promise((resolve) => {
setTimeout(() => {
console.log(' timeout: killing process');
proc.kill();
}, 30000);

let hasPassed = false;

proc.stdout.on('data', (chunk) => {
let data = stripAnsi(chunk.toString());
console.log(` stdout: ${data}`);

if (data.includes(logMessage)) {
hasPassed = true;
proc.kill();
}
});

proc.stderr.on('data', (chunk) => {
let data = stripAnsi(chunk.toString());
console.log(` stderr: ${data}`);
});

proc.on('exit', () => {
swapPkgName(`.${packageName}`, isSubPackage);
resolve(hasPassed);
});

proc.on('error', () => {
swapPkgName(`.${packageName}`, isSubPackage);
resolve(false);
});
});
};

const runTestWithHelp = (package, cliArgs = [], logMessage, isSubPackage = false) => {
// Simulate package missing
swapPkgName(package, isSubPackage);
Expand Down Expand Up @@ -133,5 +178,6 @@ const runTestWithHelp = (package, cliArgs = [], logMessage, isSubPackage = false

module.exports = {
runTest,
runTestStdout,
runTestWithHelp,
};
12 changes: 10 additions & 2 deletions smoketests/missing-packages/webpack-dev-server.test.js
@@ -1,6 +1,6 @@
'use strict';

const { runTest } = require('../helpers');
const { runTest, runTestStdout } = require('../helpers');

const webpackDevServerTest = () => {
const packageName = 'webpack-dev-server';
Expand All @@ -10,5 +10,13 @@ const webpackDevServerTest = () => {
return runTest(packageName, args, logMessage);
};

module.exports.run = [webpackDevServerTest];
const webpackDevServerWithHelpTest = () => {
const packageName = 'webpack-dev-server';
const cliArgs = ['help', 'serve'];
const logMessage = "To see all available options you need to install 'webpack-dev-server'";

return runTestStdout({ packageName, cliArgs, logMessage });
};

module.exports.run = [webpackDevServerTest, webpackDevServerWithHelpTest];
module.exports.name = 'Missing webpack-dev-server';

0 comments on commit f92a846

Please sign in to comment.