Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit a78a46e

Browse files
committed
Improve tests
1 parent 1bcb612 commit a78a46e

File tree

2 files changed

+29
-21
lines changed

2 files changed

+29
-21
lines changed

q.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1645,10 +1645,10 @@ function any(promises) {
16451645
function onRejected(err) {
16461646
pendingCount--;
16471647
if (pendingCount === 0) {
1648-
var rejection = err || new Error("Rejection was null/undefined");
1648+
var rejection = err || new Error("Rejection value was: " + err);
16491649

16501650
rejection.message = ("Q can't get fulfillment value from any promise, all " +
1651-
"promises were rejected. Last error message: " + err.message);
1651+
"promises were rejected. Last error message: " + rejection.message);
16521652

16531653
deferred.reject(rejection);
16541654
}

spec/q-spec.js

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ describe("any", function() {
11921192
var deferreds = [Q.defer(), Q.defer()];
11931193
var promises = [deferreds[0].promise, deferreds[1].promise];
11941194

1195-
return testReject(promises, deferreds);
1195+
return testReject(promises, deferreds, new Error('Rejected'));
11961196
});
11971197

11981198
it("rejects after all promises in a sparse array are rejected", function() {
@@ -1201,44 +1201,52 @@ describe("any", function() {
12011201
promises[0] = deferreds[0].promise;
12021202
promises[3] = deferreds[1].promise;
12031203

1204-
return testReject(promises, deferreds);
1204+
return testReject(promises, deferreds, new Error("Rejected"));
12051205
});
12061206

12071207

1208-
it("rejects after all promises are rejected with no values", function() {
1208+
it("rejects after all promises are rejected with null", function() {
12091209
var deferreds = [Q.defer(), Q.defer()];
12101210
var promises = [deferreds[0].promise, deferreds[1].promise];
12111211

1212-
return testReject(promises, deferreds, true);
1212+
return testReject(promises, deferreds, null);
12131213
});
12141214

1215-
function testReject(promises, deferreds, expectNull) {
1216-
var promise = Q.any(promises);
1217-
var expectedError = new Error('Rejected');
1215+
it("rejects after all promises are rejected with undefined", function() {
1216+
var deferreds = [Q.defer(), Q.defer()];
1217+
var promises = [deferreds[0].promise, deferreds[1].promise];
12181218

1219-
if (expectNull) {
1220-
var expectedError = new Error("Rejection was null/undefined");
1219+
return testReject(promises, deferreds, undefined);
1220+
});
1221+
1222+
function testReject(promises, deferreds, rejectionValue) {
1223+
var promise = Q.any(promises);
1224+
var expectedError;
1225+
1226+
switch (rejectionValue) {
1227+
case null:
1228+
expectedError = new Error("Rejection value was: null");
1229+
break;
1230+
case undefined:
1231+
expectedError = new Error("Rejection value was: undefined");
1232+
break;
1233+
default:
1234+
expectedError = new Error(rejectionValue.message);
12211235
}
12221236

12231237
for (var index = 0; index < deferreds.length; index++) {
12241238
var deferred = deferreds[index];
12251239
(function() {
1226-
deferred.reject(expectedError);
1240+
deferred.reject(rejectionValue);
12271241
})();
12281242
}
12291243

12301244
return Q.delay(250)
12311245
.then(function() {
12321246
expect(promise.isRejected()).toBe(true);
1233-
expect(promise.inspect().reason).toBe(expectedError);
1234-
1235-
if (expectNull) {
1236-
expect(promise.inspect().reason.message)
1237-
.toBe("Q can't get fulfillment value from any promise, all promises were rejected. Last error message: Rejection was null/undefined");
1238-
} else {
1239-
expect(promise.inspect().reason.message)
1240-
.toBe("Q can't get fulfillment value from any promise, all promises were rejected. Last error message: Rejected");
1241-
}
1247+
expect(promise.inspect().reason).toEqual(expectedError);
1248+
expect(promise.inspect().reason.message)
1249+
.toBe("Q can't get fulfillment value from any promise, all promises were rejected. Last error message: " + expectedError.message);
12421250
})
12431251
.timeout(1000);
12441252
}

0 commit comments

Comments
 (0)