HTML reporter reports overall failure if there are any global errors
[#24901981]
This commit is contained in:
@@ -218,12 +218,14 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
var statusBarMessage = '';
|
var statusBarMessage = '';
|
||||||
var statusBarClassName = 'jasmine-bar ';
|
var statusBarClassName = 'jasmine-overall-result jasmine-bar ';
|
||||||
|
var globalFailures = (doneResult && doneResult.failedExpectations) || [];
|
||||||
|
var failed = failureCount + globalFailures.length > 0;
|
||||||
|
|
||||||
if (totalSpecsDefined > 0) {
|
if (totalSpecsDefined > 0 || failed) {
|
||||||
statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount);
|
statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount);
|
||||||
if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); }
|
if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); }
|
||||||
statusBarClassName += (failureCount > 0) ? 'jasmine-failed' : 'jasmine-passed';
|
statusBarClassName += failed ? 'jasmine-failed' : 'jasmine-passed';
|
||||||
} else {
|
} else {
|
||||||
statusBarClassName += 'jasmine-skipped';
|
statusBarClassName += 'jasmine-skipped';
|
||||||
statusBarMessage += 'No specs found';
|
statusBarMessage += 'No specs found';
|
||||||
@@ -249,7 +251,6 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var globalFailures = (doneResult && doneResult.failedExpectations) || [];
|
|
||||||
for(i = 0; i < globalFailures.length; i++) {
|
for(i = 0; i < globalFailures.length; i++) {
|
||||||
var failure = globalFailures[i];
|
var failure = globalFailures[i];
|
||||||
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failure.message));
|
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failure.message));
|
||||||
|
|||||||
@@ -733,6 +733,58 @@ describe("HtmlReporter", function() {
|
|||||||
expect(alertBars[0].innerHTML).toMatch(/No specs found/);
|
expect(alertBars[0].innerHTML).toMatch(/No specs found/);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("reports failure if there are global errors and no specs", function() {
|
||||||
|
var env = new jasmineUnderTest.Env(),
|
||||||
|
container = document.createElement("div"),
|
||||||
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
|
env: env,
|
||||||
|
getContainer: function() { return container; },
|
||||||
|
createElement: function() { return document.createElement.apply(document, arguments); },
|
||||||
|
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
|
||||||
|
});
|
||||||
|
reporter.initialize();
|
||||||
|
reporter.jasmineStarted({ totalSpecsDefined: 0 });
|
||||||
|
reporter.jasmineDone({
|
||||||
|
failedExpectations: [{
|
||||||
|
passed: false,
|
||||||
|
message: 'nope'
|
||||||
|
}]
|
||||||
|
});
|
||||||
|
|
||||||
|
var alertBar = container.querySelector(".jasmine-overall-result");
|
||||||
|
expect(alertBar.getAttribute('class')).toMatch(/jasmine-failed/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("reports failure if there are global errors and some specs", function() {
|
||||||
|
var env = new jasmineUnderTest.Env(),
|
||||||
|
container = document.createElement("div"),
|
||||||
|
reporter = new jasmineUnderTest.HtmlReporter({
|
||||||
|
env: env,
|
||||||
|
getContainer: function() { return container; },
|
||||||
|
createElement: function() { return document.createElement.apply(document, arguments); },
|
||||||
|
createTextNode: function() { return document.createTextNode.apply(document, arguments); }
|
||||||
|
});
|
||||||
|
reporter.initialize();
|
||||||
|
reporter.jasmineStarted({ totalSpecsDefined: 0 });
|
||||||
|
reporter.specDone({
|
||||||
|
id: 123,
|
||||||
|
description: "with a spec",
|
||||||
|
fullName: "A Suite with a spec",
|
||||||
|
status: "passed",
|
||||||
|
passedExpectations: [{passed: true}],
|
||||||
|
failedExpectations: []
|
||||||
|
});
|
||||||
|
reporter.jasmineDone({
|
||||||
|
failedExpectations: [{
|
||||||
|
passed: false,
|
||||||
|
message: 'nope'
|
||||||
|
}]
|
||||||
|
});
|
||||||
|
|
||||||
|
var alertBar = container.querySelector(".jasmine-overall-result");
|
||||||
|
expect(alertBar.getAttribute('class')).toMatch(/jasmine-failed/);
|
||||||
|
});
|
||||||
|
|
||||||
describe("and all specs pass", function() {
|
describe("and all specs pass", function() {
|
||||||
var env, container, reporter;
|
var env, container, reporter;
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
|
|||||||
@@ -189,12 +189,14 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
var statusBarMessage = '';
|
var statusBarMessage = '';
|
||||||
var statusBarClassName = 'jasmine-bar ';
|
var statusBarClassName = 'jasmine-overall-result jasmine-bar ';
|
||||||
|
var globalFailures = (doneResult && doneResult.failedExpectations) || [];
|
||||||
|
var failed = failureCount + globalFailures.length > 0;
|
||||||
|
|
||||||
if (totalSpecsDefined > 0) {
|
if (totalSpecsDefined > 0 || failed) {
|
||||||
statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount);
|
statusBarMessage += pluralize('spec', specsExecuted) + ', ' + pluralize('failure', failureCount);
|
||||||
if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); }
|
if (pendingSpecCount) { statusBarMessage += ', ' + pluralize('pending spec', pendingSpecCount); }
|
||||||
statusBarClassName += (failureCount > 0) ? 'jasmine-failed' : 'jasmine-passed';
|
statusBarClassName += failed ? 'jasmine-failed' : 'jasmine-passed';
|
||||||
} else {
|
} else {
|
||||||
statusBarClassName += 'jasmine-skipped';
|
statusBarClassName += 'jasmine-skipped';
|
||||||
statusBarMessage += 'No specs found';
|
statusBarMessage += 'No specs found';
|
||||||
@@ -220,7 +222,6 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var globalFailures = (doneResult && doneResult.failedExpectations) || [];
|
|
||||||
for(i = 0; i < globalFailures.length; i++) {
|
for(i = 0; i < globalFailures.length; i++) {
|
||||||
var failure = globalFailures[i];
|
var failure = globalFailures[i];
|
||||||
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failure.message));
|
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failure.message));
|
||||||
|
|||||||
Reference in New Issue
Block a user