capped.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. 'use strict';
  2. var contra = typeof contra !== 'undefined' ? contra : require('..');
  3. var a = typeof assert !== 'undefined' ? assert : require('assert');
  4. a.falsy = function (value, message) { a.equal(false, !!value, message); };
  5. describe('concurrent()', function () {
  6. it('should return the results as expected', function (done) {
  7. var items = {
  8. a: 'a',
  9. b: { m: 2 },
  10. c: 'c',
  11. d: 'foo',
  12. e: [2],
  13. z: [3, 6, 7]
  14. };
  15. var tasks = {};
  16. Object.keys(items).forEach(function (key) {
  17. tasks[key] = fn(items[key]);
  18. });
  19. function fn (result) {
  20. return function (d) {
  21. setTimeout(function () {
  22. d(null, result);
  23. }, Math.random());
  24. };
  25. }
  26. function d (err, results) {
  27. a.deepEqual(results, items);
  28. done();
  29. }
  30. contra.concurrent(tasks, 4, d);
  31. });
  32. });
  33. describe('map()', function () {
  34. it('should return the results as expected', function (done) {
  35. var items = {
  36. a: 'a',
  37. b: { m: 2 },
  38. c: 'c',
  39. d: 'foo',
  40. e: [2],
  41. z: [3, 6, 7]
  42. };
  43. function mapper (item, done) {
  44. setTimeout(function () {
  45. done(null, item);
  46. }, Math.random());
  47. }
  48. function d (err, results) {
  49. a.falsy(err);
  50. a.deepEqual(results, items);
  51. done();
  52. }
  53. contra.map(items, 4, mapper, d);
  54. });
  55. });