format_test_results.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = formatTestResults;
  6. const formatResult = (testResult, codeCoverageFormatter, reporter) => {
  7. const now = Date.now();
  8. const output = {
  9. assertionResults: [],
  10. coverage: {},
  11. endTime: now,
  12. message: '',
  13. name: testResult.testFilePath,
  14. startTime: now,
  15. status: 'failed',
  16. summary: ''
  17. };
  18. if (testResult.testExecError) {
  19. output.message = testResult.testExecError.message;
  20. output.coverage = {};
  21. } else {
  22. const allTestsPassed = testResult.numFailingTests === 0;
  23. output.status = allTestsPassed ? 'passed' : 'failed';
  24. output.startTime = testResult.perfStats.start;
  25. output.endTime = testResult.perfStats.end;
  26. output.coverage = codeCoverageFormatter(testResult.coverage, reporter);
  27. }
  28. output.assertionResults = testResult.testResults.map(formatTestAssertion);
  29. if (testResult.failureMessage) {
  30. output.message = testResult.failureMessage;
  31. }
  32. return output;
  33. }; /**
  34. * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
  35. *
  36. * This source code is licensed under the MIT license found in the
  37. * LICENSE file in the root directory of this source tree.
  38. *
  39. *
  40. */
  41. function formatTestAssertion(assertion) {
  42. const result = {
  43. ancestorTitles: assertion.ancestorTitles,
  44. failureMessages: null,
  45. fullName: assertion.fullName,
  46. location: assertion.location,
  47. status: assertion.status,
  48. title: assertion.title
  49. };
  50. if (assertion.failureMessages) {
  51. result.failureMessages = assertion.failureMessages;
  52. }
  53. return result;
  54. }
  55. function formatTestResults(results, codeCoverageFormatter, reporter) {
  56. const formatter = codeCoverageFormatter || (coverage => coverage);
  57. const testResults = results.testResults.map(testResult => formatResult(testResult, formatter, reporter));
  58. return Object.assign(Object.create(null), results, {
  59. testResults
  60. });
  61. }