test_take.js 1.5 KB

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