UNPKG

qunit-harness

Version:

A library for running qunit tests on a local machine and in the SauceLabs environment.

93 lines (66 loc) 3.12 kB
'use strict'; var _Object$keys = require('babel-runtime/core-js/object/keys').default; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default').default; exports.__esModule = true; var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); function checkFailures(results) { var globalErrors = []; var testErrors = []; results.forEach(function (platformResults) { var msg = []; var platform = [platformResults.platform[0], platformResults.platform[1], platformResults.platform[2] || ''].join(' '); var url = platformResults.url ? platformResults.url : 'there is no url attached'; var runningError = !platformResults.result || typeof platformResults.result === 'string'; var failed = runningError || platformResults.result.failed; msg.push(_chalk2.default.bold(failed ? _chalk2.default.red('FAILURES:') : _chalk2.default.green('OK:'))); msg.push(platform); if (runningError) { var resultErrorMessage = 'There is no test result available.'; msg.push(_chalk2.default.bold(resultErrorMessage)); globalErrors.push(resultErrorMessage); } else { msg.push(_chalk2.default.bold('Total:'), platformResults.result.total); msg.push(_chalk2.default.bold('Failed:'), platformResults.result.failed); } msg.push('(' + url + ')'); console.log(msg.join(' ')); if (!runningError && platformResults.result.errors) { //NOTE: https://support.saucelabs.com/customer/en/portal/private/cases/31354 var errors = typeof platformResults.result.errors.length !== 'undefined' ? platformResults.result.errors : _Object$keys(platformResults.result.errors).map(function (index) { return platformResults.result.errors[index]; }); errors.forEach(function (error) { error.platform = platform; testErrors.push(error); }); } }); return { globalErrors: globalErrors, testErrors: testErrors }; } function reportTestFailures(errors) { console.log(_chalk2.default.bold.red('ERRORS:')); errors.forEach(function (error) { console.log(_chalk2.default.bold(error.platform + ' - ' + error.testPath)); console.log(_chalk2.default.bold('Test: ' + error.testName)); if (error.customMessage) console.log('message: ' + error.customMessage); if (error.expected) { console.log('expected: ' + error.expected); console.log('actual: ' + error.actual); } console.log('-------------------------------------------'); console.log(); }); } exports.default = function (report) { var _checkFailures = checkFailures(report); var testErrors = _checkFailures.testErrors; var globalErrors = _checkFailures.globalErrors; if (globalErrors.length) return false; if (testErrors.length) { reportTestFailures(testErrors); return false; } return true; }; module.exports = exports.default;