1'use strict'; 2 3const common = require('../common'); 4const assert = require('assert'); 5const { Transform } = require('stream'); 6 7const t = new Transform({ 8 objectMode: true, highWaterMark: 0, 9 transform(chunk, enc, callback) { 10 process.nextTick(() => callback(null, chunk, enc)); 11 } 12}); 13 14assert.strictEqual(t.write(1), false); 15t.on('drain', common.mustCall(() => { 16 assert.strictEqual(t.write(2), false); 17 t.end(); 18})); 19 20t.once('readable', common.mustCall(() => { 21 assert.strictEqual(t.read(), 1); 22 setImmediate(common.mustCall(() => { 23 assert.strictEqual(t.read(), null); 24 t.once('readable', common.mustCall(() => { 25 assert.strictEqual(t.read(), 2); 26 })); 27 })); 28})); 29