test_ffromIterable.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. 'use strict';
  2. const unit = require('heya-unit');
  3. const chain = require('../src/index');
  4. const {streamToArray, delay} = require('./helpers');
  5. const fromIterable = require('../src/utils/fromIterable');
  6. unit.add(module, [
  7. function test_fromIterable(t) {
  8. const async = t.startAsync('test_fromIterable');
  9. const output = [],
  10. c = chain([fromIterable([1, 2, 3]), streamToArray(output)]);
  11. c.on('end', () => {
  12. eval(t.TEST('t.unify(output, [1, 2, 3])'));
  13. async.done();
  14. });
  15. },
  16. function test_fromIterableFun(t) {
  17. const async = t.startAsync('test_fromIterableFun');
  18. const output = [],
  19. c = chain([fromIterable(() => 0), streamToArray(output)]);
  20. c.on('end', () => {
  21. eval(t.TEST('t.unify(output, [0])'));
  22. async.done();
  23. });
  24. },
  25. function test_fromIterableAsyncFun(t) {
  26. const async = t.startAsync('test_fromIterableAsyncFun');
  27. const output = [],
  28. c = chain([fromIterable(delay(() => 0)), streamToArray(output)]);
  29. c.on('end', () => {
  30. eval(t.TEST('t.unify(output, [0])'));
  31. async.done();
  32. });
  33. },
  34. function test_fromIterableGen(t) {
  35. const async = t.startAsync('test_fromIterableGen');
  36. const output = [],
  37. c = chain([
  38. fromIterable(function* () {
  39. yield 0;
  40. yield 1;
  41. }),
  42. streamToArray(output)
  43. ]);
  44. c.on('end', () => {
  45. eval(t.TEST('t.unify(output, [0, 1])'));
  46. async.done();
  47. });
  48. },
  49. function test_fromIterableAsyncGen(t) {
  50. const async = t.startAsync('test_fromIterableAsyncGen');
  51. const output = [],
  52. c = chain([
  53. fromIterable(async function* () {
  54. yield delay(() => 0)();
  55. yield delay(() => 1)();
  56. }),
  57. streamToArray(output)
  58. ]);
  59. c.on('end', () => {
  60. eval(t.TEST('t.unify(output, [0, 1])'));
  61. async.done();
  62. });
  63. },
  64. function test_fromIterableNextable(t) {
  65. const async = t.startAsync('test_fromIterableNextable');
  66. const output = [],
  67. c = chain([
  68. fromIterable(
  69. (function* () {
  70. yield 0;
  71. yield 1;
  72. })()
  73. ),
  74. streamToArray(output)
  75. ]);
  76. c.on('end', () => {
  77. eval(t.TEST('t.unify(output, [0, 1])'));
  78. async.done();
  79. });
  80. }
  81. ]);