// Flags: --expose-internals 'use strict'; const common = require('../common'); const assert = require('assert'); const { internalBinding } = require('internal/test/binding'); const StreamWrap = require('internal/js_stream_socket'); const { Duplex } = require('stream'); const { ShutdownWrap } = internalBinding('stream_wrap'); function testShutdown(callback) { const stream = new Duplex({ read: function() { }, write: function() { } }); const wrap = new StreamWrap(stream); const req = new ShutdownWrap(); req.oncomplete = function(code) { assert(code < 0); callback(); }; req.handle = wrap._handle; // Close the handle to simulate wrap.destroy(); req.handle.shutdown(req); } testShutdown(common.mustCall());