'use strict'; // Regression test for https://github.com/nodejs/node/issues/14523. // Checks that flushes interact properly with writableState.needDrain, // even if no flush callback was passed. const common = require('../common'); const assert = require('assert'); const zlib = require('zlib'); const zipper = zlib.createGzip({ highWaterMark: 16384 }); const unzipper = zlib.createGunzip(); zipper.pipe(unzipper); zipper.write('A'.repeat(17000)); zipper.flush(); let received = 0; unzipper.on('data', common.mustCall((d) => { received += d.length; }, 2)); // Properly `.end()`ing the streams would interfere with checking that // `.flush()` works. process.on('exit', () => { assert.strictEqual(received, 17000); });