Report loading errors as loading errors, not afterAll errors
[#24901981]
This commit is contained in:
@@ -242,18 +242,19 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar));
|
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar));
|
||||||
|
|
||||||
var errorBarClassName = 'jasmine-bar jasmine-errored';
|
var errorBarClassName = 'jasmine-bar jasmine-errored';
|
||||||
var errorBarMessagePrefix = 'AfterAll ';
|
var afterAllMessagePrefix = 'AfterAll ';
|
||||||
|
|
||||||
for(var i = 0; i < failedSuites.length; i++) {
|
for(var i = 0; i < failedSuites.length; i++) {
|
||||||
var failedSuite = failedSuites[i];
|
var failedSuite = failedSuites[i];
|
||||||
for(var j = 0; j < failedSuite.failedExpectations.length; j++) {
|
for(var j = 0; j < failedSuite.failedExpectations.length; j++) {
|
||||||
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failedSuite.failedExpectations[j].message));
|
alert.appendChild(createDom('span', {className: errorBarClassName}, afterAllMessagePrefix + failedSuite.failedExpectations[j].message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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));
|
var prefix = failure.globalErrorType === 'load' ? 'Error during loading: ' : afterAllMessagePrefix;
|
||||||
|
alert.appendChild(createDom('span', {className: errorBarClassName}, prefix + failure.message));
|
||||||
}
|
}
|
||||||
|
|
||||||
var results = find('.jasmine-results');
|
var results = find('.jasmine-results');
|
||||||
|
|||||||
@@ -778,6 +778,7 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
if (!suppressLoadErrors) {
|
if (!suppressLoadErrors) {
|
||||||
topSuite.result.failedExpectations.push({
|
topSuite.result.failedExpectations.push({
|
||||||
passed: false,
|
passed: false,
|
||||||
|
globalErrorType: 'load',
|
||||||
message: message
|
message: message
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -5177,7 +5178,13 @@ getJasmineRequireObj().Suite = function(j$) {
|
|||||||
actual: '',
|
actual: '',
|
||||||
error: arguments[0]
|
error: arguments[0]
|
||||||
};
|
};
|
||||||
this.result.failedExpectations.push(this.expectationResultFactory(data));
|
var failedExpectation = this.expectationResultFactory(data);
|
||||||
|
|
||||||
|
if (!this.parentSuite) {
|
||||||
|
failedExpectation.globalErrorType = 'afterAll';
|
||||||
|
}
|
||||||
|
|
||||||
|
this.result.failedExpectations.push(failedExpectation);
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < this.children.length; i++) {
|
for (var i = 0; i < this.children.length; i++) {
|
||||||
var child = this.children[i];
|
var child = this.children[i];
|
||||||
|
|||||||
@@ -422,6 +422,49 @@ describe("Env integration", function() {
|
|||||||
env.execute();
|
env.execute();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("tags top-level afterAll failures with a type", function(done) {
|
||||||
|
var env = new jasmineUnderTest.Env();
|
||||||
|
|
||||||
|
env.addReporter({jasmineDone: function(result) {
|
||||||
|
expect(result.failedExpectations[0].globalErrorType).toEqual('afterAll');
|
||||||
|
done();
|
||||||
|
}});
|
||||||
|
|
||||||
|
env.it('has a spec', function() {});
|
||||||
|
|
||||||
|
env.afterAll(function() {
|
||||||
|
debugger;
|
||||||
|
throw 'nope';
|
||||||
|
});
|
||||||
|
|
||||||
|
env.execute();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not tag suite afterAll failures with a type", function(done) {
|
||||||
|
var env = new jasmineUnderTest.Env(),
|
||||||
|
reporter = {
|
||||||
|
jasmineDone: function() {
|
||||||
|
expect(reporter.suiteDone).toHaveBeenCalled();
|
||||||
|
done();
|
||||||
|
},
|
||||||
|
suiteDone: jasmine.createSpy('suiteDone').and.callFake(function(result) {
|
||||||
|
expect(result.failedExpectations[0].globalErrorType).toBeFalsy();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
env.addReporter(reporter);
|
||||||
|
|
||||||
|
env.describe('a suite', function() {
|
||||||
|
env.it('has a spec', function() {});
|
||||||
|
|
||||||
|
env.afterAll(function() {
|
||||||
|
throw 'nope';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
env.execute();
|
||||||
|
});
|
||||||
|
|
||||||
it("fails all underlying specs when the beforeAll fails", function (done) {
|
it("fails all underlying specs when the beforeAll fails", function (done) {
|
||||||
var env = new jasmineUnderTest.Env(),
|
var env = new jasmineUnderTest.Env(),
|
||||||
reporter = jasmine.createSpyObj('fakeReporter', [ "specDone", "jasmineDone" ]);
|
reporter = jasmine.createSpyObj('fakeReporter', [ "specDone", "jasmineDone" ]);
|
||||||
@@ -1991,10 +2034,12 @@ describe("Env integration", function() {
|
|||||||
expect(e.failedExpectations).toEqual([
|
expect(e.failedExpectations).toEqual([
|
||||||
{
|
{
|
||||||
passed: false,
|
passed: false,
|
||||||
|
globalErrorType: 'load',
|
||||||
message: 'Uncaught SyntaxError: Unexpected end of input'
|
message: 'Uncaught SyntaxError: Unexpected end of input'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
passed: false,
|
passed: false,
|
||||||
|
globalErrorType: 'load',
|
||||||
message: 'Uncaught Error: ENOCHEESE'
|
message: 'Uncaught Error: ENOCHEESE'
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -195,16 +195,23 @@ describe("HtmlReporter", function() {
|
|||||||
reporter.jasmineStarted({});
|
reporter.jasmineStarted({});
|
||||||
reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My After All Exception' }] });
|
reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My After All Exception' }] });
|
||||||
reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My Other Exception' }] });
|
reporter.suiteDone({ status: 'failed', failedExpectations: [{ message: 'My Other Exception' }] });
|
||||||
reporter.jasmineDone({ failedExpectations: [{ message: 'Global After All Failure' }, { message: 'Other Global' }] });
|
reporter.jasmineDone({ failedExpectations: [
|
||||||
|
{ message: 'Global After All Failure', globalErrorType: 'afterAll' },
|
||||||
|
{ message: 'Other Global' },
|
||||||
|
{ message: 'Your JS is borken', globalErrorType: 'load' }
|
||||||
|
] });
|
||||||
|
|
||||||
var alertBars = container.querySelectorAll(".jasmine-alert .jasmine-bar");
|
var alertBars = container.querySelectorAll(".jasmine-alert .jasmine-bar");
|
||||||
|
|
||||||
expect(alertBars.length).toEqual(5);
|
expect(alertBars.length).toEqual(6);
|
||||||
expect(alertBars[1].innerHTML).toMatch(/My After All Exception/);
|
expect(alertBars[1].innerHTML).toMatch(/My After All Exception/);
|
||||||
expect(alertBars[1].getAttribute("class")).toEqual('jasmine-bar jasmine-errored');
|
expect(alertBars[1].getAttribute("class")).toEqual('jasmine-bar jasmine-errored');
|
||||||
expect(alertBars[2].innerHTML).toMatch(/My Other Exception/);
|
expect(alertBars[2].innerHTML).toMatch(/My Other Exception/);
|
||||||
expect(alertBars[3].innerHTML).toMatch(/Global After All Failure/);
|
expect(alertBars[3].innerHTML).toMatch(/AfterAll Global After All Failure/);
|
||||||
|
// TODO: What about this?
|
||||||
expect(alertBars[4].innerHTML).toMatch(/Other Global/);
|
expect(alertBars[4].innerHTML).toMatch(/Other Global/);
|
||||||
|
|
||||||
|
expect(alertBars[5].innerHTML).toMatch(/Error during loading: Your JS is borken/);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ getJasmineRequireObj().Env = function(j$) {
|
|||||||
if (!suppressLoadErrors) {
|
if (!suppressLoadErrors) {
|
||||||
topSuite.result.failedExpectations.push({
|
topSuite.result.failedExpectations.push({
|
||||||
passed: false,
|
passed: false,
|
||||||
|
globalErrorType: 'load',
|
||||||
message: message
|
message: message
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,13 @@ getJasmineRequireObj().Suite = function(j$) {
|
|||||||
actual: '',
|
actual: '',
|
||||||
error: arguments[0]
|
error: arguments[0]
|
||||||
};
|
};
|
||||||
this.result.failedExpectations.push(this.expectationResultFactory(data));
|
var failedExpectation = this.expectationResultFactory(data);
|
||||||
|
|
||||||
|
if (!this.parentSuite) {
|
||||||
|
failedExpectation.globalErrorType = 'afterAll';
|
||||||
|
}
|
||||||
|
|
||||||
|
this.result.failedExpectations.push(failedExpectation);
|
||||||
} else {
|
} else {
|
||||||
for (var i = 0; i < this.children.length; i++) {
|
for (var i = 0; i < this.children.length; i++) {
|
||||||
var child = this.children[i];
|
var child = this.children[i];
|
||||||
|
|||||||
@@ -213,18 +213,19 @@ jasmineRequire.HtmlReporter = function(j$) {
|
|||||||
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar));
|
alert.appendChild(createDom('span', {className: statusBarClassName}, statusBarMessage, seedBar));
|
||||||
|
|
||||||
var errorBarClassName = 'jasmine-bar jasmine-errored';
|
var errorBarClassName = 'jasmine-bar jasmine-errored';
|
||||||
var errorBarMessagePrefix = 'AfterAll ';
|
var afterAllMessagePrefix = 'AfterAll ';
|
||||||
|
|
||||||
for(var i = 0; i < failedSuites.length; i++) {
|
for(var i = 0; i < failedSuites.length; i++) {
|
||||||
var failedSuite = failedSuites[i];
|
var failedSuite = failedSuites[i];
|
||||||
for(var j = 0; j < failedSuite.failedExpectations.length; j++) {
|
for(var j = 0; j < failedSuite.failedExpectations.length; j++) {
|
||||||
alert.appendChild(createDom('span', {className: errorBarClassName}, errorBarMessagePrefix + failedSuite.failedExpectations[j].message));
|
alert.appendChild(createDom('span', {className: errorBarClassName}, afterAllMessagePrefix + failedSuite.failedExpectations[j].message));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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));
|
var prefix = failure.globalErrorType === 'load' ? 'Error during loading: ' : afterAllMessagePrefix;
|
||||||
|
alert.appendChild(createDom('span', {className: errorBarClassName}, prefix + failure.message));
|
||||||
}
|
}
|
||||||
|
|
||||||
var results = find('.jasmine-results');
|
var results = find('.jasmine-results');
|
||||||
|
|||||||
Reference in New Issue
Block a user