1'use strict'; 2const common = require('../common'); 3const { Writable } = require('stream'); 4const assert = require('assert'); 5 6{ 7 // Sync + Sync 8 const writable = new Writable({ 9 write: common.mustCall((buf, enc, cb) => { 10 cb(); 11 assert.throws(cb, { 12 code: 'ERR_MULTIPLE_CALLBACK', 13 name: 'Error' 14 }); 15 }) 16 }); 17 writable.write('hi'); 18} 19 20{ 21 // Sync + Async 22 const writable = new Writable({ 23 write: common.mustCall((buf, enc, cb) => { 24 cb(); 25 process.nextTick(() => { 26 assert.throws(cb, { 27 code: 'ERR_MULTIPLE_CALLBACK', 28 name: 'Error' 29 }); 30 }); 31 }) 32 }); 33 writable.write('hi'); 34} 35 36{ 37 // Async + Async 38 const writable = new Writable({ 39 write: common.mustCall((buf, enc, cb) => { 40 process.nextTick(cb); 41 process.nextTick(() => { 42 assert.throws(cb, { 43 code: 'ERR_MULTIPLE_CALLBACK', 44 name: 'Error' 45 }); 46 }); 47 }) 48 }); 49 writable.write('hi'); 50} 51