test_take.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. 'use strict';
  2. const unit = require('heya-unit');
  3. const {streamToArray, delay} = require('./helpers');
  4. const Chain = require('../src/index');
  5. const {fromIterable} = require('../src/utils/FromIterable');
  6. const take = require('../src/utils/take');
  7. const takeWhile = require('../src/utils/takeWhile');
  8. const takeWithSkip = require('../src/utils/takeWithSkip');
  9. unit.add(module, [
  10. function test_take(t) {
  11. const async = t.startAsync('test_take');
  12. const output = [],
  13. chain = new Chain([fromIterable([1, 2, 3, 4, 5]), take(2), streamToArray(output)]);
  14. chain.on('end', () => {
  15. eval(t.TEST('t.unify(output, [1, 2])'));
  16. async.done();
  17. });
  18. },
  19. function test_takeWithSkip(t) {
  20. const async = t.startAsync('test_takeWithSkip');
  21. const output = [],
  22. chain = new Chain([fromIterable([1, 2, 3, 4, 5]), takeWithSkip(2, 2), streamToArray(output)]);
  23. chain.on('end', () => {
  24. eval(t.TEST('t.unify(output, [3, 4])'));
  25. async.done();
  26. });
  27. },
  28. function test_takeWhile(t) {
  29. const async = t.startAsync('test_takeWhile');
  30. const output = [],
  31. chain = new Chain([fromIterable([1, 2, 3, 4, 5]), takeWhile(x => x != 3), streamToArray(output)]);
  32. chain.on('end', () => {
  33. eval(t.TEST('t.unify(output, [1, 2])'));
  34. async.done();
  35. });
  36. },
  37. function test_takeWhileAsync(t) {
  38. const async = t.startAsync('test_takeWhileAsync');
  39. const output = [],
  40. chain = new Chain([fromIterable([1, 2, 3, 4, 5]), takeWhile(delay(x => x != 3)), streamToArray(output)]);
  41. chain.on('end', () => {
  42. eval(t.TEST('t.unify(output, [1, 2])'));
  43. async.done();
  44. });
  45. }
  46. ]);