Suites report errors in afterAlls in the suiteDone event
- remove `afterAllEvent` from reporters
This commit is contained in:
@@ -98,12 +98,10 @@ describe("QueueRunner", function() {
|
||||
beforeFn = { fn: function(done) { }, type: 'before', timeout: function() { return timeout; } },
|
||||
queueableFn = { fn: jasmine.createSpy('fn'), type: 'queueable' },
|
||||
onComplete = jasmine.createSpy('onComplete'),
|
||||
reportException = jasmine.createSpy('reportException'),
|
||||
onException = jasmine.createSpy('onException'),
|
||||
queueRunner = new j$.QueueRunner({
|
||||
queueableFns: [beforeFn, queueableFn],
|
||||
onComplete: onComplete,
|
||||
reportException: reportException,
|
||||
onException: onException
|
||||
});
|
||||
|
||||
@@ -112,7 +110,6 @@ describe("QueueRunner", function() {
|
||||
|
||||
jasmine.clock().tick(timeout);
|
||||
|
||||
expect(reportException).toHaveBeenCalledWith(jasmine.any(Error), 'before');
|
||||
expect(onException).toHaveBeenCalledWith(jasmine.any(Error));
|
||||
expect(queueableFn.fn).toHaveBeenCalled();
|
||||
expect(onComplete).toHaveBeenCalled();
|
||||
@@ -122,12 +119,10 @@ describe("QueueRunner", function() {
|
||||
var beforeFn = { fn: function(done) { } },
|
||||
queueableFn = { fn: jasmine.createSpy('fn') },
|
||||
onComplete = jasmine.createSpy('onComplete'),
|
||||
reportException = jasmine.createSpy('reportException'),
|
||||
onException = jasmine.createSpy('onException'),
|
||||
queueRunner = new j$.QueueRunner({
|
||||
queueableFns: [beforeFn, queueableFn],
|
||||
onComplete: onComplete,
|
||||
reportException: reportException,
|
||||
onException: onException,
|
||||
});
|
||||
|
||||
@@ -136,7 +131,6 @@ describe("QueueRunner", function() {
|
||||
|
||||
jasmine.clock().tick(j$.DEFAULT_TIMEOUT_INTERVAL);
|
||||
|
||||
expect(reportException).not.toHaveBeenCalled();
|
||||
expect(onException).not.toHaveBeenCalled();
|
||||
expect(queueableFn.fn).not.toHaveBeenCalled();
|
||||
expect(onComplete).not.toHaveBeenCalled();
|
||||
@@ -145,35 +139,29 @@ describe("QueueRunner", function() {
|
||||
it("clears the timeout when an async function throws an exception, to prevent additional exception reporting", function() {
|
||||
var queueableFn = { fn: function(done) { throw new Error("error!"); } },
|
||||
onComplete = jasmine.createSpy('onComplete'),
|
||||
reportException = jasmine.createSpy('reportException'),
|
||||
onException = jasmine.createSpy('onException'),
|
||||
queueRunner = new j$.QueueRunner({
|
||||
queueableFns: [queueableFn],
|
||||
onComplete: onComplete,
|
||||
reportException: reportException,
|
||||
onException: onException
|
||||
});
|
||||
|
||||
queueRunner.execute();
|
||||
|
||||
expect(onComplete).toHaveBeenCalled();
|
||||
expect(reportException).toHaveBeenCalled();
|
||||
expect(onException).toHaveBeenCalled();
|
||||
|
||||
jasmine.clock().tick(j$.DEFAULT_TIMEOUT_INTERVAL);
|
||||
expect(reportException.calls.count()).toEqual(1);
|
||||
expect(onException.calls.count()).toEqual(1);
|
||||
});
|
||||
|
||||
it("clears the timeout when the done callback is called", function() {
|
||||
var queueableFn = { fn: function(done) { done(); } },
|
||||
onComplete = jasmine.createSpy('onComplete'),
|
||||
reportException = jasmine.createSpy('reportException'),
|
||||
onException = jasmine.createSpy('onException'),
|
||||
queueRunner = new j$.QueueRunner({
|
||||
queueableFns: [queueableFn],
|
||||
onComplete: onComplete,
|
||||
reportException: reportException,
|
||||
onException: onException
|
||||
});
|
||||
|
||||
@@ -182,7 +170,6 @@ describe("QueueRunner", function() {
|
||||
expect(onComplete).toHaveBeenCalled();
|
||||
|
||||
jasmine.clock().tick(j$.DEFAULT_TIMEOUT_INTERVAL);
|
||||
expect(reportException).not.toHaveBeenCalled();
|
||||
expect(onException).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@@ -218,17 +205,14 @@ describe("QueueRunner", function() {
|
||||
fn: function() {
|
||||
throw new Error('fake error');
|
||||
} },
|
||||
exceptionCallback = jasmine.createSpy('exception callback'),
|
||||
onExceptionCallback = jasmine.createSpy('on exception callback'),
|
||||
queueRunner = new j$.QueueRunner({
|
||||
queueableFns: [queueableFn],
|
||||
reportException: exceptionCallback,
|
||||
onException: onExceptionCallback
|
||||
});
|
||||
|
||||
queueRunner.execute();
|
||||
|
||||
expect(exceptionCallback).toHaveBeenCalledWith(jasmine.any(Error), 'queueable');
|
||||
expect(onExceptionCallback).toHaveBeenCalledWith(jasmine.any(Error));
|
||||
});
|
||||
|
||||
|
||||
@@ -262,7 +262,8 @@ describe("Suite", function() {
|
||||
id: suite.id,
|
||||
status: '',
|
||||
description: "with a child suite",
|
||||
fullName: "with a child suite"
|
||||
fullName: "with a child suite",
|
||||
failedExpectations: []
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -330,11 +330,29 @@ describe("Env integration", function() {
|
||||
|
||||
it("reports when an afterAll fails an expectation", function(done) {
|
||||
var env = new j$.Env(),
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','afterAllEvent']);
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','suiteDone']);
|
||||
|
||||
reporter.jasmineDone.and.callFake(function() {
|
||||
expect(reporter.afterAllEvent).toHaveBeenCalledWith('Expectation failed: Expected 1 to equal 2.');
|
||||
expect(reporter.afterAllEvent).toHaveBeenCalledWith('Expectation failed: Expected 2 to equal 3.');
|
||||
expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
failedExpectations: [
|
||||
{
|
||||
matcherName : 'toEqual',
|
||||
expected : 2,
|
||||
actual : 1,
|
||||
message : 'Expected 1 to equal 2.',
|
||||
stack: jasmine.any(String),
|
||||
passed: false
|
||||
},
|
||||
{
|
||||
matcherName : 'toEqual',
|
||||
expected : 3,
|
||||
actual : 2,
|
||||
message : 'Expected 2 to equal 3.',
|
||||
stack: jasmine.any(String),
|
||||
passed: false
|
||||
}
|
||||
]
|
||||
}));
|
||||
done();
|
||||
});
|
||||
|
||||
@@ -353,46 +371,23 @@ describe("Env integration", function() {
|
||||
env.execute();
|
||||
});
|
||||
|
||||
it("only reports afterAll expectation failures once, regardless of suite children", function(done) {
|
||||
var env = new j$.Env(),
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','afterAllEvent']);
|
||||
|
||||
reporter.jasmineDone.and.callFake(function() {
|
||||
expect(reporter.afterAllEvent.calls.count()).toEqual(1);
|
||||
expect(reporter.afterAllEvent).toHaveBeenCalledWith('Expectation failed: Expected 1 to equal 2.');
|
||||
done();
|
||||
});
|
||||
|
||||
env.addReporter(reporter);
|
||||
|
||||
env.describe('my suite', function() {
|
||||
env.it('my spec', function() {
|
||||
});
|
||||
|
||||
env.it('my spec2', function() {
|
||||
});
|
||||
|
||||
env.describe('nested suite', function(){
|
||||
env.it('my spec3', function() {
|
||||
});
|
||||
});
|
||||
|
||||
env.afterAll(function() {
|
||||
env.expect(1).toEqual(2);
|
||||
});
|
||||
});
|
||||
|
||||
env.execute();
|
||||
});
|
||||
|
||||
it("reports when afterAll throws an exception", function(done) {
|
||||
var env = new j$.Env(),
|
||||
error = new Error('After All Exception'),
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','afterAllEvent']);
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','suiteDone']);
|
||||
|
||||
reporter.jasmineDone.and.callFake(function() {
|
||||
expect(reporter.afterAllEvent.calls.count()).toEqual(1);
|
||||
expect(reporter.afterAllEvent).toHaveBeenCalledWith('Error thrown: After All Exception');
|
||||
expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
description: 'my suite',
|
||||
failedExpectations: [{
|
||||
matcherName : '',
|
||||
expected : '',
|
||||
actual : '',
|
||||
message : 'Error: After All Exception',
|
||||
stack : jasmine.any(String),
|
||||
passed: false
|
||||
}]
|
||||
}));
|
||||
done();
|
||||
});
|
||||
|
||||
@@ -412,10 +407,19 @@ describe("Env integration", function() {
|
||||
|
||||
it("reports when an async afterAll fails an expectation", function(done) {
|
||||
var env = new j$.Env(),
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','afterAllEvent']);
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','suiteDone']);
|
||||
|
||||
reporter.jasmineDone.and.callFake(function() {
|
||||
expect(reporter.afterAllEvent).toHaveBeenCalledWith('Expectation failed: Expected 1 to equal 2.');
|
||||
expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
failedExpectations: [{
|
||||
matcherName : 'toEqual',
|
||||
expected : 2,
|
||||
actual : 1,
|
||||
message : 'Expected 1 to equal 2.',
|
||||
stack: jasmine.any(String),
|
||||
passed: false
|
||||
}]
|
||||
}));
|
||||
done();
|
||||
});
|
||||
|
||||
@@ -437,11 +441,21 @@ describe("Env integration", function() {
|
||||
it("reports when an async afterAll throws an exception", function(done) {
|
||||
var env = new j$.Env(),
|
||||
error = new Error('After All Exception'),
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','afterAllEvent']);
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','suiteDone']);
|
||||
|
||||
|
||||
reporter.jasmineDone.and.callFake(function() {
|
||||
expect(reporter.afterAllEvent).toHaveBeenCalled();
|
||||
expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
description: 'my suite',
|
||||
failedExpectations: [{
|
||||
matcherName : '',
|
||||
expected : '',
|
||||
actual : '',
|
||||
message : 'Error: After All Exception',
|
||||
stack : jasmine.any(String),
|
||||
passed: false
|
||||
}]
|
||||
}));
|
||||
done();
|
||||
});
|
||||
|
||||
@@ -747,10 +761,19 @@ describe("Env integration", function() {
|
||||
|
||||
it("should wait the specified interval before reporting an afterAll that fails to call done", function(done) {
|
||||
var env = new j$.Env(),
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','afterAllEvent']);
|
||||
reporter = jasmine.createSpyObj('fakeReport', ['jasmineDone','suiteDone']);
|
||||
|
||||
reporter.jasmineDone.and.callFake(function() {
|
||||
expect(reporter.afterAllEvent).toHaveBeenCalledWith(jasmine.any(String));
|
||||
expect(reporter.suiteDone).toHaveBeenCalledWith(jasmine.objectContaining({
|
||||
failedExpectations: [{
|
||||
matcherName : '',
|
||||
expected : '',
|
||||
actual : '',
|
||||
message : 'Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.',
|
||||
stack : jasmine.any(String),
|
||||
passed: false
|
||||
}]
|
||||
}));
|
||||
done();
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user