43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
var pipeline = require('../');
|
|
var through = require('through2');
|
|
var split = require('split');
|
|
var concat = require('concat-stream');
|
|
var test = require('tape');
|
|
|
|
test('nested middle splicer', function (t) {
|
|
t.plan(1);
|
|
|
|
var addNewLines = through(function (buf, enc, next) {
|
|
this.push(buf + '\n');
|
|
next();
|
|
});
|
|
|
|
var stream = pipeline.obj([
|
|
through.obj(function (str, enc, next) {
|
|
this.push(str.replace(/^./, function (c) {
|
|
return String.fromCharCode(c.charCodeAt(0) + 5);
|
|
}));
|
|
next();
|
|
}),
|
|
[ split(), addNewLines ],
|
|
through(function (buf, enc, next) {
|
|
this.push('> ' + buf);
|
|
next()
|
|
})
|
|
]);
|
|
|
|
stream.get(1).unshift(through(function (buf, enc, next) {
|
|
this.push(buf.toString('utf8').toUpperCase());
|
|
next();
|
|
}));
|
|
|
|
stream.pipe(concat(function (body) {
|
|
t.deepEqual(body.toString(), '> F\n> G\n> H\n');
|
|
}));
|
|
|
|
stream.write('a\n');
|
|
stream.write('b\n');
|
|
stream.write('c');
|
|
stream.end();
|
|
});
|