test-stream-duplex.js uses transform streams instead of the duplex stream base class. This leads to some code not being covered in the Duplex constructor. PR-URL: https://github.com/nodejs/node/pull/12514 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: David Cai <davidcai1993@yahoo.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
32 lines
598 B
JavaScript
32 lines
598 B
JavaScript
'use strict';
|
|
require('../common');
|
|
const assert = require('assert');
|
|
const Duplex = require('stream').Duplex;
|
|
|
|
const stream = new Duplex({ objectMode: true });
|
|
|
|
assert(Duplex() instanceof Duplex);
|
|
assert(stream._readableState.objectMode);
|
|
assert(stream._writableState.objectMode);
|
|
|
|
let written;
|
|
let read;
|
|
|
|
stream._write = (obj, _, cb) => {
|
|
written = obj;
|
|
cb();
|
|
};
|
|
|
|
stream._read = () => {};
|
|
|
|
stream.on('data', (obj) => {
|
|
read = obj;
|
|
});
|
|
|
|
stream.push({ val: 1 });
|
|
stream.end({ val: 2 });
|
|
|
|
process.on('exit', () => {
|
|
assert.strictEqual(read.val, 1);
|
|
assert.strictEqual(written.val, 2);
|
|
});
|