UNPKG

jest-standard-reporter

Version:

Jest reporter that uses stdout for messages and stderr for errors

42 lines (34 loc) 1.22 kB
const path = require('path'); const chalk = require('chalk'); const slash = require('slash'); const relativePath = require('./relativePath'); const trimAndFormatPath = (pad, config, testPath, columns) => { const maxLength = columns - pad; const relative = relativePath(config, testPath); const { basename } = relative; let { dirname } = relative; // length is ok if ((dirname + path.sep + basename).length <= maxLength) { return slash(chalk.dim(dirname + path.sep) + chalk.bold(basename)); } // we can fit trimmed dirname and full basename const basenameLength = basename.length; if (basenameLength + 4 < maxLength) { const dirnameLength = maxLength - 4 - basenameLength; dirname = `...${dirname.slice( dirname.length - dirnameLength, dirname.length )}`; return slash(chalk.dim(dirname + path.sep) + chalk.bold(basename)); } if (basenameLength + 4 === maxLength) { return slash(chalk.dim(`...${path.sep}`) + chalk.bold(basename)); } // can't fit dirname, but can fit trimmed basename return slash( chalk.bold( `...${basename.slice(basename.length - maxLength - 4, basename.length)}` ) ); }; module.exports = trimAndFormatPath;