export function processJUnitResults()

in src/view/output-view.js [35:59]


export function processJUnitResults(data, onTestPassed, onTestFailed) {
  let result = "";
  let totalTime = 0;
  let passed = true;
  if (isEmptyObject(data)) return NO_TEST_FOUND;
  for (let testClass in data) {
    let listOfResults = arrayFrom(data[testClass]);
    result += listOfResults.reduce((previousTest, currentTest) => {
      totalTime = totalTime + (currentTest.executionTime / 1000);
      if (currentTest.status === TEST_STATUS.ERROR.value || currentTest.status === TEST_STATUS.FAIL.value) passed = false;
      switch (currentTest.status) {
        case TEST_STATUS.FAIL.value:
          return previousTest + buildOutputTestLine(TEST_STATUS.FAIL.text, currentTest.methodName, currentTest.comparisonFailure.message);
        case TEST_STATUS.ERROR.value:
          return previousTest + buildOutputTestLine(TEST_STATUS.ERROR.text, currentTest.methodName, currentTest.exception.message);
        case TEST_STATUS.PASSED.value:
          return previousTest + buildOutputTestLine(TEST_STATUS.PASSED.text, currentTest.methodName, "");
      }
    }, "");
  }
  if (passed && onTestPassed) onTestPassed();
  if (!passed && onTestFailed) onTestFailed();
  let testTime = `<div class="test-time">Total test time: ${totalTime}s</div>`;
  return testTime + result;
}