Fix issues with displaying error messages for afterAll (browser compatibility)

- Switch from showing error stack to showing message/description since only chrome/ff support stack
- Fallback to error.description if error.message is undefined
- Made exceptionList variable name consistent between both reporters
This commit is contained in:
Christopher Amavisca and Greg Cobb
2014-03-06 18:25:49 -08:00
parent 76fafa0388
commit 668846147c
5 changed files with 17 additions and 17 deletions

View File

@@ -87,13 +87,13 @@ getJasmineRequireObj().ConsoleReporter = function() {
print('Finished in ' + seconds + ' ' + plural('second', seconds));
printNewline();
exceptionList.forEach(function(error) {
for(i = 0; i < exceptionList.length; i++) {
printNewline();
print(colored('red', 'An error was thrown in an afterAll'));
printNewline();
print(colored('red', error.stack));
print(colored('red', (exceptionList[i].message || exceptionList[i].description)));
printNewline();
});
}
onComplete(failureCount === 0);
};

View File

@@ -47,7 +47,7 @@ jasmineRequire.HtmlReporter = function(j$) {
pendingSpecCount = 0,
htmlReporterMain,
symbols,
exceptionsList = [];
exceptionList = [];
this.initialize = function() {
htmlReporterMain = createDom('div', {className: 'html-reporter'},
@@ -95,7 +95,7 @@ jasmineRequire.HtmlReporter = function(j$) {
};
this.afterAllException = function(error) {
exceptionsList.push(error);
exceptionList.push(error);
};
var failures = [];
@@ -170,11 +170,11 @@ jasmineRequire.HtmlReporter = function(j$) {
var statusBarClassName = 'bar ' + ((failureCount > 0) ? 'failed' : 'passed');
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage));
exceptionsList.forEach(function(error) {
var errorBarMessage = 'An error was thrown in an afterAll: ' + error.stack;
for(i = 0; i < exceptionList.length; i++) {
var errorBarMessage = 'An error was thrown in an afterAll: ' + (exceptionList[i].message || exceptionList[i].description);
var errorBarClassName = 'bar errored';
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessage));
});
}
var results = find('.results');
results.appendChild(summary);

View File

@@ -232,7 +232,7 @@ describe("ConsoleReporter", function() {
reporter.afterAllException(error);
reporter.afterAllException(anotherError);
reporter.jasmineDone();
expect(out.getOutput()).toMatch(/After All Exception/);
expect(out.getOutput()).toMatch(/Some Other Exception/);
});

View File

@@ -52,13 +52,13 @@ getJasmineRequireObj().ConsoleReporter = function() {
print('Finished in ' + seconds + ' ' + plural('second', seconds));
printNewline();
exceptionList.forEach(function(error) {
for(i = 0; i < exceptionList.length; i++) {
printNewline();
print(colored('red', 'An error was thrown in an afterAll'));
printNewline();
print(colored('red', error.stack));
print(colored('red', (exceptionList[i].message || exceptionList[i].description)));
printNewline();
});
}
onComplete(failureCount === 0);
};

View File

@@ -18,7 +18,7 @@ jasmineRequire.HtmlReporter = function(j$) {
pendingSpecCount = 0,
htmlReporterMain,
symbols,
exceptionsList = [];
exceptionList = [];
this.initialize = function() {
htmlReporterMain = createDom('div', {className: 'html-reporter'},
@@ -66,7 +66,7 @@ jasmineRequire.HtmlReporter = function(j$) {
};
this.afterAllException = function(error) {
exceptionsList.push(error);
exceptionList.push(error);
};
var failures = [];
@@ -141,11 +141,11 @@ jasmineRequire.HtmlReporter = function(j$) {
var statusBarClassName = 'bar ' + ((failureCount > 0) ? 'failed' : 'passed');
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage));
exceptionsList.forEach(function(error) {
var errorBarMessage = 'An error was thrown in an afterAll: ' + error.stack;
for(i = 0; i < exceptionList.length; i++) {
var errorBarMessage = 'An error was thrown in an afterAll: ' + (exceptionList[i].message || exceptionList[i].description);
var errorBarClassName = 'bar errored';
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessage));
});
}
var results = find('.results');
results.appendChild(summary);