set suite status to failed when afterAll has failures

This commit is contained in:
slackersoft
2014-09-26 09:12:48 -07:00
parent 66c364564e
commit eefa716530
4 changed files with 26 additions and 5 deletions

View File

@@ -301,4 +301,14 @@ describe("Suite", function() {
failedExpectations: []
});
});
it('has a status of failed if any afterAll expectations have failed', function() {
var suite = new j$.Suite({
expectationResultFactory: function() { return 'hi'; }
});
suite.addChild({ result: { status: 'done' } });
suite.addExpectationResult(false);
expect(suite.status()).toBe('failed');
});
});

View File

@@ -194,8 +194,8 @@ describe("New HtmlReporter", function() {
reporter.initialize();
reporter.jasmineStarted({});
reporter.suiteDone({ failedExpectations: [{ message: 'My After All Exception' }] });
reporter.suiteDone({ failedExpectations: [{ message: 'My Other Exception' }] });
reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My After All Exception' }] });
reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My Other Exception' }] });
reporter.jasmineDone({});
var alertBars = container.querySelectorAll(".alert .bar");

View File

@@ -43,7 +43,6 @@ getJasmineRequireObj().Suite = function() {
Suite.prototype.disable = function() {
this.disabled = true;
this.result.status = 'disabled';
};
Suite.prototype.beforeEach = function(fn) {
@@ -66,6 +65,18 @@ getJasmineRequireObj().Suite = function() {
this.children.push(child);
};
Suite.prototype.status = function() {
if (this.disabled) {
return 'disabled';
}
if (this.result.failedExpectations.length > 0) {
return 'failed';
} else {
return 'finished';
}
};
Suite.prototype.execute = function(onComplete) {
var self = this;
@@ -96,7 +107,7 @@ getJasmineRequireObj().Suite = function() {
});
function complete() {
self.result.status = self.disabled ? 'disabled' : 'finished';
self.result.status = self.status();
self.resultCallback(self.result);
if (onComplete) {

View File

@@ -55,7 +55,7 @@ jasmineRequire.HtmlReporter = function(j$) {
};
this.suiteDone = function(result) {
if (result.failedExpectations && result.failedExpectations.length > 0) {
if (result.status == 'failed') {
failedSuites.push(result);
}