test-readableFrom.mjs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. 'use strict';
  2. import test from 'tape-six';
  3. import {streamToArray, delay} from './helpers.mjs';
  4. import chain from '../src/index.js';
  5. import readableFrom from '../src/utils/readableFrom.js';
  6. test.asPromise('readableFrom: smoke test', (t, resolve) => {
  7. const output = [],
  8. c = chain([readableFrom([1, 2, 3]), streamToArray(output)]);
  9. c.on('end', () => {
  10. t.deepEqual(output, [1, 2, 3]);
  11. resolve();
  12. });
  13. });
  14. test.asPromise('readableFrom: function', (t, resolve) => {
  15. const output = [],
  16. c = chain([readableFrom(() => 0), streamToArray(output)]);
  17. c.on('end', () => {
  18. t.deepEqual(output, [0]);
  19. resolve();
  20. });
  21. });
  22. test.asPromise('readableFrom: async function', (t, resolve) => {
  23. const output = [],
  24. c = chain([readableFrom(delay(() => 0)), streamToArray(output)]);
  25. c.on('end', () => {
  26. t.deepEqual(output, [0]);
  27. resolve();
  28. });
  29. });
  30. test.asPromise('readableFrom: generator', (t, resolve) => {
  31. const output = [],
  32. c = chain([
  33. readableFrom(function* () {
  34. yield 0;
  35. yield 1;
  36. }),
  37. streamToArray(output)
  38. ]);
  39. c.on('end', () => {
  40. t.deepEqual(output, [0, 1]);
  41. resolve();
  42. });
  43. });
  44. test.asPromise('readableFrom: async generator', (t, resolve) => {
  45. const output = [],
  46. c = chain([
  47. readableFrom(async function* () {
  48. yield delay(() => 0)();
  49. yield delay(() => 1)();
  50. }),
  51. streamToArray(output)
  52. ]);
  53. c.on('end', () => {
  54. t.deepEqual(output, [0, 1]);
  55. resolve();
  56. });
  57. });
  58. test.asPromise('readableFrom: nextable', (t, resolve) => {
  59. const output = [],
  60. c = chain([
  61. readableFrom(
  62. (function* () {
  63. yield 0;
  64. yield 1;
  65. })()
  66. ),
  67. streamToArray(output)
  68. ]);
  69. c.on('end', () => {
  70. t.deepEqual(output, [0, 1]);
  71. resolve();
  72. });
  73. });