1'use strict'; 2const common = require('../common'); 3const fs = require('fs'); 4const path = require('path'); 5const assert = require('assert'); 6const tmpdir = require('../common/tmpdir'); 7const file = path.join(tmpdir.path, 'write_stream_filehandle_test.txt'); 8const input = 'hello world'; 9 10tmpdir.refresh(); 11 12fs.promises.open(file, 'w+').then((handle) => { 13 let calls = 0; 14 const { 15 write: originalWriteFunction, 16 writev: originalWritevFunction 17 } = handle; 18 handle.write = function write() { 19 calls++; 20 return Reflect.apply(originalWriteFunction, this, arguments); 21 }; 22 handle.writev = function writev() { 23 calls++; 24 return Reflect.apply(originalWritevFunction, this, arguments); 25 }; 26 const stream = fs.createWriteStream(null, { fd: handle }); 27 28 stream.end(input); 29 stream.on('close', common.mustCall(() => { 30 assert(calls > 0, 'expected at least one call to fileHandle.write or ' + 31 'fileHandle.writev, got 0'); 32 })); 33}).then(common.mustCall()); 34