123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- var pipeline = require('../');
- var through = require('through2');
- var split = require('split');
- var test = require('tape');
- test('push', function (t) {
- var expected = {};
- expected.first = [ 333, 444, 555, 666, 777 ];
- expected.second = [ 6.66, 7.77 ];
- expected.output = [ 3.33, 4.44, 5.55, 3, 2 ];
-
- t.plan(5 + 2 + 5 + 3);
-
- var a = split();
- var b = through.obj(function (row, enc, next) {
- this.push(JSON.parse(row));
- next();
- });
- var c = through.obj(function (row, enc, next) { this.push(row.x); next() });
- var d = through.obj(function (x, enc, next) { this.push(x * 111); next() });
-
- var first = through.obj(function (row, enc, next) {
- if (expected.first.length === 2) {
- t.equal(p.length, 5);
- p.push(second);
- t.equal(p.length, 6);
- }
-
- var ex = expected.first.shift();
- t.deepEqual(row, ex);
-
- this.push(row / 100);
- next();
- });
- var second = through.obj(function (row, enc, next) {
- var ex = expected.second.shift();
- t.deepEqual(row, ex);
- this.push(Math.floor(10 - row));
- next();
- });
-
- var p = pipeline.obj([ a, b, c, d, first ]);
- t.equal(p.length, 5);
-
- p.pipe(through.obj(function (row, enc, next) {
- var ex = expected.output.shift();
- t.deepEqual(row, ex);
- next();
- }));
-
- p.write('{"x":3}\n');
- p.write('{"x":4}\n');
- p.write('{"x":5}\n');
- p.write('{"x":6}\n');
- p.write('{"x":7}');
- p.end();
- });
|