Add require.js error reporting in tests

Adds test coverage for #989
This commit is contained in:
kpdecker
2015-04-07 21:51:50 -05:00
parent afe730e059
commit e15af4c849
2 changed files with 35 additions and 4 deletions
+16
View File
@@ -28,11 +28,16 @@
<script src="/spec/env/common.js"></script>
<script>
var requireFailure;
requirejs.config({
paths: {
'handlebars.runtime': '/dist/handlebars.runtime.amd'
}
});
requirejs.onError = function (err) {
requireFailure = err;
};
</script>
<script>
onload = function(){
@@ -60,6 +65,17 @@
runner.on('fail', logFailure);
// Inject any require initilizer failures into the first test so they are properly
// reported.
if (requireFailure) {
runner.on('hook end', function(hook){
if (requireFailure) {
runner.uncaught(requireFailure);
requireFailure = undefined;
}
});
}
function logFailure(test, err){
var flattenTitles = function(test){
+19 -4
View File
@@ -28,12 +28,17 @@
<script src="/spec/env/common.js"></script>
<script>
var requireFailure;
requirejs.config({
paths: {
handlebars: '/dist/handlebars.amd',
tests: '/tmp/tests'
}
});
requirejs.onError = function (err) {
requireFailure = err;
};
var CompilerContext = {
compile: function(template, options) {
@@ -79,16 +84,26 @@
runner.on('fail', logFailure);
function logFailure(test, err){
// Inject any require initilizer failures into the first test so they are properly
// reported.
if (requireFailure) {
runner.on('hook end', function(hook){
if (requireFailure) {
runner.uncaught(requireFailure);
requireFailure = undefined;
}
});
}
var flattenTitles = function(test){
function logFailure(test, err){
function flattenTitles(test){
var titles = [];
while (test.parent.title){
titles.push(test.parent.title);
test = test.parent;
}
return titles.reverse();
};
}
failedTests.push({
name: test.title,
@@ -97,7 +112,7 @@
stack: err.stack,
titles: flattenTitles(test)
});
};
}
});
});
};