| 'use strict'; |
| |
| const common = require('../common'); |
| const { Duplex } = require('stream'); |
| const assert = require('assert'); |
| |
| { |
| const duplex = new Duplex({ |
| readable: false |
| }); |
| assert.strictEqual(duplex.readable, false); |
| duplex.push('asd'); |
| duplex.on('error', common.mustCall((err) => { |
| assert.strictEqual(err.code, 'ERR_STREAM_PUSH_AFTER_EOF'); |
| })); |
| duplex.on('data', common.mustNotCall()); |
| duplex.on('end', common.mustNotCall()); |
| } |
| |
| { |
| const duplex = new Duplex({ |
| writable: false, |
| write: common.mustNotCall() |
| }); |
| assert.strictEqual(duplex.writable, false); |
| duplex.write('asd'); |
| duplex.on('error', common.mustCall((err) => { |
| assert.strictEqual(err.code, 'ERR_STREAM_WRITE_AFTER_END'); |
| })); |
| duplex.on('finish', common.mustNotCall()); |
| } |
| |
| { |
| const duplex = new Duplex({ |
| readable: false |
| }); |
| assert.strictEqual(duplex.readable, false); |
| duplex.on('data', common.mustNotCall()); |
| duplex.on('end', common.mustNotCall()); |
| async function run() { |
| for await (const chunk of duplex) { |
| assert(false, chunk); |
| } |
| } |
| run().then(common.mustCall()); |
| } |