Files
Modernizr/test/browser/setup.js
Veeck 0f57b8053c Update jsdocs (#2526)
* Show warnings too when linting

* Fix some jsdoc warnings

* Cleanup globals

* Use recommended jsdoc settings

* Fix wrong "false" return parameters
2020-03-23 12:08:56 +01:00

73 lines
1.6 KiB
JavaScript

/*global __coverage__*/
$(document).ready(function() {
var runner = mocha.run();
var results = {
passed: 0,
failed: 0,
total: 0,
tests: []
};
runner.once('suite', function() {
mocha.suite.afterAll('send coverage', function(done) {
// ensure timeout errors block normal reporting, to ensure the entire suite is retried
if (!window.global_test_results) {
// opera 12 can't handle the default `window.mochaResults`, so we build
// generic test data instead
window.global_test_results = results;
}
if (window.__coverage__) {
$.ajax({
type: 'POST',
url: '/coverage/client',
data: JSON.stringify(__coverage__),
success: function() {
done();
}
});
} else {
done();
}
});
});
runner.on('fail', logFailure);
function logFailure(test, err) {
var isTimeout = _.includes(err.toString(), 'Ensure the done() callback is being called in this test.');
if (isTimeout) {
return window.global_test_results = {message: err};
}
if (err) {
results.failed += 1;
} else {
results.passed += 1;
}
results.total += 1;
var flattenTitles = function(test) {
var titles = [];
while (test.parent.title) {
titles.push(test.parent.title);
test = test.parent;
}
return titles.reverse();
};
results.tests.push({
name: test.title,
result: err ? false : true,
message: err ? err.message : 'passe',
stack: err ? err.stack : undefined,
titles: flattenTitles(test)
});
}
});