aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@jest/core/build/ReporterDispatcher.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@jest/core/build/ReporterDispatcher.js')
-rw-r--r--node_modules/@jest/core/build/ReporterDispatcher.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/node_modules/@jest/core/build/ReporterDispatcher.js b/node_modules/@jest/core/build/ReporterDispatcher.js
new file mode 100644
index 0000000..efd6af0
--- /dev/null
+++ b/node_modules/@jest/core/build/ReporterDispatcher.js
@@ -0,0 +1,104 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+exports.default = void 0;
+
+function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+ return 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.
+ */
+
+/* eslint-disable local/ban-types-eventually */
+class ReporterDispatcher {
+ constructor() {
+ _defineProperty(this, '_reporters', void 0);
+
+ this._reporters = [];
+ }
+
+ register(reporter) {
+ this._reporters.push(reporter);
+ }
+
+ unregister(ReporterClass) {
+ this._reporters = this._reporters.filter(
+ reporter => !(reporter instanceof ReporterClass)
+ );
+ }
+
+ async onTestFileResult(test, testResult, results) {
+ for (const reporter of this._reporters) {
+ if (reporter.onTestFileResult) {
+ await reporter.onTestFileResult(test, testResult, results);
+ } else if (reporter.onTestResult) {
+ await reporter.onTestResult(test, testResult, results);
+ }
+ } // Release memory if unused later.
+
+ testResult.coverage = undefined;
+ testResult.console = undefined;
+ }
+
+ async onTestFileStart(test) {
+ for (const reporter of this._reporters) {
+ if (reporter.onTestFileStart) {
+ await reporter.onTestFileStart(test);
+ } else if (reporter.onTestStart) {
+ await reporter.onTestStart(test);
+ }
+ }
+ }
+
+ async onRunStart(results, options) {
+ for (const reporter of this._reporters) {
+ reporter.onRunStart && (await reporter.onRunStart(results, options));
+ }
+ }
+
+ async onTestCaseResult(test, testCaseResult) {
+ for (const reporter of this._reporters) {
+ if (reporter.onTestCaseResult) {
+ await reporter.onTestCaseResult(test, testCaseResult);
+ }
+ }
+ }
+
+ async onRunComplete(contexts, results) {
+ for (const reporter of this._reporters) {
+ if (reporter.onRunComplete) {
+ await reporter.onRunComplete(contexts, results);
+ }
+ }
+ } // Return a list of last errors for every reporter
+
+ getErrors() {
+ return this._reporters.reduce((list, reporter) => {
+ const error = reporter.getLastError && reporter.getLastError();
+ return error ? list.concat(error) : list;
+ }, []);
+ }
+
+ hasErrors() {
+ return this.getErrors().length !== 0;
+ }
+}
+
+exports.default = ReporterDispatcher;