test_readWrite.js 2.5 KB

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