aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@jest/reporters/build/getResultHeader.js
blob: f4979214472ee8ff6e2a728ba7fa16be6514d6d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
'use strict';

Object.defineProperty(exports, '__esModule', {
  value: true
});
exports.default = getResultHeader;

function _chalk() {
  const data = _interopRequireDefault(require('chalk'));

  _chalk = function () {
    return data;
  };

  return data;
}

function _terminalLink() {
  const data = _interopRequireDefault(require('terminal-link'));

  _terminalLink = function () {
    return data;
  };

  return data;
}

function _jestUtil() {
  const data = require('jest-util');

  _jestUtil = function () {
    return data;
  };

  return data;
}

var _utils = require('./utils');

function _interopRequireDefault(obj) {
  return obj && obj.__esModule ? obj : {default: obj};
}

/**
 * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
const LONG_TEST_COLOR = _chalk().default.reset.bold.bgRed; // Explicitly reset for these messages since they can get written out in the
// middle of error logging

const FAIL_TEXT = 'FAIL';
const PASS_TEXT = 'PASS';
const FAIL = _chalk().default.supportsColor
  ? _chalk().default.reset.inverse.bold.red(` ${FAIL_TEXT} `)
  : FAIL_TEXT;
const PASS = _chalk().default.supportsColor
  ? _chalk().default.reset.inverse.bold.green(` ${PASS_TEXT} `)
  : PASS_TEXT;

function getResultHeader(result, globalConfig, projectConfig) {
  var _result$perfStats;

  const testPath = result.testFilePath;
  const formattedTestPath = (0, _utils.formatTestPath)(
    projectConfig ? projectConfig : globalConfig,
    testPath
  );
  const fileLink = (0, _terminalLink().default)(
    formattedTestPath,
    `file://${testPath}`,
    {
      fallback: () => formattedTestPath
    }
  );
  const status =
    result.numFailingTests > 0 || result.testExecError ? FAIL : PASS;
  const testDetail = [];

  if (
    (_result$perfStats = result.perfStats) !== null &&
    _result$perfStats !== void 0 &&
    _result$perfStats.slow
  ) {
    const runTime = result.perfStats.runtime / 1000;
    testDetail.push(LONG_TEST_COLOR((0, _jestUtil().formatTime)(runTime, 0)));
  }

  if (result.memoryUsage) {
    const toMB = bytes => Math.floor(bytes / 1024 / 1024);

    testDetail.push(`${toMB(result.memoryUsage)} MB heap size`);
  }

  const projectDisplayName =
    projectConfig && projectConfig.displayName
      ? (0, _utils.printDisplayName)(projectConfig) + ' '
      : '';
  return (
    `${status} ${projectDisplayName}${fileLink}` +
    (testDetail.length ? ` (${testDetail.join(', ')})` : '')
  );
}