Skip to content

Commit cd40584

Browse files
committed
Refactor, use Promise.all, which is now well supported
1 parent 94a7618 commit cd40584

File tree

4 files changed

+6
-142
lines changed

4 files changed

+6
-142
lines changed

src/main.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ csscriticLib.main = function (
4141
};
4242

4343
var fetchStartingComparisons = function (testCases) {
44-
return util.all(
44+
return Promise.all(
4545
testCases.map(function (testCase) {
4646
return storage.readReferenceImage(testCase).then(
4747
function (referenceImageRecord) {
@@ -74,7 +74,7 @@ csscriticLib.main = function (
7474
};
7575

7676
var reportConfiguredComparisons = function (comparisonSelection) {
77-
return util.all(
77+
return Promise.all(
7878
comparisonSelection.map(function (selection) {
7979
var isSelected = selection.selected;
8080
return reporting.doReportConfiguredComparison(
@@ -115,7 +115,7 @@ csscriticLib.main = function (
115115
return selection.configuredComparison;
116116
});
117117

118-
return util.all(selectedComparisons.map(executeTestCase));
118+
return Promise.all(selectedComparisons.map(executeTestCase));
119119
})
120120
.then(function (comparisons) {
121121
allPassed = util.hasTestSuitePassed(comparisons);

src/reporting.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ csscriticLib.reporting = function (renderer, storage, util) {
6464
configuredComparison,
6565
isSelected
6666
) {
67-
return util.all(
67+
return Promise.all(
6868
reporters.map(function (reporter) {
6969
var reportingFunc = reportingMethod(reporter, isSelected);
7070
if (reportingFunc) {
@@ -79,7 +79,7 @@ csscriticLib.reporting = function (renderer, storage, util) {
7979

8080
attachPageAcceptHelpers(result);
8181

82-
return util.all(
82+
return Promise.all(
8383
reporters.map(function (reporter) {
8484
if (reporter.reportComparison) {
8585
return reporter.reportComparison(result);
@@ -89,7 +89,7 @@ csscriticLib.reporting = function (renderer, storage, util) {
8989
};
9090

9191
module.doReportTestSuite = function (passed) {
92-
return util.all(
92+
return Promise.all(
9393
reporters.map(function (reporter) {
9494
if (reporter.reportTestSuite) {
9595
return reporter.reportTestSuite({ success: passed });

src/util.js

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -159,41 +159,5 @@ csscriticLib.util = function () {
159159
return hasValidTestSetup && allPassed;
160160
};
161161

162-
module.all = function (functionReturnValues) {
163-
var defer = ayepromise.defer(),
164-
pendingFunctionCalls = functionReturnValues.length,
165-
resolvedValues = [];
166-
167-
var functionCallResolved = function (value, idx) {
168-
pendingFunctionCalls -= 1;
169-
resolvedValues[idx] = value;
170-
171-
if (pendingFunctionCalls === 0) {
172-
defer.resolve(resolvedValues);
173-
}
174-
};
175-
176-
if (functionReturnValues.length === 0) {
177-
defer.resolve([]);
178-
return defer.promise;
179-
}
180-
181-
functionReturnValues.forEach(function (returnValue, idx) {
182-
if (returnValue && returnValue.then) {
183-
returnValue.then(
184-
function (result) {
185-
functionCallResolved(result, idx);
186-
},
187-
function (e) {
188-
defer.reject(e);
189-
}
190-
);
191-
} else {
192-
functionCallResolved(returnValue, idx);
193-
}
194-
});
195-
return defer.promise;
196-
};
197-
198162
return module;
199163
};

test/specs/utilSpec.js

Lines changed: 0 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -300,104 +300,4 @@ describe("Utility", function () {
300300
expect(passed).toBe(false);
301301
});
302302
});
303-
304-
describe("all", function () {
305-
it("should fulfill once a passed promise is fulfilled", function (done) {
306-
var defer = ayepromise.defer(),
307-
resolved = false;
308-
309-
util.all([defer.promise]).then(function () {
310-
expect(resolved).toBe(true);
311-
done();
312-
});
313-
314-
defer.resolve();
315-
316-
resolved = true;
317-
});
318-
319-
it("should fulfill without a promise returned", function (done) {
320-
util.all([undefined]).then(done);
321-
});
322-
323-
it("should fulfill once multiple passed promises are fulfilled", function (done) {
324-
var deferOne = ayepromise.defer(),
325-
deferTwo = ayepromise.defer(),
326-
resolvedCount = 0;
327-
328-
var incResolveCount = function () {
329-
resolvedCount += 1;
330-
};
331-
332-
deferOne.promise.then(incResolveCount);
333-
deferTwo.promise.then(function () {
334-
setTimeout(incResolveCount, 1);
335-
});
336-
337-
util.all([deferOne.promise, deferTwo.promise]).then(function () {
338-
expect(resolvedCount).toBe(2);
339-
done();
340-
});
341-
342-
deferOne.resolve();
343-
deferTwo.resolve();
344-
});
345-
346-
it("should return the promises value", function (done) {
347-
var defer = ayepromise.defer();
348-
349-
util.all([defer.promise]).then(function (values) {
350-
expect(values).toEqual([42]);
351-
done();
352-
});
353-
354-
defer.resolve(42);
355-
});
356-
357-
it("should return a non-promise value", function (done) {
358-
util.all([21]).then(function (values) {
359-
expect(values).toEqual([21]);
360-
done();
361-
});
362-
});
363-
364-
it("should return the promises' values", function (done) {
365-
var deferOne = ayepromise.defer(),
366-
deferTwo = ayepromise.defer();
367-
368-
util.all([deferOne.promise, deferTwo.promise]).then(function (
369-
values
370-
) {
371-
expect(values).toEqual(["12", "34"]);
372-
done();
373-
});
374-
375-
setTimeout(function () {
376-
deferOne.resolve("12");
377-
}, 1);
378-
deferTwo.resolve("34");
379-
});
380-
381-
it("should resolve for an empty input list", function (done) {
382-
util.all([]).then(function (values) {
383-
expect(values).toEqual([]);
384-
385-
done();
386-
});
387-
});
388-
389-
it("should fail if one of the promises fails", function (done) {
390-
var deferOne = ayepromise.defer(),
391-
deferTwo = ayepromise.defer(),
392-
error = new Error("fail");
393-
394-
util.all([deferOne.promise, deferTwo.promise]).fail(function (e) {
395-
expect(e).toBe(error);
396-
done();
397-
});
398-
399-
deferOne.resolve("1");
400-
deferTwo.reject(error);
401-
});
402-
});
403303
});

0 commit comments

Comments
 (0)