test_readWrite.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. 'use strict';
  2. const unit = require('heya-unit');
  3. const Chain = require('../main');
  4. const {streamFromArray, streamToArray} = require('./helpers');
  5. const {Transform} = require('stream');
  6. unit.add(module, [
  7. function test_readWriteReadable(t) {
  8. const async = t.startAsync('test_readWriteReadable');
  9. const output1 = [],
  10. output2 = [],
  11. chain = new Chain([streamFromArray([1, 2, 3]), x => x * x]);
  12. chain.pipe(streamToArray(output1));
  13. chain.on('data', value => output2.push(value));
  14. chain.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 output1 = [],
  23. chain = new Chain([x => x * x, streamToArray(output1)]);
  24. streamFromArray([1, 2, 3]).pipe(chain);
  25. chain.on('end', () => {
  26. eval(t.TEST('t.unify(output1, [1, 4, 9])'));
  27. async.done();
  28. });
  29. },
  30. function test_readWriteReadableWritable(t) {
  31. const async = t.startAsync('test_readWriteReadableWritable');
  32. const output1 = [],
  33. chain = new Chain([streamFromArray([1, 2, 3]), x => x * x, streamToArray(output1)]);
  34. chain.on('end', () => {
  35. eval(t.TEST('t.unify(output1, [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. chain = new Chain([streamFromArray([1, 2, 3])]);
  44. chain.pipe(streamToArray(output1));
  45. chain.on('data', value => output2.push(value));
  46. chain.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 output1 = [],
  55. chain = new Chain([streamToArray(output1)]);
  56. streamFromArray([1, 2, 3]).pipe(chain);
  57. chain.on('end', () => {
  58. eval(t.TEST('t.unify(output1, [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. chain = new Chain([streamFromArray([1, 2, 3]), streamToArray(output1)]);
  67. streamFromArray([4, 5, 6]).pipe(chain).pipe(streamToArray(output2));
  68. chain.on('end', () => {
  69. eval(t.TEST('t.unify(output1, [1, 2, 3])'));
  70. eval(t.TEST('t.unify(output2, [])'));
  71. async.done();
  72. });
  73. }
  74. ]);