Skip to content

Commit

Permalink
[lifecycle hooks] Make afterAll hooks operate in the fashion as after…
Browse files Browse the repository at this point in the history
…Each.

It was discovered that afterAll hooks run in the same order that you add them,
while afterEach hooks were running in reverse order.  This commit makes their
order consistent, and adds regression tests.

Relevant issue - #1311
  • Loading branch information
gdborton committed Apr 10, 2017
1 parent ddcae84 commit 50880fc
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
22 changes: 21 additions & 1 deletion spec/core/integration/SpecRunningSpec.js
Expand Up @@ -172,6 +172,22 @@ describe("jasmine spec running", function () {
it("should run multiple befores and afters ordered so functions declared later are treated as more specific", function(done) {
var actions = [];

env.beforeAll(function() {
actions.push('runner beforeAll1');
});

env.afterAll(function() {
actions.push('runner afterAll1');
});

env.beforeAll(function() {
actions.push('runner beforeAll2');
});

env.afterAll(function() {
actions.push('runner afterAll2');
});

env.beforeEach(function () {
actions.push('runner beforeEach1');
});
Expand Down Expand Up @@ -212,6 +228,8 @@ describe("jasmine spec running", function () {

var assertions = function() {
var expected = [
"runner beforeAll1",
"runner beforeAll2",
"runner beforeEach1",
"runner beforeEach2",
"beforeEach1",
Expand All @@ -220,7 +238,9 @@ describe("jasmine spec running", function () {
"afterEach2",
"afterEach1",
"runner afterEach2",
"runner afterEach1"
"runner afterEach1",
"runner afterAll2",
"runner afterAll1"
];
expect(actions).toEqual(expected);
done();
Expand Down
2 changes: 1 addition & 1 deletion src/core/Suite.js
Expand Up @@ -54,7 +54,7 @@ getJasmineRequireObj().Suite = function(j$) {
};

Suite.prototype.afterAll = function(fn) {
this.afterAllFns.push(fn);
this.afterAllFns.unshift(fn);
};

Suite.prototype.addChild = function(child) {
Expand Down

0 comments on commit 50880fc

Please sign in to comment.