UNPKG

@web/test-runner

Version:
53 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dotReporter = dotReporter; const reportTestFileErrors_js_1 = require("./reportTestFileErrors.js"); const reportTestsErrors_js_1 = require("./reportTestsErrors.js"); const TestRunnerLogger_js_1 = require("../logger/TestRunnerLogger.js"); const color = ([x, y]) => (z) => `\x1b[${x}m${z}\x1b[${y}m${reset}`; const reset = `\x1b[0m\x1b[0m`; const red = color([31, 89]); /** Test reporter that summarizes all test for a given run using dot notation */ function dotReporter() { let args; let favoriteBrowser; const logger = new TestRunnerLogger_js_1.TestRunnerLogger(); function log(passed) { logger.log(passed ? '.' : red('x')); } function logResults(results) { for (const result of results?.tests ?? []) { log(result.passed); } for (const suite of results?.suites ?? []) { logSuite(suite); } } function logSuite(suite) { logResults(suite); } return { start(_args) { args = _args; favoriteBrowser = args.browserNames.find(name => { const n = name.toLowerCase(); return n.includes('chrome') || n.includes('chromium') || n.includes('firefox'); }) ?? args.browserNames[0]; }, reportTestFileResults({ sessionsForTestFile: sessions }) { for (const session of sessions) { logResults(session.testResults); } }, onTestRunFinished({ sessions }) { const failedSessions = sessions.filter(s => !s.passed); if (failedSessions.length > 0) { logger.log('\n\nErrors Reported in Tests:\n\n'); (0, reportTestsErrors_js_1.reportTestsErrors)(logger, args.browserNames, favoriteBrowser, failedSessions); (0, reportTestFileErrors_js_1.reportTestFileErrors)(logger, args.browserNames, favoriteBrowser, failedSessions, true); } }, }; } //# sourceMappingURL=dotReporter.js.map