| var es = require('event-stream') |
| var through = require('through2') |
| var combine = require('..') |
| var test = require('tape') |
| |
| test('re-emit error object for old streams', function (test) { |
| test.plan(1) |
| |
| var expectedErr = new Error('asplode') |
| |
| var pipe = combine( |
| es.through(function(data) { |
| return this.emit('error', expectedErr) |
| }) |
| ) |
| |
| pipe.on('error', function (err) { |
| test.equal(err, expectedErr) |
| }) |
| |
| pipe.write('pow') |
| }) |
| |
| test('do not duplicate errors', function (test) { |
| |
| var errors = 0; |
| var pipe = combine( |
| es.through(function(data) { |
| return this.emit('data', data); |
| }), |
| es.through(function(data) { |
| return this.emit('error', new Error(data)); |
| }) |
| ) |
| |
| pipe.on('error', function(err) { |
| errors++ |
| test.ok(errors, 'expected error count') |
| process.nextTick(function () { |
| return test.end(); |
| }) |
| }) |
| |
| return pipe.write('meh'); |
| }) |
| |
| test('3 pipe do not duplicate errors', function (test) { |
| |
| var errors = 0; |
| var pipe = combine( |
| es.through(function(data) { |
| return this.emit('data', data); |
| }), |
| es.through(function(data) { |
| return this.emit('error', new Error(data)); |
| }), |
| es.through() |
| ) |
| |
| pipe.on('error', function(err) { |
| errors++ |
| test.ok(errors, 'expected error count') |
| process.nextTick(function () { |
| return test.end(); |
| }) |
| }) |
| |
| return pipe.write('meh'); |
| |
| }) |
| |
| test('0 argument through stream', function (test) { |
| test.plan(3) |
| var pipe = combine() |
| , expected = [ 'beep', 'boop', 'robots' ] |
| |
| pipe.pipe(es.through(function(data) { |
| test.equal(data.toString('utf8'), expected.shift()) |
| })) |
| pipe.write('beep') |
| pipe.write('boop') |
| pipe.end('robots') |
| }) |
| |
| test('object mode', function (test) { |
| test.plan(2) |
| var pipe = combine.obj() |
| , expected = [ [4,5,6], {x:5} ] |
| |
| pipe.pipe(through.obj(function(data, enc, next) { |
| test.deepEqual(data, expected.shift()) |
| next() |
| })) |
| pipe.write([4,5,6]) |
| pipe.write({x:5}) |
| pipe.end() |
| }) |
| |