Muthu Kumar
6 years ago
7 changed files with 13 additions and 111 deletions
@ -1,94 +0,0 @@ |
|||||
const chalk = require('chalk'); |
|
||||
const { taggedStringify: _ } = require('../util'); |
|
||||
const { EOL, greenLine, redLine } = require('../util/constants'); |
|
||||
|
|
||||
const processResults = (results, options) => { |
|
||||
|
|
||||
const success = results.filter(r => r.result === 'pass'); |
|
||||
results.passing = success.length; |
|
||||
const successPercent = Math.floor( |
|
||||
success.length/results.length * 100 |
|
||||
); |
|
||||
let resultString = ''; |
|
||||
resultString += |
|
||||
chalk`\n{green ${success.length} }` |
|
||||
+ `tests passed of ${results.length} ` |
|
||||
+ `[${successPercent}% success]\n` |
|
||||
+ EOL; |
|
||||
results.forEach(r => { |
|
||||
const trace = (options.trace && r.error) |
|
||||
? _`\n Traceback:\n ${r.error}` |
|
||||
: ''; |
|
||||
|
|
||||
resultString += |
|
||||
`${r.result === 'pass' |
|
||||
? chalk`{green ✅}` |
|
||||
: chalk`{red ❌}`} :: ` |
|
||||
+ `${r.description}` |
|
||||
+ `${trace}`; |
|
||||
}); |
|
||||
return resultString; |
|
||||
|
|
||||
}; |
|
||||
|
|
||||
/** |
|
||||
* Creates a Logger that only logs if 'log' option was true |
|
||||
* @param {Object} options |
|
||||
* @param {boolean=} options.log |
|
||||
* @param {boolean=} shouldProcess |
|
||||
*/ |
|
||||
const logger = (options = {}, shouldProcess) => { |
|
||||
|
|
||||
const log = (...items) => { |
|
||||
|
|
||||
if (!options.log) return; |
|
||||
|
|
||||
let logEmit; |
|
||||
if (typeof options.log === 'function') { |
|
||||
logEmit = (...x) => { |
|
||||
console.log(...x); |
|
||||
options.log(...x); |
|
||||
}; |
|
||||
} |
|
||||
else logEmit = console.log; |
|
||||
|
|
||||
if (!shouldProcess) |
|
||||
logEmit(...items); |
|
||||
else { |
|
||||
|
|
||||
const [ results ] = items; |
|
||||
const success = results.filter(r => r.result === 'pass'); |
|
||||
const successPercent = Math.floor( |
|
||||
success.length/results.length * 100 |
|
||||
); |
|
||||
|
|
||||
logEmit(processResults(results, options)); |
|
||||
|
|
||||
const demarkerLine = |
|
||||
successPercent === 100 |
|
||||
? greenLine |
|
||||
: redLine; |
|
||||
|
|
||||
logEmit( |
|
||||
EOL, |
|
||||
demarkerLine, |
|
||||
EOL, EOL, |
|
||||
chalk.green(` ${success.length}`), |
|
||||
`tests passed of ${results.length}`, |
|
||||
`[${successPercent}% success]`, |
|
||||
EOL, EOL, |
|
||||
demarkerLine |
|
||||
); |
|
||||
|
|
||||
} |
|
||||
|
|
||||
}; |
|
||||
|
|
||||
log.true = options.log; |
|
||||
return log; |
|
||||
|
|
||||
}; |
|
||||
|
|
||||
module.exports = { |
|
||||
create: logger, |
|
||||
}; |
|
Loading…
Reference in new issue