test_skip.mjs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 fromIterable from '../src/utils/fromIterable.js';
  6. import skip from '../src/utils/skip.js';
  7. import skipWhile from '../src/utils/skipWhile.js';
  8. test.asPromise('skip: smoke test', (t, resolve) => {
  9. const output = [],
  10. c = chain([fromIterable([1, 2, 3, 4, 5]), skip(2), streamToArray(output)]);
  11. c.on('end', () => {
  12. t.deepEqual(output, [3, 4, 5]);
  13. resolve();
  14. });
  15. });
  16. test.asPromise('skip: while', (t, resolve) => {
  17. const output = [],
  18. c = chain([fromIterable([1, 2, 3, 4, 5]), skipWhile(x => x != 3), streamToArray(output)]);
  19. c.on('end', () => {
  20. t.deepEqual(output, [3, 4, 5]);
  21. resolve();
  22. });
  23. });
  24. test.asPromise('skip: while async', (t, resolve) => {
  25. const output = [],
  26. c = chain([
  27. fromIterable([1, 2, 3, 4, 5]),
  28. skipWhile(delay(x => x != 3)),
  29. streamToArray(output)
  30. ]);
  31. c.on('end', () => {
  32. t.deepEqual(output, [3, 4, 5]);
  33. resolve();
  34. });
  35. });