MCPcopy
hub / github.com/jestjs/jest / trimAndFormatPath

Function trimAndFormatPath

packages/jest-reporters/src/trimAndFormatPath.ts:14–46  ·  view source on GitHub ↗
(
  pad: number,
  config: Config.ProjectConfig | Config.GlobalConfig,
  testPath: string,
  columns: number,
)

Source from the content-addressed store, hash-verified

12import relativePath from './relativePath';
13
14export default function trimAndFormatPath(
15 pad: number,
16 config: Config.ProjectConfig | Config.GlobalConfig,
17 testPath: string,
18 columns: number,
19): string {
20 const maxLength = columns - pad;
21 const relative = relativePath(config, testPath);
22 const {basename} = relative;
23 let {dirname} = relative;
24
25 // length is ok
26 if ((dirname + path.sep + basename).length <= maxLength) {
27 return slash(chalk.dim(dirname + path.sep) + chalk.bold(basename));
28 }
29
30 // we can fit trimmed dirname and full basename
31 const basenameLength = basename.length;
32 if (basenameLength + 4 < maxLength) {
33 const dirnameLength = maxLength - 4 - basenameLength;
34 dirname = `...${dirname.slice(dirname.length - dirnameLength)}`;
35 return slash(chalk.dim(dirname + path.sep) + chalk.bold(basename));
36 }
37
38 if (basenameLength + 4 === maxLength) {
39 return slash(chalk.dim(`...${path.sep}`) + chalk.bold(basename));
40 }
41
42 // can't fit dirname, but can fit trimmed basename
43 return slash(
44 chalk.bold(`...${basename.slice(basename.length - maxLength - 4)}`),
45 );
46}

Callers 2

getMethod · 0.85
utils.test.tsFile · 0.85

Calls 1

relativePathFunction · 0.85

Tested by

no test coverage detected