Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit 1d4370b

Browse files
committed
fix(Jasmine): add support for jasmine 2 done.fail()
fixes #180
1 parent 0f369ab commit 1d4370b

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

Diff for: lib/jasmine/patch.js

+14-8
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,20 @@ function apply() {
1515
var originalIt = global.it;
1616
var originalFit = global.fit;
1717

18+
// Patch jasmine `done()` and `done.fail()` so that they execute in the root zone
19+
var patchJasmineDone = function(jasmineDone) {
20+
var done = jasmineZone.bind(jasmineDone);
21+
if (typeof jasmineDone.fail === 'function') {
22+
done.fail = jasmineZone.bind(jasmineDone.fail);
23+
}
24+
25+
return done;
26+
}
27+
1828
global.it = function zoneResettingIt(description, specFn, timeOut) {
1929
if (specFn.length) {
20-
originalIt(description, function zoneResettingSpecFn(originalDone) {
21-
specFn(function zoneResettingDone() {
22-
jasmineZone.run(originalDone);
23-
});
30+
originalIt(description, function zoneResettingSpecFn(done) {
31+
specFn(patchJasmineDone(done));
2432
}, timeOut);
2533
} else {
2634
originalIt(description, specFn, timeOut);
@@ -29,10 +37,8 @@ function apply() {
2937

3038
global.fit = function zoneResettingFit(description, specFn, timeOut) {
3139
if (specFn.length) {
32-
originalFit(description, function zoneResettingSpecFn(originalDone) {
33-
specFn(function zoneResettingDone() {
34-
jasmineZone.run(originalDone);
35-
});
40+
originalFit(description, function zoneResettingSpecFn(done) {
41+
specFn(patchJasmineDone(done));
3642
}, timeOut);
3743
} else {
3844
originalFit(description, specFn, timeOut);

0 commit comments

Comments
 (0)