1'use strict'; 2 3const common = require('../common'); 4const { Duplex } = require('stream'); 5const assert = require('assert'); 6 7{ 8 const duplex = new Duplex({ 9 readable: false 10 }); 11 assert.strictEqual(duplex.readable, false); 12 duplex.push('asd'); 13 duplex.on('error', common.mustCall((err) => { 14 assert.strictEqual(err.code, 'ERR_STREAM_PUSH_AFTER_EOF'); 15 })); 16 duplex.on('data', common.mustNotCall()); 17 duplex.on('end', common.mustNotCall()); 18} 19 20{ 21 const duplex = new Duplex({ 22 writable: false, 23 write: common.mustNotCall() 24 }); 25 assert.strictEqual(duplex.writable, false); 26 duplex.write('asd'); 27 duplex.on('error', common.mustCall((err) => { 28 assert.strictEqual(err.code, 'ERR_STREAM_WRITE_AFTER_END'); 29 })); 30 duplex.on('finish', common.mustNotCall()); 31} 32 33{ 34 const duplex = new Duplex({ 35 readable: false 36 }); 37 assert.strictEqual(duplex.readable, false); 38 duplex.on('data', common.mustNotCall()); 39 duplex.on('end', common.mustNotCall()); 40 async function run() { 41 for await (const chunk of duplex) { 42 assert(false, chunk); 43 } 44 } 45 run().then(common.mustCall()); 46} 47